linkpi_firmware_history/rootfs/link/web/oled.php

136 lines
4.7 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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