1
0
mirror of https://github.com/TheGreyDiamond/Enlight.git synced 2025-07-17 20:33:48 +02:00

Added dnymaic handler

This commit is contained in:
TheGreyDiamond
2020-11-23 21:42:38 +01:00
parent 1d5ed62371
commit aa0426d762
6 changed files with 615 additions and 8 deletions

View File

@ -1,4 +1,4 @@
const { app, BrowserWindow, screen, ipcMain } = require("electron");
const { app, BrowserWindow, screen, ipcMain, BrowserView } = require("electron");
const fs = require("fs");
const { win32 } = require("path");
const sysInf = require("systeminformation");
@ -16,7 +16,13 @@ function createWindow() {
win.setFullScreen(true);
win.setMenuBarVisibility(false);
win.setAutoHideMenuBar(true);
win.loadFile("ui_templates/index.html");
main = fs.readFileSync("ui_templates/index.html").toString();
header = fs.readFileSync("ui_templates/header.html").toString();
toLoad = header + main;
fs.writeFileSync("ui_templates/temp.html", toLoad)
//win.loadURL("data:text/html;charset=utf-8," + encodeURI(toLoad));
win.loadFile("ui_templates/temp.html")
return(win)
}
function createStartupInfo() {
@ -59,8 +65,19 @@ function doneLoading() {
}
function init() {
createWindow();
win = createWindow();
aWin2 = createStartupInfo();
//const view = new BrowserView({
// webPreferences: {
// nodeIntegration: true,
// },
//})
//win.setBrowserView(view)
//view.setBounds({ x: 0, y: 0, width: screen.getPrimaryDisplay().size.width, height: 100 })
//view.webContents.loadFile('ui_templates/header.html')
setTimeout(doneLoading, 2000);
ipcMain.on("asynchronous-message", (event, arg) => {
console.log(arg); // prints "ping"

189
ui_templates/header.html Normal file
View File

@ -0,0 +1,189 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Enlight - Screen 1</title>
<!--<meta
http-equiv="Content-Security-Policy"
content="script-src 'self' 'unsafe-inline';"
/>-->
<script src="static/jquery-1.7.1.min.js" type="text/javascript"></script>
<script src="static/js/helper.js" type="text/javascript"></script>
<!--<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>*-->
<link href="static/default.css" rel="stylesheet" />
<link
href="static/fontawesome-free-5.15.1-web/css/all.css"
rel="stylesheet"
/>
<!--<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">-->
</head>
<body>
<div id="header-bar" class="header-bar">
<div class="areaRight">
<network>
<i
class="fas fa-network-wired"
id="networkBtn"
onclick='document.getElementById("networkDropdown").classList.toggle("show");'
></i>
<div id="networkDropdown" class="dropdown-content"></div>
</network>
<battery id="battery" class="fa"></battery>
<clock id="clock" class="header-clock"></clock>
<i
class="fa-spin loader1 fa"
style="font-size: 18px; padding-right: 4px"
id="loader"
>&#xf1ce;</i
>
</div>
</div>
<script>
var loaderInUse = true;
const { ipcRenderer } = require("electron");
setInterval(function () {
// Pulling general info from main thread
loadOverride = ipcRenderer.sendSync(
"synchronous-message",
"loadOverride"
);
if (!loaderInUse) {
if (loadOverride) {
document.getElementById("loader").innerHTML = "&#xf1ce;";
} else {
document.getElementById("loader").innerHTML = "";
}
}
}, 500);
// Network info
var allNetworkNames = [];
function buildNetworkDropDown() {
loaderInUse = true;
document.getElementById("loader").innerHTML = "&#xf1ce;";
allNetworks = ipcRenderer.sendSync(
"synchronous-message",
"getNetworks"
);
lastNetwork = ipcRenderer.sendSync(
"synchronous-message",
"getMainNetwork"
);
allNetworkNames = [];
console.log(lastNetwork);
i = 0;
var dropDown = document.getElementById("networkDropdown");
dropDown.innerHTML = "";
while (i < allNetworks.length) {
temp =
"<a id='networkEntry" +
String(i) +
"' onclick='selectNewNetwork(" +
String(i) +
")'>&nbsp;&nbsp;&nbsp;" +
encode_html(allNetworks[i].ifaceName) +
"</a>";
dropDown.innerHTML += temp;
allNetworkNames.push(allNetworks[i].ifaceName);
i++;
}
if (does_list_contain(allNetworkNames, lastNetwork)) {
nameOfElm =
"networkEntry" + String(allNetworkNames.indexOf(lastNetwork));
networkEntryElm = document.getElementById(nameOfElm);
networkEntryElm.innerHTML = networkEntryElm.innerHTML.replace(
"&nbsp;&nbsp;&nbsp;",
"&#10004;"
);
} else {
console.warn("Network is no longer valid");
ipcRenderer.sendSync(
"synchronous-message",
"state:networkNoLongerValid"
);
}
loaderInUse = false;
document.getElementById("loader").innerHTML = "";
}
function selectNewNetwork(id) {
idAsNumber = parseInt(id);
newNetwork = allNetworkNames[id];
ipcRenderer.sendSync(
"synchronous-message",
"set:newNetwork|" + newNetwork
);
buildNetworkDropDown();
nameOfElm = "networkEntry" + String(idAsNumber);
networkEntryElm = document.getElementById(nameOfElm);
networkEntryElm.innerHTML = networkEntryElm.innerHTML.replace(
"&nbsp;&nbsp;&nbsp;",
"&#10004;"
);
}
buildNetworkDropDown();
</script>
<script>
// Battery info screen
batteryExists = ipcRenderer.sendSync("synchronous-message", "hasBattery"); // prints "pong"
var batteryShowdStart = false;
if (batteryExists) {
batteryLevel = ipcRenderer.sendSync(
"synchronous-message",
"getBatteryLevel"
);
//Setup regular updates
setInterval(function () {
batteryLevel = parseInt(
ipcRenderer.sendSync("synchronous-message", "getBatteryLevel")
);
batteryShowdStart = true;
if (batteryLevel > 75) {
document.getElementById("battery").innerHTML = "&#xf240;";
} else if (batteryLevel <= 75 && batteryLevel > 50) {
document.getElementById("battery").innerHTML = "&#xf241;";
} else if (batteryLevel <= 50 && batteryLevel > 25) {
document.getElementById("battery").innerHTML = "&#xf242;";
} else if (batteryLevel <= 25 && batteryLevel > 5) {
document.getElementById("battery").innerHTML = "&#xf243;";
} else {
document.getElementById("battery").innerHTML = "&#xf244;";
}
}, 2000);
} else {
batteryShowdStart = true;
}
if (batteryShowdStart) {
document.getElementById("loader").innerHTML = "";
loaderInUse = false;
}
setInterval(function () {
var date = new Date();
hour = updateTime(date.getHours());
min = updateTime(date.getMinutes());
sec = updateTime(date.getSeconds());
document.getElementById("clock").innerHTML =
hour + ":" + min + ":" + sec;
}, 500);
</script>
<script>
window.onclick = function (event) {
if (!event.target.matches("#networkBtn")) {
var dropdowns = document.getElementsByClassName("dropdown-content");
var i;
for (i = 0; i < dropdowns.length; i++) {
var openDropdown = dropdowns[i];
if (openDropdown.classList.contains("show")) {
openDropdown.classList.remove("show");
}
}
}
};
</script>
<!--</body>
</html>-->

View File

@ -18,7 +18,7 @@
<!--<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">-->
</head>
<body>
<div id="header-bar" class="header-bar">
<!--<div id="header-bar" class="header-bar">
<div class="areaRight">
<network>
<i
@ -122,7 +122,6 @@
"&nbsp;&nbsp;&nbsp;",
"&#10004;"
);
//alert(newNetwork);
}
buildNetworkDropDown();
</script>
@ -185,8 +184,10 @@
}
}
};
</script>
</script>-->
<!--<iframe src="header.html" class="headerIframe"></iframe>-->
<h1>Hello World!</h1>
<a href="">Session screen</a>
We are using node
<script>
document.write(process.versions.node);

