Took 5 hours 14 minutes
This commit is contained in:
2022-11-21 12:13:30 +01:00
parent a4ac8d083b
commit a722caf2d4
17 changed files with 421 additions and 106 deletions

View File

@ -1,15 +1,12 @@
import {WebSocketPayload} from "../WebSocketPayload";
import {IDrink} from "../database/IDrink";
import {Pane} from "./Pane";
import {IContainer} from "../database/IContainer";
import {Setup} from "./Setup";
import {SensorType} from "../SensorType";
export class WebHandler {
static get currentPane(): Pane {
return this._currentPane;
}
private static containers = [];
public static onDrinkUpdate(payload: WebSocketPayload) {
if (!payload.data) return;
@ -18,6 +15,8 @@ export class WebHandler {
const main = document.getElementById("main");
if (!main) return;
console.log(drinks)
main.style.gridTemplateRows = `repeat(${Math.round(drinks.length / 3)}, calc(90%/2))`;
main.innerHTML = "";
@ -55,43 +54,7 @@ ${ingredients}`*/ //todo
// modal.open();
//};
//main.append(drinkEle);
}
}
public static onContainerUpdate(payload: WebSocketPayload) {
let containerDiv = document.getElementById("setupContainers") as HTMLDivElement;
containerDiv.innerHTML = "";
let containers = payload.data as IContainer[];
for (let c of containers) {
Setup.addSetupContainer();
}
let i = 0;
let list = containerDiv.getElementsByTagName("div");
for (let c of containers) {
let current = list[i] as HTMLDivElement;
let selects = current.getElementsByTagName("select");
(selects[0] as HTMLSelectElement).value = c.pumpPin.toString();
let type;
if (c.sensorType == SensorType.NONE)
type = "-1";
else if (c.sensorType == SensorType.ULTRASOUND)
type = "0";
else
type = "1";
(selects[1] as HTMLSelectElement).value = type;
(selects[2] as HTMLSelectElement).value = c.sensorPin1.toString();
(selects[3] as HTMLSelectElement).value = c.sensorPin2.toString();
(selects[4] as HTMLSelectElement).value = c.volume.toString();
let event = new Event('change', {bubbles: true});
selects[1].dispatchEvent(event);
i++;
main.append(drinkEle);
}
}
@ -99,6 +62,7 @@ ${ingredients}`*/ //todo
private static _currentPane: Pane;
public static openPane(pane: Pane): void {
const menuBtn = document.getElementById("menuBtn") as HTMLButtonElement;
let mainPanel = document.getElementById("main") as HTMLDivElement;
let setupPanel = document.getElementById("setup") as HTMLDivElement;
let menuPanel = document.getElementById("menu") as HTMLDivElement;
@ -112,6 +76,7 @@ ${ingredients}`*/ //todo
settingsPanel.classList.add("hiddenPane");
}
switch (this._currentPane) {
case Pane.MAIN: {
mainPanel.classList.add("hiddenPane");
@ -129,29 +94,36 @@ ${ingredients}`*/ //todo
settingsPanel.classList.add("hiddenPane");
break;
}
case Pane.CONTAINERS: {
}
}
menuBtn.innerText = "Menü";
let title = document.getElementById("title") as HTMLTitleElement;
switch (pane) {
case Pane.MAIN: {
mainPanel.classList.remove("hiddenPane");
mainPanel.scrollTo({top: 0, behavior: "smooth"});
title.innerText = "iTender";
break;
}
case Pane.MENU: {
menuPanel.classList.remove("hiddenPane");
title.innerText = "Menü";
menuBtn.innerText = "Start";
break;
}
case Pane.SETUP: {
setupPanel.classList.remove("hiddenPane");
title.innerText = "Setup";
setupPanel.scrollTo({top: 0, behavior: "smooth"});
break;
}
case Pane.SETTINGS: {
settingsPanel.classList.remove("hiddenPane");
title.innerText = "Einstellungen";
settingsPanel.scrollTo({top: 0, behavior: "smooth"})
break;
}
}