исправляем баги dashboard

This commit is contained in:
Dmitry Borisenko
2022-11-21 00:38:58 +01:00
parent d4b98e514c
commit a2530c24e2
3 changed files with 47 additions and 32 deletions

View File

@@ -45,7 +45,7 @@
//****************************************************variable section**********************************************************/ //****************************************************variable section**********************************************************/
//******************************************************************************************************************************/ //******************************************************************************************************************************/
let myip = document.location.hostname; let myip = document.location.hostname;
if (devMode) myip = "192.168.88.251"; if (devMode) myip = "192.168.88.237";
//Flags //Flags
let firstDevListRequest = true; let firstDevListRequest = true;
@@ -200,14 +200,14 @@
function ack(ws, st) { function ack(ws, st) {
if (!st) { if (!st) {
startMillis[ws] = Date.now(); //+new Date(); startMillis[ws] = Date.now();
ackTimeoutsArr[ws] = setTimeout(function () { ackTimeoutsArr[ws] = setTimeout(function () {
markDeviceStatus(ws, false); markDeviceStatus(ws, false);
}, waitingAckTimeout); }, waitingAckTimeout);
} else { } else {
if (ackTimeoutsArr[ws]) clearTimeout(ackTimeoutsArr[ws]); if (ackTimeoutsArr[ws]) clearTimeout(ackTimeoutsArr[ws]);
if (startMillis[ws]) { if (startMillis[ws]) {
ping[ws] = Date.now() - startMillis[ws]; //+new Date(); ping[ws] = Date.now() - startMillis[ws];
} }
for (let i = 0; i < deviceList.length; i++) { for (let i = 0; i < deviceList.length; i++) {
@@ -225,28 +225,21 @@
if (device.ws === ws) { if (device.ws === ws) {
device.status = status; device.status = status;
device.ping = 0; device.ping = 0;
if (debug) {
if (device.status) { if (device.status) {
console.log("[i]", device.ip, ws, "status online"); console.log("[i]", device.ip, ws, "status online");
} else { } else {
//socket[ws].close();
console.log("[i]", device.ip, ws, "status offline"); console.log("[i]", device.ip, ws, "status offline");
} deleteWidget(ws);
sortingLayout(ws);
} }
} }
}); });
whenDeviceListWasUpdated();
deviceList = deviceList; deviceList = deviceList;
//getSelectedDeviceData(selectedWs);
//socketConnected = selectedDeviceData.status;
} }
function remooveWidgets(ws) { function deleteWidget(ws) {
for (let i = 0; i < layoutJson.length; i++) { layoutJson = layoutJson.filter((item) => item.ws !== ws);
if (ws === layoutJson[i].ws) {
delete layoutJson[i];
}
}
layoutJson = layoutJson;
} }
function getDeviceStatus(ws) { function getDeviceStatus(ws) {
@@ -304,6 +297,7 @@
if (typeof event.data === "string") { if (typeof event.data === "string") {
let data = event.data; let data = event.data;
if (data === "/tstr|") { if (data === "/tstr|") {
//прилетело подтверждение значит устройство онлайн
ack(ws, true); ack(ws, true);
} }
} }
@@ -1311,7 +1305,7 @@
<main class="flex-1 overflow-y-auto p-0 {opened === true && !preventMove ? 'ml-36' : 'ml-0'}"> <main class="flex-1 overflow-y-auto p-0 {opened === true && !preventMove ? 'ml-36' : 'ml-0'}">
<ul class="menu__main"> <ul class="menu__main">
<div class="bg-cover pt-0 px-4"> <div class="bg-cover pt-0 px-4">
{#if !socketConnected} {#if !socketConnected && currentPageName != "/|"}
<Alarm title="Нет соединения" /> <Alarm title="Нет соединения" />
{:else} {:else}
<Route path="/"> <Route path="/">

View File

@@ -16,10 +16,12 @@
</script> </script>
{#if show} {#if show}
<div class="grd-3col1"> <div class="grd-1col1">
{#if layoutJson === []} {#if layoutJson.length === 0}
<Card title={"Ваша панель управления пуста, вначале добавьте новые элементы в конфигураторе!"} /> <Card title={"Ваша панель управления пуста, вначале добавьте новые элементы в конфигураторе!"} />
{/if} {/if}
</div>
<div class="grd-3col1">
{#each pages as pagesName, p} {#each pages as pagesName, p}
<Card title={pagesName.page}> <Card title={pagesName.page}>
{#each layoutJson as widget, l} {#each layoutJson as widget, l}

View File

@@ -310,6 +310,17 @@
<button class="btn-lg h-7" on:click={() => cleanLogs()}>{"Очистить"}</button> <button class="btn-lg h-7" on:click={() => cleanLogs()}>{"Очистить"}</button>
</div> </div>
</div> </div>
<!--WORKING GROUP-->
<div class="flex mb-2 h-6 items-center">
<div class="w-2/3">
<p class="pr-4 text-gray-500 font-bold text-sm truncate">Группа устройств</p>
</div>
<div class="flex justify-center w-1/3">
<input bind:value={settingsJson.wg} on:change={() => (reboot = true)} class="ipt-rnd h-7 text-center focus:border-indigo-500" />
</div>
</div>
<!--LOG--> <!--LOG-->
<div class="flex mb-2 h-6 items-center"> <div class="flex mb-2 h-6 items-center">
<div class="w-2/3"> <div class="w-2/3">
@@ -326,7 +337,23 @@
</div> </div>
</div> </div>
<!--I2C--> <!--i2c-->
<div class="flex mb-2 h-6 items-center">
<div class="w-2/3">
<p class="pr-4 text-gray-500 font-bold text-sm truncate">Расширение i2c</p>
</div>
<div class="flex justify-center w-1/3">
<label for="i2c" class="items-center cursor-pointer">
<div class="relative">
<input bind:checked={settingsJson.i2c} on:change={() => (reboot = true)} id="i2c" type="checkbox" class="sr-only" />
<div class="block {settingsJson.i2c ? 'bg-blue-600' : 'bg-gray-600'} w-10 h-6 rounded-full shadow-lg" />
<div class="dot bg-gray-100 absolute left-1 top-1 w-4 h-4 rounded-full transition shadow-lg" />
</div>
</label>
</div>
</div>
<div class="flex mb-2 h-6 items-center"> <div class="flex mb-2 h-6 items-center">
<div class="w-2/3"> <div class="w-2/3">
<p class="pr-4 text-gray-500 font-bold text-sm truncate">i2c SCL gpio</p> <p class="pr-4 text-gray-500 font-bold text-sm truncate">i2c SCL gpio</p>
@@ -351,16 +378,8 @@
<input bind:value={settingsJson.i2cFreq} on:change={() => (reboot = true)} class="ipt-rnd h-7 text-center focus:border-indigo-500" type="number" /> <input bind:value={settingsJson.i2cFreq} on:change={() => (reboot = true)} class="ipt-rnd h-7 text-center focus:border-indigo-500" type="number" />
</div> </div>
</div> </div>
<!--WORKING GROUP-->
<div class="flex mb-2 h-6 items-center">
<div class="w-2/3">
<p class="pr-4 text-gray-500 font-bold text-sm truncate">Группа устройств</p>
</div>
<div class="flex justify-center w-1/3">
<input bind:value={settingsJson.wg} on:change={() => (reboot = true)} class="ipt-rnd h-7 text-center focus:border-indigo-500" />
</div>
</div>
<!--control-->
<!--<div class="grd-2col1">--> <!--<div class="grd-2col1">-->
{#if paramsBeenChanged} {#if paramsBeenChanged}
<button class="btn-lg animate-pulse" on:click={() => (saveSett(), (paramsBeenChanged = false))}>{"Сохранить"}</button> <button class="btn-lg animate-pulse" on:click={() => (saveSett(), (paramsBeenChanged = false))}>{"Сохранить"}</button>