retro-terminaljs
Version:
Create retro terminals feeding live data.
60 lines (59 loc) • 1.88 kB
JavaScript
const { ipcRenderer } = require('electron');
var term = document.getElementById('term');
ipcRenderer.on('pingDisplay', (event, _jsonArray) => {
var jsonLength = _jsonArray.length;
var i;
for (i=0;i<jsonLength;i++) {
var a;
var childLength = Object.keys(_jsonArray[i]).length;
var e;
if (_jsonArray[i].type === "text") {
var e = document.createElement('div');
term.appendChild(e);
var eText = document.createElement('p');
e.appendChild(eText);
} else if (_jsonArray[i].type === "button") {
var e = document.createElement('button');
term.appendChild(e);
}
for (a=0;a<childLength;a++) {
var namer = Object.keys(_jsonArray[i])[a];
if (namer != "type") {
if (namer === "id") {
e.id = _jsonArray[i][namer];
} else if (namer === "left") {
e.style.left = _jsonArray[i][namer]+"%";
} else if (namer === "top") {
e.style.top = _jsonArray[i][namer]+"%";
} else if (namer === "width") {
e.style.width = _jsonArray[i][namer]+"%";
} else if (namer === "height") {
e.style.height = _jsonArray[i][namer]+"%";
} else if (namer === "context") {
if (_jsonArray[i].type === "text") {
eText.innerHTML = _jsonArray[i][namer];
} else {
e.innerHTML = _jsonArray[i][namer];
}
} else if (namer === "textalign") {
e.className = e.className + "centerAlign ";
} else if (namer === "background") {
if (_jsonArray[i][namer] === true) {
e.className = e.className + "background ";
}
}
}
}
}
});
ipcRenderer.on('pingDelDisplay', (event) => {
term.innerHTML = "";
});
ipcRenderer.on('pingListener', (event, type, arg) => {
var _id = document.getElementById(arg);
if (type === "button") {
_id.addEventListener('click', function() {
ipcRenderer.send('replyListener', arg, true);
});
}
});