View File

@ -16,7 +16,7 @@ small {
margin: 0px;
padding: 0px;
width: 100%;
height: 2%;
height: 34px;
background-color: rgba(36, 36, 36, 0.9);
}
@ -64,4 +64,10 @@ small {
network{
cursor: pointer;
}
.headerIframe{
width: 100%;
border: 0px;
height: 2.5%;
}

394
ui_templates/temp.html Normal file
View File

@ -0,0 +1,394 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Enlight - Screen 1</title>
<!--<meta
http-equiv="Content-Security-Policy"
content="script-src 'self' 'unsafe-inline';"
/>-->
<script src="static/jquery-1.7.1.min.js" type="text/javascript"></script>
<script src="static/js/helper.js" type="text/javascript"></script>
<!--<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>*-->
<link href="static/default.css" rel="stylesheet" />
<link
href="static/fontawesome-free-5.15.1-web/css/all.css"
rel="stylesheet"
/>
<!--<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">-->
</head>
<body>
<div id="header-bar" class="header-bar">
<div class="areaRight">
<network>
<i
class="fas fa-network-wired"
id="networkBtn"
onclick='document.getElementById("networkDropdown").classList.toggle("show");'
></i>
<div id="networkDropdown" class="dropdown-content"></div>
</network>
<battery id="battery" class="fa"></battery>
<clock id="clock" class="header-clock"></clock>
<i
class="fa-spin loader1 fa"
style="font-size: 18px; padding-right: 4px"
id="loader"
>&#xf1ce;</i
>
</div>
</div>
<script>
var loaderInUse = true;
const { ipcRenderer } = require("electron");
setInterval(function () {
// Pulling general info from main thread
loadOverride = ipcRenderer.sendSync(
"synchronous-message",
"loadOverride"
);
if (!loaderInUse) {
if (loadOverride) {
document.getElementById("loader").innerHTML = "&#xf1ce;";
} else {
document.getElementById("loader").innerHTML = "";
}
}
}, 500);
// Network info
var allNetworkNames = [];
function buildNetworkDropDown() {
loaderInUse = true;
document.getElementById("loader").innerHTML = "&#xf1ce;";
allNetworks = ipcRenderer.sendSync(
"synchronous-message",
"getNetworks"
);
lastNetwork = ipcRenderer.sendSync(
"synchronous-message",
"getMainNetwork"
);
allNetworkNames = [];
console.log(lastNetwork);
i = 0;
var dropDown = document.getElementById("networkDropdown");
dropDown.innerHTML = "";
while (i < allNetworks.length) {
temp =
"<a id='networkEntry" +
String(i) +
"' onclick='selectNewNetwork(" +
String(i) +
")'>&nbsp;&nbsp;&nbsp;" +
encode_html(allNetworks[i].ifaceName) +
"</a>";
dropDown.innerHTML += temp;
allNetworkNames.push(allNetworks[i].ifaceName);
i++;
}
if (does_list_contain(allNetworkNames, lastNetwork)) {
nameOfElm =
"networkEntry" + String(allNetworkNames.indexOf(lastNetwork));
networkEntryElm = document.getElementById(nameOfElm);
networkEntryElm.innerHTML = networkEntryElm.innerHTML.replace(
"&nbsp;&nbsp;&nbsp;",
"&#10004;"
);
} else {
console.warn("Network is no longer valid");
ipcRenderer.sendSync(
"synchronous-message",
"state:networkNoLongerValid"
);
}
loaderInUse = false;
document.getElementById("loader").innerHTML = "";
}
function selectNewNetwork(id) {
idAsNumber = parseInt(id);
newNetwork = allNetworkNames[id];
ipcRenderer.sendSync(
"synchronous-message",
"set:newNetwork|" + newNetwork
);
buildNetworkDropDown();
nameOfElm = "networkEntry" + String(idAsNumber);
networkEntryElm = document.getElementById(nameOfElm);
networkEntryElm.innerHTML = networkEntryElm.innerHTML.replace(
"&nbsp;&nbsp;&nbsp;",
"&#10004;"
);
}
buildNetworkDropDown();
</script>
<script>
// Battery info screen
batteryExists = ipcRenderer.sendSync("synchronous-message", "hasBattery"); // prints "pong"
var batteryShowdStart = false;
if (batteryExists) {
batteryLevel = ipcRenderer.sendSync(
"synchronous-message",
"getBatteryLevel"
);
//Setup regular updates
setInterval(function () {
batteryLevel = parseInt(
ipcRenderer.sendSync("synchronous-message", "getBatteryLevel")
);
batteryShowdStart = true;
if (batteryLevel > 75) {
document.getElementById("battery").innerHTML = "&#xf240;";
} else if (batteryLevel <= 75 && batteryLevel > 50) {
document.getElementById("battery").innerHTML = "&#xf241;";
} else if (batteryLevel <= 50 && batteryLevel > 25) {
document.getElementById("battery").innerHTML = "&#xf242;";
} else if (batteryLevel <= 25 && batteryLevel > 5) {
document.getElementById("battery").innerHTML = "&#xf243;";
} else {
document.getElementById("battery").innerHTML = "&#xf244;";
}
}, 2000);
} else {
batteryShowdStart = true;
}
if (batteryShowdStart) {
document.getElementById("loader").innerHTML = "";
loaderInUse = false;
}
setInterval(function () {
var date = new Date();
hour = updateTime(date.getHours());
min = updateTime(date.getMinutes());
sec = updateTime(date.getSeconds());
document.getElementById("clock").innerHTML =
hour + ":" + min + ":" + sec;
}, 500);
</script>
<script>
window.onclick = function (event) {
if (!event.target.matches("#networkBtn")) {
var dropdowns = document.getElementsByClassName("dropdown-content");
var i;
for (i = 0; i < dropdowns.length; i++) {
var openDropdown = dropdowns[i];
if (openDropdown.classList.contains("show")) {
openDropdown.classList.remove("show");
}
}
}
};
</script>
<!--</body>
</html>-->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Enlight - Screen 1</title>
<!--<meta
http-equiv="Content-Security-Policy"
content="script-src 'self' 'unsafe-inline';"
/>-->
<script src="static/jquery-1.7.1.min.js" type="text/javascript"></script>
<script src="static/js/helper.js" type="text/javascript"></script>
<!--<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>*-->
<link href="static/default.css" rel="stylesheet" />
<link
href="static/fontawesome-free-5.15.1-web/css/all.css"
rel="stylesheet"
/>
<!--<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">-->
</head>
<body>
<!--<div id="header-bar" class="header-bar">
<div class="areaRight">
<network>
<i
class="fas fa-network-wired"
id="networkBtn"
onclick='document.getElementById("networkDropdown").classList.toggle("show");'
></i>
<div id="networkDropdown" class="dropdown-content"></div>
</network>
<battery id="battery" class="fa"></battery>
<clock id="clock" class="header-clock"></clock>
<i
class="fa-spin loader1 fa"
style="font-size: 18px; padding-right: 4px"
id="loader"
>&#xf1ce;</i
>
</div>
</div>
<script>
var loaderInUse = true;
const { ipcRenderer } = require("electron");
setInterval(function () {
// Pulling general info from main thread
loadOverride = ipcRenderer.sendSync(
"synchronous-message",
"loadOverride"
);
if (!loaderInUse) {
if (loadOverride) {
document.getElementById("loader").innerHTML = "&#xf1ce;";
} else {
document.getElementById("loader").innerHTML = "";
}
}
}, 500);
// Network info
var allNetworkNames = [];
function buildNetworkDropDown() {
loaderInUse = true;
document.getElementById("loader").innerHTML = "&#xf1ce;";
allNetworks = ipcRenderer.sendSync(
"synchronous-message",
"getNetworks"
);
lastNetwork = ipcRenderer.sendSync(
"synchronous-message",
"getMainNetwork"
);
allNetworkNames = [];
console.log(lastNetwork);
i = 0;
var dropDown = document.getElementById("networkDropdown");
dropDown.innerHTML = "";
while (i < allNetworks.length) {
temp =
"<a id='networkEntry" +
String(i) +
"' onclick='selectNewNetwork(" +
String(i) +
")'>&nbsp;&nbsp;&nbsp;" +
encode_html(allNetworks[i].ifaceName) +
"</a>";
dropDown.innerHTML += temp;
allNetworkNames.push(allNetworks[i].ifaceName);
i++;
}
if (does_list_contain(allNetworkNames, lastNetwork)) {
nameOfElm =
"networkEntry" + String(allNetworkNames.indexOf(lastNetwork));
networkEntryElm = document.getElementById(nameOfElm);
networkEntryElm.innerHTML = networkEntryElm.innerHTML.replace(
"&nbsp;&nbsp;&nbsp;",
"&#10004;"
);
} else {
console.warn("Network is no longer valid");
ipcRenderer.sendSync(
"synchronous-message",
"state:networkNoLongerValid"
);
}
loaderInUse = false;
document.getElementById("loader").innerHTML = "";
}
function selectNewNetwork(id) {
idAsNumber = parseInt(id);
newNetwork = allNetworkNames[id];
ipcRenderer.sendSync(
"synchronous-message",
"set:newNetwork|" + newNetwork
);
buildNetworkDropDown();
nameOfElm = "networkEntry" + String(idAsNumber);
networkEntryElm = document.getElementById(nameOfElm);
networkEntryElm.innerHTML = networkEntryElm.innerHTML.replace(
"&nbsp;&nbsp;&nbsp;",
"&#10004;"
);
}
buildNetworkDropDown();
</script>
<script>
// Battery info screen
batteryExists = ipcRenderer.sendSync("synchronous-message", "hasBattery"); // prints "pong"
var batteryShowdStart = false;
if (batteryExists) {
batteryLevel = ipcRenderer.sendSync(
"synchronous-message",
"getBatteryLevel"
);
//Setup regular updates
setInterval(function () {
batteryLevel = parseInt(
ipcRenderer.sendSync("synchronous-message", "getBatteryLevel")
);
batteryShowdStart = true;
if (batteryLevel > 75) {
document.getElementById("battery").innerHTML = "&#xf240;";
} else if (batteryLevel <= 75 && batteryLevel > 50) {
document.getElementById("battery").innerHTML = "&#xf241;";
} else if (batteryLevel <= 50 && batteryLevel > 25) {
document.getElementById("battery").innerHTML = "&#xf242;";
} else if (batteryLevel <= 25 && batteryLevel > 5) {
document.getElementById("battery").innerHTML = "&#xf243;";
} else {
document.getElementById("battery").innerHTML = "&#xf244;";
}
}, 2000);
} else {
batteryShowdStart = true;
}
if (batteryShowdStart) {
document.getElementById("loader").innerHTML = "";
loaderInUse = false;
}
setInterval(function () {
var date = new Date();
hour = updateTime(date.getHours());
min = updateTime(date.getMinutes());
sec = updateTime(date.getSeconds());
document.getElementById("clock").innerHTML =
hour + ":" + min + ":" + sec;
}, 500);
</script>
<script>
window.onclick = function (event) {
if (!event.target.matches("#networkBtn")) {
var dropdowns = document.getElementsByClassName("dropdown-content");
var i;
for (i = 0; i < dropdowns.length; i++) {
var openDropdown = dropdowns[i];
if (openDropdown.classList.contains("show")) {
openDropdown.classList.remove("show");
}
}
}
};
</script>-->
<!--<iframe src="header.html" class="headerIframe"></iframe>-->
<h1>Hello World!</h1>
<a href="">Session screen</a>
We are using node
<script>
document.write(process.versions.node);
</script>
, Chrome
<script>
document.write(process.versions.chrome);
</script>
, and Electron
<script>
document.write(process.versions.electron);
</script>
.
</body>
</html>

View File

@ -1 +1 @@
Microsoft Loopbackadapter f<>r KM-TEST
VirtualBox Host-Only Ethernet Adapter