Initial 2024-01-26
This commit is contained in:
343
static/cmpSwoUtil.js
Normal file
343
static/cmpSwoUtil.js
Normal file
@@ -0,0 +1,343 @@
|
||||
|
||||
function unixtimeToYYYYMMDD(s) {
|
||||
var n;
|
||||
|
||||
if(s)
|
||||
n = new Date(s * 1000);
|
||||
else
|
||||
n = new Date();
|
||||
|
||||
var m = n.getMonth()+1;
|
||||
var d = n.getDate();
|
||||
|
||||
return (n.getFullYear()) + "-" + (m < 10 ? ("0" + m) : m) + "-" + (d < 10 ? ("0" + d) : d);
|
||||
}
|
||||
|
||||
function unixtimeToHHMMSS(s) {
|
||||
var n;
|
||||
|
||||
if(s)
|
||||
n = new Date(s * 1000);
|
||||
else
|
||||
n = new Date();
|
||||
|
||||
var h = n.getHours();
|
||||
var m = n.getMinutes();
|
||||
var s = n.getSeconds();
|
||||
|
||||
return (h < 10 ? ("0" + h) : h) + ":" + (m < 10 ? ("0" + m) : m) + ":" + (s < 10 ? ("0" + s) : s);
|
||||
}
|
||||
|
||||
function checkTZ(z) {
|
||||
if((new Date()).getTimezoneOffset())
|
||||
return 0;
|
||||
|
||||
if(z)
|
||||
console.log("Auto correct TimeZone");
|
||||
|
||||
return 12 * 60 * 60;
|
||||
}
|
||||
|
||||
function setNodeText(nn, obj, idx, q) {
|
||||
var n = null;
|
||||
|
||||
if(typeof q == "undefined")
|
||||
q = 1;
|
||||
|
||||
switch(typeof nn) {
|
||||
case "string":
|
||||
n = document.getElementById(nn);
|
||||
break;
|
||||
|
||||
case "object":
|
||||
if(nn.nodeType != 1)
|
||||
return console.log("Invalid node object");
|
||||
|
||||
n = nn;
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
return console.log("Invalid node type");
|
||||
}
|
||||
|
||||
if(!n) {
|
||||
if(q == 1)
|
||||
return console.log("No node '" + nn + "'");
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if(!obj[idx])
|
||||
return;
|
||||
|
||||
n.innerHTML = obj[idx];
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
function dpst(no, p) {
|
||||
var n = null;
|
||||
|
||||
do {
|
||||
if(p.before) {
|
||||
n = p.before;
|
||||
break;
|
||||
}
|
||||
|
||||
if(p.after) {
|
||||
n = p.after;
|
||||
break;
|
||||
}
|
||||
|
||||
if(p.parn) {
|
||||
n = p.parn;
|
||||
break;
|
||||
}
|
||||
|
||||
return;
|
||||
} while(0);
|
||||
|
||||
if(typeof(n) == "string") {
|
||||
n = document.getElementById(n);
|
||||
|
||||
if(!n)
|
||||
return false;
|
||||
}
|
||||
|
||||
if(n.nodeType !== 1) {
|
||||
console.log("Invalid node type");
|
||||
return false;
|
||||
}
|
||||
|
||||
if(p.before) {
|
||||
n.parentNode.insertBefore(no, n);
|
||||
return true;
|
||||
}
|
||||
|
||||
if(p.after) {
|
||||
if(p.after.nextSibling)
|
||||
n.parentNode.insertBefore(no, n.nextSibling);
|
||||
else
|
||||
n.parentNode.appendChild(no);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
if(p.parn) {
|
||||
n.appendChild(no);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function dcrt(p) {
|
||||
var at = "";
|
||||
var no = null;
|
||||
var spc = {
|
||||
"tag" : 1,
|
||||
"html" : 1,
|
||||
"parn" : 1,
|
||||
"child" : 1,
|
||||
"class" : 1,
|
||||
|
||||
"after" : 1,
|
||||
"before" : 1,
|
||||
|
||||
"click" : 1,
|
||||
"keyup" : 1,
|
||||
"keypress" : 1,
|
||||
"change" : 1,
|
||||
"load" : 1,
|
||||
|
||||
"src" : 1
|
||||
}
|
||||
|
||||
if(!p.tag) {
|
||||
console.log("Empty .tag");
|
||||
return null;
|
||||
}
|
||||
|
||||
no = document.createElement(p.tag);
|
||||
|
||||
for(at in p) {
|
||||
if(spc[at])
|
||||
continue;
|
||||
|
||||
no.setAttribute(at, p[at]);
|
||||
}
|
||||
|
||||
if(p.class)
|
||||
no.className = p.class;
|
||||
|
||||
dpst(no, p);
|
||||
|
||||
if(p.html) {
|
||||
no.innerHTML = p.html;
|
||||
}
|
||||
|
||||
if(p.click) {
|
||||
no.addEventListener("click", p.click, false);
|
||||
}
|
||||
|
||||
if(p.keyup) {
|
||||
no.addEventListener("keyup", p.keyup, false);
|
||||
}
|
||||
|
||||
if(p.keypress) {
|
||||
no.addEventListener("keypress", p.keypress, false);
|
||||
}
|
||||
|
||||
if(p.change) {
|
||||
no.addEventListener("change", p.change, false);
|
||||
}
|
||||
|
||||
if(p.load) {
|
||||
no.addEventListener("load", p.load, false);
|
||||
// no.onload = p.load;
|
||||
}
|
||||
|
||||
if(p.src) {
|
||||
no.setAttribute("src", p.src);
|
||||
// no.src = p.src;
|
||||
}
|
||||
|
||||
if(!p.child)
|
||||
return no;
|
||||
|
||||
var ch = null;
|
||||
|
||||
for(at = 0; at < p.child.length; at++) {
|
||||
if(!p.child[at])
|
||||
continue;
|
||||
|
||||
if(!p.child[at].nodeType)
|
||||
ch = dcrt(p.child[at]);
|
||||
else
|
||||
ch = p.child[at]
|
||||
|
||||
if(!ch)
|
||||
continue;
|
||||
|
||||
no.appendChild(ch);
|
||||
}
|
||||
|
||||
return no;
|
||||
}
|
||||
|
||||
class diag {
|
||||
constructor(parm) {
|
||||
this.buildBody(parm);
|
||||
}
|
||||
|
||||
buildBody(parm) {
|
||||
var top = 0.8 * (window.innerHeight- 480)/2;
|
||||
var left = 1.0 * (window.innerWidth - 640)/2;
|
||||
|
||||
this.diagRoot = dcrt({
|
||||
tag : "div",
|
||||
parn : "body",
|
||||
id : "diag",
|
||||
style: "display:none; top:"+top+"px; left:"+left+"px;"
|
||||
});
|
||||
|
||||
this.diagHead = dcrt({
|
||||
tag : "div",
|
||||
style: "position:absolute; top:0px; left:-2px; right:-2px; height:20px; background:#000; padding:10px; font-weight:bold;",
|
||||
html : "DIALOG",
|
||||
parn : this.diagRoot
|
||||
});
|
||||
|
||||
this.diagBody = dcrt({
|
||||
tag : "div",
|
||||
style: "position:absolute; left:0; right:0; top:40px; bottom:40px; padding:6px; border:0px solid white;",
|
||||
parn : this.diagRoot,
|
||||
// child: parm.child
|
||||
});
|
||||
|
||||
this.diagFloor= dcrt({
|
||||
tag : "div",
|
||||
style: "position:absolute; left:-2px; right:-2px; bottom:0px; height:20px; background:#000; padding:10px;",
|
||||
parn : this.diagRoot
|
||||
});
|
||||
|
||||
do {
|
||||
if(!parm.head)
|
||||
break;
|
||||
|
||||
if(!parm.head.html)
|
||||
break;
|
||||
|
||||
this.diagHead.innerHTML = parm.head.html;
|
||||
} while(0);
|
||||
|
||||
do {
|
||||
if(!parm.body)
|
||||
break;
|
||||
|
||||
if(!parm.body.node)
|
||||
break;
|
||||
|
||||
parm.body.node.parn = this.diagBody;
|
||||
|
||||
dcrt(parm.body.node);
|
||||
} while(0);
|
||||
|
||||
do {
|
||||
if(!parm.floor)
|
||||
break;
|
||||
|
||||
if(!parm.floor.node)
|
||||
break;
|
||||
|
||||
parm.floor.node.parn = this.diagFloor;
|
||||
|
||||
dcrt(parm.floor.node);
|
||||
} while(0);
|
||||
|
||||
this.diagHead.addEventListener('mousedown', this.diagDraggable.bind(this), false);
|
||||
}
|
||||
|
||||
diagDraggable(e) {
|
||||
var e = e || window.event;
|
||||
|
||||
if(window.diag)
|
||||
window.diag.diagRoot.style.zIndex = 49;
|
||||
|
||||
window.diag = this;
|
||||
|
||||
this.diagInnerX = e.clientX + window.pageXOffset - this.diagRoot.offsetLeft;
|
||||
this.diagInnerY = e.clientY + window.pageYOffset - this.diagRoot.offsetTop;
|
||||
|
||||
this.diagHandMove = this.diagMove .bind(this);
|
||||
this.diagHandMouseUp = this.diagMouseUp.bind(this);
|
||||
|
||||
window.addEventListener('mousemove', this.diagHandMove , false);
|
||||
window.addEventListener('mouseup' , this.diagHandMouseUp, true);
|
||||
}
|
||||
|
||||
diagMouseUp(e) {
|
||||
window.removeEventListener('mousemove', this.diagHandMove);
|
||||
window.removeEventListener('mouseup' , this.diagHandMouseUp);
|
||||
}
|
||||
|
||||
diagMove(e) {
|
||||
this.diagRoot.style.zIndex = 50;
|
||||
this.diagRoot.style.position = 'fixed';
|
||||
this.diagRoot.style.left = e.clientX + window.pageXOffset - this.diagInnerX + 'px';
|
||||
this.diagRoot.style.top = e.clientY + window.pageYOffset - this.diagInnerY + 'px';
|
||||
}
|
||||
|
||||
show() {
|
||||
this.diagRoot.style.display = "block";
|
||||
}
|
||||
|
||||
hide() {
|
||||
this.diagRoot.style.display = "none";
|
||||
}
|
||||
|
||||
// CLASS
|
||||
};
|
||||
|
Reference in New Issue
Block a user