Initial 2024-01-26
This commit is contained in:
809
static/cmpSwoPage.js
Normal file
809
static/cmpSwoPage.js
Normal file
@@ -0,0 +1,809 @@
|
||||
class cmpSwoPage {
|
||||
constructor() {
|
||||
this.cmpSwoOnConnect = [];
|
||||
this.cmpSwoOnDisconnect = [];
|
||||
|
||||
this.cmpOnLoad();
|
||||
}
|
||||
|
||||
cmpSwoPageInit() {
|
||||
this.snip = {};
|
||||
|
||||
if(!this.sws_sta_prefix)
|
||||
this.sws_sta_prefix = "go-prefix/static/";
|
||||
|
||||
if(!this.sws_dyn_prefix)
|
||||
this.sws_dyn_prefix = "go-prefix/ws";
|
||||
|
||||
this.connect();
|
||||
|
||||
|
||||
this.git = null;
|
||||
|
||||
this.cmpSwoTaskListInit();
|
||||
|
||||
this.srvTime = 0;
|
||||
}
|
||||
|
||||
connect() {
|
||||
var serv = "";
|
||||
|
||||
if(window.location.protocol == "https:")
|
||||
serv = "wss://";
|
||||
else
|
||||
serv = "ws://"
|
||||
|
||||
serv += window.location.host + "/" + this.sws_dyn_prefix ;
|
||||
|
||||
this.wsrv = new WebSocket(serv);
|
||||
|
||||
this.wsrv.onopen = this.onopen.bind (this);
|
||||
this.wsrv.onclose = this.onclose.bind (this);
|
||||
this.wsrv.onmessage = this.onmessage.bind (this);
|
||||
this.wsrv.onerror = this.onerror.bind (this);
|
||||
|
||||
this.WSState(1);
|
||||
}
|
||||
|
||||
onopen(evt) {
|
||||
console.log("Connected to WebSocket server");
|
||||
|
||||
for(var i = 0; i < this.cmpSwoOnConnect.length; i++) {
|
||||
(this.cmpSwoOnConnect[i])();
|
||||
}
|
||||
|
||||
if(this.pprm == "only-connect")
|
||||
return;
|
||||
|
||||
// this.gitInfoReq();
|
||||
|
||||
// this.leftMenuReq();
|
||||
|
||||
// this.contentReq();
|
||||
}
|
||||
|
||||
onclose(evt) {
|
||||
for(var i = 0; i < this.cmpSwoOnDisconnect.length; i++) {
|
||||
(this.cmpSwoOnDisconnect[i])();
|
||||
}
|
||||
|
||||
console.log("Disconnected");
|
||||
|
||||
console.log("Reason: ", evt);
|
||||
|
||||
if(!this.connInterval) {
|
||||
setTimeout(this.connect.bind(this), 100);
|
||||
}
|
||||
}
|
||||
|
||||
onmessage(evt) {
|
||||
// console.log('Retrieved data from server: ' + evt.data);
|
||||
|
||||
var obj = null;
|
||||
|
||||
if(!evt.data) {
|
||||
return console.log("Empty answer");
|
||||
}
|
||||
|
||||
try {
|
||||
obj = JSON.parse(evt.data);
|
||||
} catch(e) {
|
||||
console.log(evt);
|
||||
console.log(e);
|
||||
}
|
||||
|
||||
if(!obj) {
|
||||
console.log("Invalid JSON");
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if(!obj.snip) {
|
||||
console.log("Undefine/empty obj.snip", obj);
|
||||
return;
|
||||
}
|
||||
|
||||
if(obj.task) {
|
||||
console.log("Recv snip: " + obj.snip, "Tasked");
|
||||
|
||||
if(this.cmpSwoTaskListProc(obj) == 1) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if(obj.snip != "swoTick1000") {
|
||||
console.log("Recv snip: " + obj.snip, obj);
|
||||
}
|
||||
|
||||
if(obj.errors) {
|
||||
console.log("Error: ", obj.errors);
|
||||
}
|
||||
|
||||
if(!obj.result) {
|
||||
return console.log("Empty result");
|
||||
}
|
||||
|
||||
if(this.snip[obj.snip]) {
|
||||
console.log("Call this.snip[" + obj.snip + "].rcv");
|
||||
return (this.snip[obj.snip].rcv).bind(this, obj.result);
|
||||
}
|
||||
|
||||
do {
|
||||
var snipFn = obj.snip + "Rcv";
|
||||
|
||||
if(typeof(this[snipFn]) != "function")
|
||||
break;
|
||||
|
||||
console.log("Call this[" + snipFn + "]");
|
||||
// console.log(this[snipFn])
|
||||
|
||||
return this[snipFn](obj.result);
|
||||
} while(0);
|
||||
|
||||
return console.log("Unknown snip '" + obj.snip + "'");
|
||||
}
|
||||
|
||||
onerror(evt, e) {
|
||||
console.log('Error occured: ', evt.data);
|
||||
console.log(evt);
|
||||
console.log(e);
|
||||
}
|
||||
|
||||
// Util
|
||||
|
||||
setFavicon(i) {
|
||||
var link = document.querySelector("link[rel~='icon']");
|
||||
|
||||
if (!link) {
|
||||
link = document.createElement('link');
|
||||
link.rel = 'icon';
|
||||
document.head.appendChild(link);
|
||||
}
|
||||
/*
|
||||
if(i)
|
||||
link.href = '/go-prefix/static/img/umbrella-color.png';
|
||||
else
|
||||
link.href = '/go-prefix/static/img/umbrella-black.png';
|
||||
|
||||
console.log(link.href);
|
||||
*/
|
||||
}
|
||||
|
||||
WSState(z) {
|
||||
if(!this.wsrv) {
|
||||
console.log("WebSocket is NULL");
|
||||
return 1;
|
||||
}
|
||||
|
||||
var m = "";
|
||||
|
||||
switch(this.wsrv.readyState) {
|
||||
case this.wsrv.CONNECTING : m = "WebSocket state is CONNECTING" ; break;
|
||||
case this.wsrv.OPEN : m = "WebSocket state is OPEN" ; break;
|
||||
case this.wsrv.CLOSING : m = "WebSocket state is CLOSING" ; break;
|
||||
case this.wsrv.CLOSED : m = "WebSocket state is CLOSED" ; break;
|
||||
default : m = "WebSocket state is UNKNOWN" ; break;
|
||||
}
|
||||
|
||||
if(z)
|
||||
console.log(m);
|
||||
|
||||
if(this.wsrv.readyState == this.wsrv.OPEN) {
|
||||
this.setFavicon(0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
this.setFavicon(1);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
readySnip() {
|
||||
if(!this.wsrv) {
|
||||
console.log("WebSocket is NULL");
|
||||
return false;
|
||||
}
|
||||
|
||||
if(this.wsrv.readyState == this.wsrv.OPEN)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
reqSnip(snip, obj) {
|
||||
if(this.WSState()) {
|
||||
return this.WSState(1);
|
||||
}
|
||||
|
||||
if(obj) {
|
||||
obj.snip = snip;
|
||||
}
|
||||
else {
|
||||
obj = {
|
||||
snip: snip,
|
||||
};
|
||||
}
|
||||
|
||||
console.log("Send snip: " + obj.snip, obj);
|
||||
|
||||
var str = JSON.stringify(obj);
|
||||
|
||||
return this.wsrv.send(str);
|
||||
}
|
||||
|
||||
|
||||
gitInfoReq() {
|
||||
return this.reqSnip("gitInfo");
|
||||
}
|
||||
|
||||
gitInfoRcv(obj) {
|
||||
var n;
|
||||
|
||||
if(!this.git) {
|
||||
this.git = obj;
|
||||
}
|
||||
|
||||
if(obj.gitStatus) {
|
||||
if((n = document.getElementById("gitStatus"))) {
|
||||
n.innerHTML = obj.gitStatus;
|
||||
}
|
||||
|
||||
if((n = document.getElementById("gitTitl"))) {
|
||||
n.setAttribute("title", obj.gitStatus);
|
||||
n.style.color = (obj.gitStatus == "treeClean") ? "#86de74" : "#ff3b6b";
|
||||
}
|
||||
}
|
||||
|
||||
if(obj.gitTimeStamp) {
|
||||
if((n = document.getElementById("gitDate"))) {
|
||||
n.innerHTML = unixtimeToYYYYMMDD(obj.gitTimeStamp);
|
||||
|
||||
if(obj.gitTimeStamp != this.git.gitTimeStamp)
|
||||
n.style.color = "#ffff64";
|
||||
else
|
||||
n.style.color = "#86de74";
|
||||
}
|
||||
|
||||
if((n = document.getElementById("gitTime"))) {
|
||||
n.innerHTML = unixtimeToHHMMSS(obj.gitTimeStamp);
|
||||
|
||||
if(obj.gitTimeStamp != this.git.gitTimeStamp)
|
||||
n.style.color = "#ffff64";
|
||||
else
|
||||
n.style.color = "#86de74";
|
||||
}
|
||||
}
|
||||
|
||||
if(obj.gitCommit && (n = document.getElementById("gitCHID"))) {
|
||||
n.innerHTML = obj.gitCommit.substr(0, 8);
|
||||
|
||||
if(obj.gitTimeStamp != this.git.gitTimeStamp)
|
||||
n.style.color = "#ffff64";
|
||||
else
|
||||
n.style.color = "#86de74";
|
||||
}
|
||||
|
||||
if(obj.gitComment && (n = document.getElementById("gitComm"))) {
|
||||
n.innerHTML = obj.gitComment;
|
||||
|
||||
if(obj.gitTimeStamp != this.git.gitTimeStamp)
|
||||
n.style.color = "#ffff64";
|
||||
else
|
||||
n.style.color = "#86de74";
|
||||
}
|
||||
}
|
||||
|
||||
swoTick1000Rcv(obj) {
|
||||
var tzOff = checkTZ(0);
|
||||
|
||||
obj.ymd = unixtimeToYYYYMMDD(obj["time"] + tzOff);
|
||||
obj.hms = unixtimeToHHMMSS (obj["time"] + tzOff);
|
||||
|
||||
this.srvTime = obj["time"];
|
||||
|
||||
setNodeText("srvDate", obj, "ymd", 0);
|
||||
setNodeText("srvTime", obj, "hms", 0);
|
||||
}
|
||||
|
||||
timeReStyle(sta) {
|
||||
var n1 = document.getElementById("srvDate");
|
||||
var n2 = document.getElementById("srvTime");
|
||||
|
||||
if(sta == "connect") {
|
||||
if(n1) n1.style.color = "#86de74";
|
||||
if(n2) n2.style.color = "#86de74";
|
||||
}
|
||||
else {
|
||||
if(n1) n1.style.color = "#ff3b6b";
|
||||
if(n2) n2.style.color = "#ff3b6b";
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// Logic
|
||||
|
||||
swoSystemctlRestartSelfServiceReq() {
|
||||
this.reqSnip("swoSystemctlRestartSelfService");
|
||||
}
|
||||
|
||||
swoSystemctlRestartSelfServiceRcv() {
|
||||
;
|
||||
}
|
||||
|
||||
rand4dReq() {
|
||||
this.reqSnip("rand4d");
|
||||
}
|
||||
|
||||
rand4dRcv(obj) {
|
||||
return setNodeText("srvRand", obj, "rand4d");
|
||||
}
|
||||
|
||||
pingReq() {
|
||||
return this.reqSnip("ping");
|
||||
}
|
||||
|
||||
pingRcv(obj) {
|
||||
console.log("pingRcv", obj);
|
||||
}
|
||||
|
||||
/****************/
|
||||
|
||||
leftMenuNameClick(obj) {
|
||||
if(!obj)
|
||||
return console.log("No obj");
|
||||
|
||||
var nodeButton = null;
|
||||
var nodeBlock = null;
|
||||
var node = null;
|
||||
|
||||
// console.log(button);
|
||||
|
||||
if(obj.parentNode) {
|
||||
node = obj;
|
||||
}
|
||||
else if(obj?.target?.parentNode) {
|
||||
node = obj?.target;
|
||||
}
|
||||
|
||||
var mid = node.getAttribute("mid");
|
||||
|
||||
if(!mid)
|
||||
console.log("Can't get mid");
|
||||
|
||||
if(!this.leftMenu.list[mid])
|
||||
console.log("Invalid mid");
|
||||
|
||||
nodeBlock = this.leftMenu.list[mid].nodeBlock;
|
||||
nodeButton = this.leftMenu.list[mid].nodeButt;
|
||||
|
||||
if(!nodeBlock)
|
||||
return console.log("Invalid nodeBlock");
|
||||
|
||||
if(!nodeBlock.classList)
|
||||
return console.log("Invalid nodeBlock.classList");
|
||||
|
||||
if(!nodeBlock.classList.contains("leftMenuBlock"))
|
||||
return console.log("nodeBlock is not leftMenuBlock");
|
||||
|
||||
if(nodeBlock.classList.contains("leftMenuBlockHide")) {
|
||||
nodeBlock.classList.remove("leftMenuBlockHide");
|
||||
nodeButton.innerHTML = "-";
|
||||
}
|
||||
else {
|
||||
nodeBlock.classList.add("leftMenuBlockHide");
|
||||
nodeButton.innerHTML = "+";
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
leftMenuItemLinkRend(obj, parn) {
|
||||
var link = dcrt({
|
||||
tag : "a" ,
|
||||
parn : parn ,
|
||||
id : obj?.id ,
|
||||
class: "leftMenuLink" ,
|
||||
href : obj.href ,
|
||||
html : obj.html
|
||||
});
|
||||
}
|
||||
|
||||
leftMenuItemRend(obj, parn) {
|
||||
if(obj.type == "link")
|
||||
return this.leftMenuItemLinkRend(obj, parn);
|
||||
|
||||
var cli = null;
|
||||
|
||||
if(this[obj.func]) {
|
||||
cli = this[obj.func].bind(this, obj.parm);
|
||||
}
|
||||
else {
|
||||
console.log("Invalid func '" + obj.func + "'");
|
||||
}
|
||||
|
||||
var cont = null;
|
||||
|
||||
if(obj.parn) {
|
||||
cont = dcrt({
|
||||
tag : "div",
|
||||
parn : parn,
|
||||
id : obj.parn
|
||||
});
|
||||
}
|
||||
else {
|
||||
cont = parn;
|
||||
}
|
||||
|
||||
var but = dcrt({
|
||||
tag : "button" ,
|
||||
parn : cont ,
|
||||
id : obj?.id ,
|
||||
class: "leftMenuButton" ,
|
||||
click: cli ,
|
||||
html : obj.html
|
||||
});
|
||||
|
||||
// but.setAttribute("onclick", "window.page." + obj.list[i].func + "();");
|
||||
}
|
||||
|
||||
leftMenuBlockRend(obj) {
|
||||
if(!this.leftMenuNodeRoot) {
|
||||
return console.log("No .leftMenuNodeRoot");
|
||||
}
|
||||
|
||||
var id = this.leftMenu.list.length;
|
||||
|
||||
var nodeBlock = dcrt({
|
||||
tag : "div",
|
||||
parn : this.leftMenuNodeRoot,
|
||||
class: "leftMenuBlock"
|
||||
});
|
||||
|
||||
if(!obj.view)
|
||||
nodeBlock.classList.add("leftMenuBlockHide");
|
||||
|
||||
var nodeButt = dcrt({
|
||||
mid : id ,
|
||||
tag : "button" ,
|
||||
parn : nodeBlock ,
|
||||
class: "leftMenuBlockNameButton",
|
||||
click: this.leftMenuNameClick.bind(this),
|
||||
html : "+"
|
||||
});
|
||||
|
||||
var nodeName = dcrt({
|
||||
mid : id ,
|
||||
tag : "button" ,
|
||||
parn : nodeBlock ,
|
||||
class: "leftMenuBlockName" ,
|
||||
click: this.leftMenuNameClick.bind(this),
|
||||
html : obj.name
|
||||
});
|
||||
|
||||
var nodeBody = dcrt({
|
||||
tag : "div",
|
||||
parn : nodeBlock,
|
||||
class: "leftMenuBlockBody"
|
||||
});
|
||||
|
||||
this.leftMenu.list[id] = {
|
||||
nodeBlock : nodeBlock ,
|
||||
nodeButt : nodeButt ,
|
||||
nodeName : nodeName ,
|
||||
nodeBody : nodeBody
|
||||
}
|
||||
|
||||
for(var i = 0; i < obj.list.length; i++) {
|
||||
this.leftMenuItemRend(obj.list[i], nodeBody);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
leftMenuReq() {
|
||||
this.reqSnip("leftMenu");
|
||||
}
|
||||
|
||||
leftMenuRcv(obj) {
|
||||
this.leftMenuNodeRoot = document.getElementById("leftMenu");
|
||||
|
||||
if(!this.leftMenuNodeRoot) {
|
||||
return console.log("No .leftMenuNodeRoot");
|
||||
}
|
||||
|
||||
this.leftMenuNodeRoot.innerHTML = "";
|
||||
|
||||
this.leftMenu = {
|
||||
list: []
|
||||
}
|
||||
|
||||
if(!obj.list) {
|
||||
return console.log("No obj.list");
|
||||
}
|
||||
|
||||
for(var i = 0; i < obj.list.length; i++) {
|
||||
this.leftMenuBlockRend(obj.list[i]);
|
||||
}
|
||||
|
||||
if(obj.defaultPage) {
|
||||
var parm = {};
|
||||
|
||||
if(obj.defaultPageParm)
|
||||
parm = obj.defaultPageParm;
|
||||
|
||||
this.pageContent = obj.defaultPage;
|
||||
|
||||
this.contentReq(obj.defaultPage, parm);
|
||||
}
|
||||
}
|
||||
|
||||
/****************/
|
||||
|
||||
swoTaskListRcv(obj) {
|
||||
console.log(obj);
|
||||
}
|
||||
|
||||
swoTaskListReq() {
|
||||
this.reqSnip("swoTaskList");
|
||||
}
|
||||
|
||||
swoLockListRcv(obj) {
|
||||
console.log(obj);
|
||||
}
|
||||
|
||||
swoLockListReq() {
|
||||
this.reqSnip("swoLockList");
|
||||
}
|
||||
|
||||
swoSetLogFileNameReq() {
|
||||
this.reqSnip("swoSetLogFileName");
|
||||
}
|
||||
|
||||
swoSetLogFileNameRcv(obj) {
|
||||
console.log(obj);
|
||||
}
|
||||
|
||||
/****************/
|
||||
|
||||
cmpSwoTaskListInit() {
|
||||
this.cmpSwoTaskList = [];
|
||||
|
||||
this.cmpSwoTaskListNode = document.getElementById("cmpSwoTaskList");
|
||||
|
||||
if(!this.cmpSwoTaskListNode) {
|
||||
console.log("No cmpSwoTaskList");
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
cmpSwoTaskListRendItem(name, obj) {
|
||||
if(!this.cmpSwoTaskListNode) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.cmpSwoTaskList[name].node = dcrt({
|
||||
tag : "span",
|
||||
parn : this.cmpSwoTaskListNode,
|
||||
html : "[" + obj.snip + "]"
|
||||
});
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
cmpSwoTaskListProc(obj) {
|
||||
// if(!this.cmpSwoTaskListNode) {
|
||||
// return 1;
|
||||
// }
|
||||
|
||||
var name = obj.task.task;
|
||||
|
||||
if(obj.task.stat == "work") {
|
||||
var tbj = {
|
||||
snip: obj.snip,
|
||||
node: null
|
||||
};
|
||||
|
||||
this.cmpSwoTaskList[name] = tbj;
|
||||
|
||||
// console.log("Append cmpSwoTaskList node " + name);
|
||||
this.cmpSwoTaskListRendItem(name, obj);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
if(obj.task.stat == "complete") {
|
||||
if(this.cmpSwoTaskList[name]?.node) {
|
||||
// console.log("Remove cmpSwoTaskList node " + name + " by complete");
|
||||
this.cmpSwoTaskList[name].node.remove();
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
if(obj.task.stat == "lock") {
|
||||
if(this.cmpSwoTaskList[name]?.node) {
|
||||
// console.log("Remove cmpSwoTaskList node " + name + " by lock");
|
||||
this.cmpSwoTaskList[name].node.remove();
|
||||
}
|
||||
|
||||
// console.log(obj);
|
||||
|
||||
var cause = obj?.lock?.cause;
|
||||
|
||||
if(cause) {
|
||||
alert("Заблокировано: " + cause);
|
||||
}
|
||||
else {
|
||||
alert("Заблокировано");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// if(obj.task.stat == "error") {
|
||||
// ;
|
||||
//
|
||||
// return 0;
|
||||
// }
|
||||
|
||||
console.log("Unknown obj.task.stat: " + obj.task.stat);
|
||||
console.log(obj);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
cmpOnLoad() {
|
||||
console.log("OnLoad")
|
||||
|
||||
this.nodeDataHeadRoot = document.getElementById("tblheadroot");
|
||||
this.nodeDataBodyRoot = document.getElementById("tblbodyroot");
|
||||
|
||||
dcrt({
|
||||
tag : "h4",
|
||||
html : "Default page title",
|
||||
style: "margin:4px;",
|
||||
parn : this.nodeDataHeadRoot
|
||||
});
|
||||
|
||||
dcrt({
|
||||
tag : "span",
|
||||
html : "Default page data",
|
||||
parn : this.nodeDataBodyRoot
|
||||
});
|
||||
}
|
||||
|
||||
cmpSshTestReq() {
|
||||
this.nodeDataHeadRoot.innerHTML = "";
|
||||
this.nodeDataBodyRoot.innerHTML = "";
|
||||
|
||||
if(!this.nodeSshTestHead) {
|
||||
this.nodeSshTestHead = dcrt({
|
||||
tag : "h4",
|
||||
style: "margin:4px;",
|
||||
html : "Test SSH",
|
||||
parn : this.nodeDataHeadRoot
|
||||
});
|
||||
|
||||
this.nodeSshTestBody = dcrt({
|
||||
tag : "tbody"
|
||||
});
|
||||
|
||||
this.nodeSshTestRoot = dcrt({
|
||||
tag : "table",
|
||||
parn : this.nodeDataBodyRoot,
|
||||
child: [ this.nodeSshTestBody ]
|
||||
});
|
||||
}
|
||||
else {
|
||||
this.nodeDataHeadRoot.appendChild(this.nodeSshTestHead)
|
||||
this.nodeDataBodyRoot.appendChild(this.nodeSshTestRoot)
|
||||
this.nodeSshTestBody.innerHTML = "";
|
||||
}
|
||||
|
||||
this.reqSnip("cmpSshTest");
|
||||
}
|
||||
|
||||
cmpSshTestRcv(obj) {
|
||||
dcrt({
|
||||
tag : "tr",
|
||||
parn : this.nodeSshTestBody,
|
||||
child: [{
|
||||
tag : "td",
|
||||
html : obj.string
|
||||
}]
|
||||
});
|
||||
}
|
||||
|
||||
cmpHttpTestReq() {
|
||||
this.nodeDataHeadRoot.innerHTML = "";
|
||||
this.nodeDataBodyRoot.innerHTML = "";
|
||||
|
||||
if(!this.nodeHttpTestHead) {
|
||||
this.nodeHttpTestHead = dcrt({
|
||||
tag : "h4",
|
||||
style: "margin:4px;",
|
||||
html : "Test HTTP",
|
||||
parn : this.nodeDataHeadRoot
|
||||
});
|
||||
|
||||
this.nodeHttpTestBody = dcrt({
|
||||
tag : "tbody"
|
||||
});
|
||||
|
||||
this.nodeHttpTestRoot = dcrt({
|
||||
tag : "table",
|
||||
parn : this.nodeDataBodyRoot,
|
||||
child: [ this.nodeHttpTestBody ]
|
||||
});
|
||||
}
|
||||
else {
|
||||
this.nodeDataHeadRoot.appendChild(this.nodeHttpTestHead)
|
||||
this.nodeDataBodyRoot.appendChild(this.nodeHttpTestRoot)
|
||||
this.nodeHttpTestBody.innerHTML = "";
|
||||
}
|
||||
|
||||
this.reqSnip("cmpHttpTest");
|
||||
}
|
||||
|
||||
cmpHttpTestRcv(obj) {
|
||||
if(obj.status == "error") {
|
||||
dcrt({
|
||||
tag : "tr",
|
||||
parn : this.nodeHttpTestBody,
|
||||
child: [{
|
||||
tag : "td",
|
||||
html : obj.error
|
||||
}]
|
||||
});
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if(obj.status == "request") {
|
||||
dcrt({
|
||||
tag : "tr",
|
||||
parn : this.nodeHttpTestBody,
|
||||
child: [{
|
||||
tag : "td",
|
||||
html : obj.request
|
||||
}]
|
||||
});
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if(obj.status == "response") {
|
||||
dcrt({
|
||||
tag : "tr",
|
||||
parn : this.nodeHttpTestBody,
|
||||
child: [{
|
||||
tag : "td",
|
||||
child: [{
|
||||
tag : "pre",
|
||||
html : JSON.stringify(obj.response, null, 2)
|
||||
}]
|
||||
}]
|
||||
});
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
dcrt({
|
||||
tag : "tr",
|
||||
parn : this.nodeHttpTestBody,
|
||||
child: [{
|
||||
tag : "td",
|
||||
html : "Unknown status: '" + obj.status + "'"
|
||||
}]
|
||||
});
|
||||
|
||||
console.log(obj.status, obj)
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// END class
|
||||
}
|
Reference in New Issue
Block a user