Took 4 hours 31 minutes
This commit is contained in:
2022-11-22 00:01:03 +01:00
parent 569f42c686
commit d6c219beb7
22 changed files with 272 additions and 17 deletions

View File

@ -2,4 +2,5 @@ export enum RequestType {
CONTAINERS = "CONTAINERS",
INGREDIENTS = "INGREDIENTS",
STATS = "STATS",
JOB = "JOB",
}

View File

@ -7,5 +7,7 @@ export enum WebSocketEvent {
TARE = "TARE",
SETUP = "SETUP",
REQUEST = "REQUEST",
RESPONSE = "RESPONSE"
RESPONSE = "RESPONSE",
FILL = "FILL",
CANCEL = "CANCEL"
}

View File

@ -43,6 +43,11 @@ router.ws('/', async (ws, req, next) => {
log(msg);
switch (msg.event) {
case WebSocketEvent.FILL : {
iTender.setStatus(iTenderStatus.FILLING);
break;
}
case WebSocketEvent.TARE: {
if (msg.data["state"] == true) {
iTender.toggleTare(true);

View File

@ -2,6 +2,9 @@ import {WebSocketPayload} from "../WebSocketPayload";
import {IDrink} from "../database/IDrink";
import {Pane} from "./Pane";
import {Setup} from "./Setup";
import {Modal} from "./Modal";
import {WebSocketEvent} from "../WebSocketEvent";
import {WebWebSocketHandler} from "./WebWebSocketHandler";
export class WebHandler {
static get currentPane(): Pane {
@ -38,6 +41,13 @@ export class WebHandler {
drinkImg.src = "/images/" + drink.name + ".png";
drinkName.innerText = drink.name;
drinkEle.onclick = () => {
let payload = new WebSocketPayload(WebSocketEvent.FILL, false, {drink: drink._id });
WebWebSocketHandler.send(payload);
}
/*
let ingredients = "<ul style='list-style-type: disc;'>";
for (let i of drink.ingredients) {

View File

@ -7,6 +7,7 @@ import {WebHandler} from "./WebHandler";
import {Setup} from "./Setup";
import {Pane} from "./Pane";
import {RequestType} from "../RequestType";
import {IDrink} from "../database/IDrink";
export class WebWebSocketHandler {
private static socket: WebSocket;
@ -61,8 +62,8 @@ export class WebWebSocketHandler {
switch (status) {
case iTenderStatus.READY: {
Modal.close("start");
Modal.close("refreshing");
Modal.close("setup");
Modal.close("fill");
WebHandler.openPane(Pane.MAIN);
(document.getElementById("menuBtn") as HTMLButtonElement).disabled = false;
break;
@ -88,7 +89,52 @@ export class WebWebSocketHandler {
case iTenderStatus.SETUP: {
Modal.close("start");
Setup.openSetup();
break;
}
case iTenderStatus.FILLING: {
let modal = new Modal("fill", "Getränk wird ausgegeben");
let header = document.createElement("h2");
header.innerText = "";
modal.addContent(header);
let txt = document.createElement("p");
txt.innerHTML = `Dein Cocktail wird gerade zubereitet`;
txt.id = "main_fillTxt";
let waterAnimDiv = document.createElement("div");
waterAnimDiv.classList.add("water");
modal.addContent(txt);
modal.addContent(waterAnimDiv);
let cancelBtn = document.createElement("button");
cancelBtn.classList.add("btn", "btn-danger");
cancelBtn.innerText = "Abbrechen";
cancelBtn.disabled = true;
setTimeout(() => {
cancelBtn.disabled = false;
}, 1000);
cancelBtn.onclick = () => {
cancelBtn.disabled = true;
txt.innerHTML = "Der Vorgang wird abgebrochen...";
waterAnimDiv.classList.add("waterCancel");
WebWebSocketHandler.send(new WebSocketPayload(WebSocketEvent.CANCEL));
};
modal.addContent(cancelBtn);
WebWebSocketHandler.request(RequestType.JOB).then((payload) => {
let drink = payload.data as IDrink;
waterAnimDiv.style.backgroundImage = "/images/" + drink.name + ".png";
header.innerText = drink.name;
});
modal.open();
break;
}
}
break;
}