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>
|