создал функцию генерирующию layout

This commit is contained in:
Dmitry Borisenko
2022-01-31 01:45:42 +01:00
parent f6bc560cac
commit be9cbe2a85

View File

@@ -37,115 +37,115 @@
let wigets = []; let wigets = [];
let pages = []; let pages = [];
wigets = [ //wigets = [
{ // {
widget: "input", // widget: "input",
type: "date", // type: "date",
status: "2021-10-17", // status: "2021-10-17",
page: "Inputs", // page: "Inputs",
order: "4", // order: "4",
descr: "Switch on boiler date", // descr: "Switch on boiler date",
topic: "/prefix/00000-00004/date1", // topic: "/prefix/00000-00004/date1",
ws: 0, // ws: 0,
}, // },
{ // {
widget: "input", // widget: "input",
type: "time", // type: "time",
status: "12:00", // status: "12:00",
page: "Inputs", // page: "Inputs",
order: "1", // order: "1",
descr: "Switch on boiler time", // descr: "Switch on boiler time",
topic: "/prefix/00000-00001/time", // topic: "/prefix/00000-00001/time",
ws: 0, // ws: 0,
}, // },
{ // {
widget: "input", // widget: "input",
type: "number", // type: "number",
status: "30.5", // status: "30.5",
after: "°С", // after: "°С",
page: "Inputs", // page: "Inputs",
order: "2", // order: "2",
descr: "Boiler temperature", // descr: "Boiler temperature",
topic: "/prefix/00000-00002/temp", // topic: "/prefix/00000-00002/temp",
ws: 0, // ws: 0,
}, // },
{ // {
widget: "input", // widget: "input",
type: "text", // type: "text",
status: "Hello", // status: "Hello",
page: "Inputs", // page: "Inputs",
order: "3", // order: "3",
descr: "Message to be send", // descr: "Message to be send",
topic: "/prefix/00000-00003/text", // topic: "/prefix/00000-00003/text",
ws: 0, // ws: 0,
}, // },
{ // {
widget: "toggle", // widget: "toggle",
status: 0, // status: 0,
page: "Toggles", // page: "Toggles",
order: "3", // order: "3",
descr: "Light in my room", // descr: "Light in my room",
topic: "/prefix/00000-00003/btn1", // topic: "/prefix/00000-00003/btn1",
ws: 0, // ws: 0,
}, // },
{ // {
widget: "toggle", // widget: "toggle",
status: 0, // status: 0,
page: "Toggles", // page: "Toggles",
order: "3", // order: "3",
descr: "Light in my room", // descr: "Light in my room",
topic: "/prefix/00000-00003/btn2", // topic: "/prefix/00000-00003/btn2",
ws: 0, // ws: 0,
}, // },
{ // {
widget: "toggle", // widget: "toggle",
status: 0, // status: 0,
page: "Toggles", // page: "Toggles",
order: "3", // order: "3",
descr: "Light in my room", // descr: "Light in my room",
topic: "/prefix/00000-00003/btn3", // topic: "/prefix/00000-00003/btn3",
ws: 0, // ws: 0,
}, // },
{ // {
widget: "anydata", // widget: "anydata",
status: 30.5, // status: 30.5,
after: "°С", // after: "°С",
page: "Any data", // page: "Any data",
order: "3", // order: "3",
descr: "Temperature", // descr: "Temperature",
topic: "/prefix/00000-00003/tmp10", // topic: "/prefix/00000-00003/tmp10",
ws: 0, // ws: 0,
}, // },
{ // {
widget: "anydata", // widget: "anydata",
status: 1032, // status: 1032,
after: "mm", // after: "mm",
page: "Any data", // page: "Any data",
order: "3", // order: "3",
descr: "Pressure", // descr: "Pressure",
topic: "/prefix/00000-00003/tmp10", // topic: "/prefix/00000-00003/tmp10",
ws: 0, // ws: 0,
}, // },
{ // {
widget: "anydata", // widget: "anydata",
status: 50, // status: 50,
after: "%", // after: "%",
page: "Any data", // page: "Any data",
order: "3", // order: "3",
descr: "Level", // descr: "Level",
topic: "/prefix/00000-00003/tmp10", // topic: "/prefix/00000-00003/tmp10",
ws: 0, // ws: 0,
}, // },
{ // {
widget: "anydata", // widget: "anydata",
status: "opened", // status: "opened",
page: "Any data", // page: "Any data",
order: "3", // order: "3",
descr: "Status", // descr: "Status",
topic: "/prefix/00000-00003/tmp10", // topic: "/prefix/00000-00003/tmp10",
ws: 0, // ws: 0,
}, // },
]; //];
let datachart = { let datachart = {
labels: ["Sun", "Mon", "Tues", "Wed", "Thurs", "Fri", "Sat"], labels: ["Sun", "Mon", "Tues", "Wed", "Thurs", "Fri", "Sat"],
@@ -177,8 +177,8 @@
{ {
name: "Устройство 1", name: "Устройство 1",
id: "987654321", id: "987654321",
ip: myip, //ip: myip,
//ip: "192.168.88.235", ip: "192.168.88.235",
status: false, status: false,
}, },
]; ];
@@ -369,12 +369,40 @@
} }
} }
function sendConfigJson() { function saveConfig() {
generateLayout();
wsSendMsg(wsSelected, "/gifnoc" + JSON.stringify(configJson)); wsSendMsg(wsSelected, "/gifnoc" + JSON.stringify(configJson));
clearData(); clearData();
sendCurrentPageName(); sendCurrentPageName();
} }
function generateLayout() {
let layout = [];
for (let i = 0; i < configJson.length; i++) {
let config = configJson[i];
let setWidget = config.widget;
let error = true;
for (let w = 0; w < widgetsJson.length; w++) {
if (setWidget === widgetsJson[w].name) {
let widget = widgetsJson[w];
widget.page = config.page;
widget.descr = config.descr;
widget.id = config.id;
layout.push(widget);
error = false;
break;
} else {
error = true;
}
}
if (error) console.log("[e]", "error, widget not found: " + setWidget);
}
if (debug) console.log("[i]", JSON.stringify(layout));
wigets = layout;
wigets = wigets;
wigetsUpdate();
}
function clearData() { function clearData() {
configJson = []; configJson = [];
configJsonBlob.clear(); configJsonBlob.clear();
@@ -434,7 +462,7 @@
} }
function wigetsUpdate() { function wigetsUpdate() {
wigets = JSON.parse(document.getElementById("text1").value); //wigets = JSON.parse(document.getElementById("text1").value);
findNewPage(); findNewPage();
} }
@@ -730,7 +758,7 @@
{/each} {/each}
</tbody> </tbody>
</table> </table>
<button class="btn-lg" on:click={() => sendConfigJson()}>{"Сохранить"}</button> <button class="btn-lg" on:click={() => saveConfig()}>{"Сохранить"}</button>
</Card> </Card>
</div> </div>
</Route> </Route>