136 lines
4.7 KiB
PHP
136 lines
4.7 KiB
PHP
|
<script id="tpl" type="text/x-handlebars-template">
|
|||
|
{{#each this}}
|
|||
|
<div class="touch" id={{modId}} style="width: {{width}};height: {{height}};left: {{left}};top: {{top}};background-color: {{color}}">
|
|||
|
<div>{{name}}</div>
|
|||
|
<div class="drag" id={{dragId}}></div>
|
|||
|
<div class="resize" id={{resizeId}}></div>
|
|||
|
</div>
|
|||
|
{{/each}}
|
|||
|
</script>
|
|||
|
|
|||
|
<script id="modtpl" type="text/x-handlebars-template">
|
|||
|
{{#each this}}
|
|||
|
<div class="col-sm-3">
|
|||
|
<div class="checkbox">
|
|||
|
<label>
|
|||
|
<input type="checkbox" name="{{this}}" onclick="onCheckBoxClick(this)">
|
|||
|
<span>{{this}}</span>
|
|||
|
</label>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
{{/each}}
|
|||
|
</script>
|
|||
|
<script src="./js/drag.js"></script>
|
|||
|
<script>
|
|||
|
var array = [];
|
|||
|
var own = [];
|
|||
|
var property = {
|
|||
|
IP:{color:"#66cccc",width:"256px",height:"30px"},
|
|||
|
AUD:{color:"#ff6666",width:"128px",height:"30px"},
|
|||
|
BR:{color:"#3399cc",width:"128px",height:"30px"},
|
|||
|
DISK:{color:"#483d8b",width:"256px",height:"30px"},
|
|||
|
MEM:{color:"#a52a2a",width:"128px",height:"30px"},
|
|||
|
REC:{color:"#c71585",width:"128px",height:"30px"},
|
|||
|
CPU:{color:"#cc6633",width:"128px",height:"30px"},
|
|||
|
TEMP:{color:"#993366",width:"128px",height:"30px"},
|
|||
|
HSIGN:{color:"#99cc66",width:"256px",height:"30px"},
|
|||
|
SSIGN:{color:"#666699",width:"256px",height:"30px"},
|
|||
|
INPUT:{color:"#009966",width:"256px",height:"30px"},
|
|||
|
CHN:{color:"#669966",width:"256px",height:"90px"}
|
|||
|
}
|
|||
|
|
|||
|
function onCheckBoxClick(obj) {
|
|||
|
var modName = $(obj).siblings().html();
|
|||
|
if(obj.checked){
|
|||
|
var pro = property[modName];
|
|||
|
var obj = {
|
|||
|
name: modName,
|
|||
|
width:pro["width"],
|
|||
|
height:pro["height"],
|
|||
|
left:"0px",
|
|||
|
top:"0px",
|
|||
|
color:pro["color"],
|
|||
|
modId: modName.toLowerCase()+"_",
|
|||
|
dragId:modName.toLowerCase()+"_dr",
|
|||
|
resizeId:modName.toLowerCase()+"_re"
|
|||
|
}
|
|||
|
array.push(obj);
|
|||
|
}else{
|
|||
|
var index = -1;
|
|||
|
for(var i=0;i<array.length;i++) {
|
|||
|
var obj = array[i];
|
|||
|
if(obj.name === modName)
|
|||
|
index = i;
|
|||
|
}
|
|||
|
array.splice(index,1);
|
|||
|
}
|
|||
|
|
|||
|
initDesign();
|
|||
|
}
|
|||
|
|
|||
|
function initDesign() {
|
|||
|
var tpl = $("#tpl").html();
|
|||
|
var template = Handlebars.compile(tpl);
|
|||
|
var html = template(array);
|
|||
|
$("#box").html(html);
|
|||
|
|
|||
|
for(var i=0;i<array.length;i++) {
|
|||
|
var obj = array[i];
|
|||
|
let container = $("#box")[0];
|
|||
|
let elem = $("#"+obj.modId)[0];
|
|||
|
let dragHandle = $("#"+obj.dragId)[0];
|
|||
|
let resizeHandle = $("#"+obj.resizeId)[0];
|
|||
|
new Draggable(container, elem, dragHandle, null, true, function (dragObj) {
|
|||
|
let id = $(elem).attr("id");
|
|||
|
for(var j=0;j<array.length;j++)
|
|||
|
{
|
|||
|
if(array[j].modId == id){
|
|||
|
array[j].left = dragObj.left;
|
|||
|
array[j].top = dragObj.top;
|
|||
|
}
|
|||
|
}
|
|||
|
}, function (resizeObj) {
|
|||
|
let id = $(elem).attr("id");
|
|||
|
for(var j=0;j<array.length;j++)
|
|||
|
{
|
|||
|
if(array[j].modId == id){
|
|||
|
array[j].width = resizeObj.width;
|
|||
|
array[j].height = resizeObj.height;
|
|||
|
}
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
$( "#mods input[name='"+obj.name+"']" ).attr( "checked", true );
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
function initMods(mods) {
|
|||
|
var tpl = $("#modtpl").html();
|
|||
|
var template = Handlebars.compile(tpl);
|
|||
|
var html = template(mods);
|
|||
|
$("#modBox").html(html);
|
|||
|
}
|
|||
|
|
|||
|
$( "#setOLED" ).click( function () {
|
|||
|
rpc4( "oled.upDesignConfig", [ JSON.stringify( {"mods":array, "own":own}, null, 2 ) ], function ( res ) {
|
|||
|
if ( typeof ( res.error ) != "undefined" ) {
|
|||
|
htmlAlert( "#alert", "danger", "<cn>保存设置失败</cn><en>Save config failed</en>!", "", 2000 );
|
|||
|
} else {
|
|||
|
htmlAlert( "#alert", "success", "<cn>保存设置成功</cn><en>Save config success</en>!", "", 2000 );
|
|||
|
}
|
|||
|
} );
|
|||
|
} );
|
|||
|
|
|||
|
$(function () {
|
|||
|
$.ajax({url:"config/oled/oledMods.json",success:function(data){
|
|||
|
initMods(data["mods"]);
|
|||
|
own = data["own"];
|
|||
|
}}).responseText;
|
|||
|
|
|||
|
$.ajax({url:"config/oled/oled.json",success:function(data){
|
|||
|
array = data["mods"];
|
|||
|
initDesign();
|
|||
|
}}).responseText;
|
|||
|
});
|
|||
|
</script>
|