diff --git a/src/App.svelte b/src/App.svelte index 91ea34a..77248ab 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -3,28 +3,17 @@ //*****************************************************************************************************************************/ import { onMount } from "svelte"; import { Route, router, active } from "tinro"; - router.mode.hash(); // enables hash navigation method - //router.mode.memory(); // enables in-memory navigation method - import Chart from "svelte-frappe-charts"; - //import { SvelteToast, toast } from "@zerodevx/svelte-toast"; + router.mode.hash(); - //const app = new SvelteToast({ - // target: document.body, - // props: { - // options: {}, - // }, - //}); - - import Card from "./components/Card.svelte"; - import Alarm from "./components/Alarm.svelte"; import Modal from "./components/Modal.svelte"; - import Input from "./widgets/Input.svelte"; - import Toggle from "./widgets/Toggle.svelte"; - import Anydata from "./widgets/Anydata.svelte"; - //как ставить и удалять - //npm install --save svelte-simple-modal - //npm uninstall svelte-simple-modal + import DashboardPage from "./pages/Dashboard.svelte"; + import ConfigPage from "./pages/Config.svelte"; + import ConnectionPage from "./pages/Connection.svelte"; + import UtilitiesPage from "./pages/Utilities.svelte"; + import LogPage from "./pages/Log.svelte"; + import ListPage from "./pages/List.svelte"; + import AboutPage from "./pages/About.svelte"; //****************************************************constants section*********************************************************/ //******************************************************************************************************************************/ @@ -41,21 +30,12 @@ //Flags let showInput = false; let showModalFlag = false; - let hideAllSubParams = true; + let additionalParams = false; //dashboard let pages = []; - let datachart = { - labels: ["Sun", "Mon", "Tues", "Wed", "Thurs", "Fri", "Sat"], - datasets: [ - { - values: [10, 12, 3, 9, 8, 15, 9], - }, - ], - }; - //configuration let configJson = []; let configJsonFlag = false; @@ -88,7 +68,7 @@ let selectedDeviceData = undefined; let deviceList = []; let flag = true; - let newDevice = {}; + let coreMessages = []; let wsSelected = undefined; @@ -712,37 +692,6 @@ wsSendMsg(wsSelected, "/scan"); } - function returnError() { - let ret = false; - if (!socketConnected || oneOfJsonPackageError) { - ret = true; - } - return ret; - } - - function returnErrorName() { - if (!socketConnected) { - return "Нет соединения"; - } else if (oneOfJsonPackageError) { - return "Ошибка данных"; - } - } - - function configPageStatus() { - if (itemsJsonParced && widgetsJsonParced && configJsonParced && settingsJsonParced) { - return true; - } - } - - function pushGreen() { - toast.push("Saved!", { - theme: { - "--toastBackground": "#48BB78", - "--toastProgressBackground": "#2F855A", - }, - }); - } - //*******************************************************initialisation********************************************************************/ onMount(async () => { console.log("[i]", "mounted"); @@ -813,259 +762,25 @@ {:else} -
- {#if layoutJson === []} - - {/if} - {#each pages as pagesName, i} - - {#each layoutJson as widget, i} - {#if widget.page === pagesName.page} - {#if widget.widget === "input"} - wsPush(ws, topic, status)} /> - {/if} - {#if widget.widget === "toggle"} - wsPush(ws, topic, status)} /> - {/if} - {#if widget.widget === "anydata"} - - {/if} - {/if} - {/each} - - {/each} -
+ wsPush(ws, topic, status)} />
- -
- -
- - -
- - - - - - - - - - - - {#each configJson as element, i} - - - - - - - - - - {#if !hideAllSubParams} - {#each Object.entries(element) as [key, param]} - {#if key != "type" && key != "subtype" && key != "id" && key != "widget" && key != "page" && key != "descr"} - - - - - {/if} - {/each} - - {/if} - {/each} - -
ТипIdВиджетВкладкаНазвание - -
{element.subtype} (hideAllSubParams = !hideAllSubParams)} class="h-6 w-6 text-green-400 cursor-pointer" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"> deleteLine(i)} class="h-6 w-6 text-red-400 cursor-pointer" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
- - - -

{key}

-
- -
- -
-
- - - - - + elementsDropdownChange()} saveConfig={() => saveConfig()} deleteLine={(i) => deleteLine(i)} />
-
- -
-
-

Название устройства

-
-
- -
-
-
-
-

Точка доступа

-
-
- -
-
-
-
-

Пароль точки доступа

-
-
- -
-
-
-
-

Название wifi сети

-
-
- -
-
-
-
-

Пароль

-
-
- -
-
- {#if settingsJson.pass_status === 1} -
- -
- {/if} - -
- -
-
-

Название сервера

-
-
- -
-
-
-
-

Порт

-
-
- -
-
-
-
-

Префикс

-
-
- -
-
-
-
-

Имя пользователя

-
-
- -
-
-
-
-

Пароль

-
-
- -
-
- -
-
+ ssidDropdownClick()} saveSettings={() => saveSettings()} />
- - - + - - {#each coreMessages as message, i} -
{message.msg}
- {/each} -
+
- - - - - - - - - - - - {#each deviceList as device} - - - - - - - {/each} - {#if showInput} - - - - - - {/if} - -
Название устройстваIP адресИдентификаторСостояние
{device.name}{device.ip}{device.id}{device.status ? "online" : "offline"}
-
- -
+ devListSave()} />
- - - - + showModal()} syntaxHighlight={(json) => syntaxHighlight(json)} /> {/if} diff --git a/src/pages/About.svelte b/src/pages/About.svelte new file mode 100644 index 0000000..d3a2ed7 --- /dev/null +++ b/src/pages/About.svelte @@ -0,0 +1,14 @@ + + + + + + diff --git a/src/pages/Config.svelte b/src/pages/Config.svelte new file mode 100644 index 0000000..5f0b59f --- /dev/null +++ b/src/pages/Config.svelte @@ -0,0 +1,92 @@ + + + +
+ +
+ + +
+ + + + + + + + + + + + {#each configJson as element, i} + + + + + + + + + + {#if !hideAllSubParams} + {#each Object.entries(element) as [key, param]} + {#if key != "type" && key != "subtype" && key != "id" && key != "widget" && key != "page" && key != "descr"} + + + + + {/if} + {/each} + + {/if} + {/each} + +
ТипIdВиджетВкладкаНазвание + +
{element.subtype} (hideAllSubParams = !hideAllSubParams)} class="h-6 w-6 text-green-400 cursor-pointer" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"> deleteLine(i)} class="h-6 w-6 text-red-400 cursor-pointer" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
+ + + +

{key}

+
+ +
+ +
+
+ + + + + diff --git a/src/Connection.svelte b/src/pages/Connection.svelte similarity index 97% rename from src/Connection.svelte rename to src/pages/Connection.svelte index e052829..a79cd97 100644 --- a/src/Connection.svelte +++ b/src/pages/Connection.svelte @@ -1,9 +1,9 @@ diff --git a/src/pages/Dashboard.svelte b/src/pages/Dashboard.svelte new file mode 100644 index 0000000..cc352ad --- /dev/null +++ b/src/pages/Dashboard.svelte @@ -0,0 +1,34 @@ + + +
+ {#if layoutJson === []} + + {/if} + {#each pages as pagesName, i} + + {#each layoutJson as widget, i} + {#if widget.page === pagesName.page} + {#if widget.widget === "input"} + wsPush(ws, topic, status)} /> + {/if} + {#if widget.widget === "toggle"} + wsPush(ws, topic, status)} /> + {/if} + {#if widget.widget === "anydata"} + + {/if} + {/if} + {/each} + + {/each} +
diff --git a/src/pages/List.svelte b/src/pages/List.svelte new file mode 100644 index 0000000..38ef054 --- /dev/null +++ b/src/pages/List.svelte @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + {#each deviceList as device} + + + + + + + {/each} + {#if showInput} + + + + + + {/if} + +
Название устройстваIP адресИдентификаторСостояние
{device.name}{device.ip}{device.id}{device.status ? "online" : "offline"}
+
+ +
diff --git a/src/pages/Log.svelte b/src/pages/Log.svelte new file mode 100644 index 0000000..db18819 --- /dev/null +++ b/src/pages/Log.svelte @@ -0,0 +1,11 @@ + + + + {#each coreMessages as message, i} +
{message.msg}
+ {/each} +
diff --git a/src/pages/Utilities.svelte b/src/pages/Utilities.svelte new file mode 100644 index 0000000..2a84f8e --- /dev/null +++ b/src/pages/Utilities.svelte @@ -0,0 +1,17 @@ + + + + + diff --git a/src/widgets/Input.svelte b/src/widgets/Input.svelte index a3b50e6..bc540de 100644 --- a/src/widgets/Input.svelte +++ b/src/widgets/Input.svelte @@ -1,6 +1,6 @@ @@ -12,16 +12,16 @@
{#if widget.type == "number"} - ((widget["send"] = true), wsPushProp(widget.ws, widget.topic, widget.status))} bind:value={widget.status} step="0.1" type="number" /> + ((widget["send"] = true), wsPush(widget.ws, widget.topic, widget.status))} bind:value={widget.status} step="0.1" type="number" /> {/if} {#if widget.type == "text"} - ((widget["send"] = true), wsPushProp(widget.ws, widget.topic, widget.status))} bind:value={widget.status} type="text" /> + ((widget["send"] = true), wsPush(widget.ws, widget.topic, widget.status))} bind:value={widget.status} type="text" /> {/if} {#if widget.type == "date"} - ((widget["send"] = true), wsPushProp(widget.ws, widget.topic, widget.status))} bind:value={widget.status} type="date" /> + ((widget["send"] = true), wsPush(widget.ws, widget.topic, widget.status))} bind:value={widget.status} type="date" /> {/if} {#if widget.type == "time"} - ((widget["send"] = true), wsPushProp(widget.ws, widget.topic, widget.status))} bind:value={widget.status} type="time" /> + ((widget["send"] = true), wsPush(widget.ws, widget.topic, widget.status))} bind:value={widget.status} type="time" /> {/if}
diff --git a/src/widgets/Toggle.svelte b/src/widgets/Toggle.svelte index 99d6f78..56f263d 100644 --- a/src/widgets/Toggle.svelte +++ b/src/widgets/Toggle.svelte @@ -2,7 +2,7 @@ export let widget; export let value; value = value; - export let wsPushProp = (ws, topic, status) => {}; + export let wsPush = (ws, topic, status) => {};
@@ -13,7 +13,7 @@