67 lines
1.9 KiB
JavaScript
67 lines
1.9 KiB
JavaScript
const { invoke } = window.__TAURI__.core;
|
|
|
|
let callbacks = {
|
|
'#nav-cafe': () => activate("", "cafe", ["angel"]),
|
|
'#nav-angel': () => activate("", "angel", ["cafe"]),
|
|
'#cafe-nav-inventory': () => activate("cafe-", "inventory", ["voucher"]),
|
|
'#cafe-nav-voucher': () => activate("cafe-", "voucher", ["inventory"]),
|
|
'#cafe-inventory form': () => inventory(),
|
|
'#cafe-voucher-aldi': () => swap("aldi"),
|
|
'#cafe-voucher-dm': () => swap("dm"),
|
|
'#cafe-voucher-lidl': () => swap("lidl"),
|
|
'#cafe-voucher-rewe': () => swap("rewe"),
|
|
'#cafe-voucher-tegut': () => swap("tegut"),
|
|
}
|
|
let stores = [
|
|
"aldi",
|
|
"dm",
|
|
"lidl",
|
|
"rewe",
|
|
"tegut",
|
|
]
|
|
|
|
async function increment(el) {
|
|
var el = document.querySelector(el+" input");
|
|
let v = parseInt(el.value, 10);
|
|
v = isNaN(v) ? 0 : v;
|
|
v++;
|
|
el.value = v;
|
|
}
|
|
|
|
async function inventory() {
|
|
const form = document.querySelector("#cafe-inventory form");
|
|
const fd = new FormData(form);
|
|
const obj = Object.fromEntries(fd);
|
|
await invoke("inventory", { data: obj });
|
|
}
|
|
|
|
async function swap(s) {
|
|
await invoke("swap", { store: s, acc: 1 });
|
|
document.querySelector("h1").textContent = await invoke("count", {});
|
|
}
|
|
|
|
async function activate(ctx, el, nels) {
|
|
document.querySelector("#"+ctx+el).style.display = "";
|
|
for (const nel of nels) {
|
|
document.querySelector("#"+ctx+nel).style.display = "none";
|
|
}
|
|
document.querySelector("#"+ctx+"nav").classList.remove("v-container");
|
|
document.querySelector("#"+ctx+"nav").classList.add("h-container");
|
|
}
|
|
|
|
window.addEventListener("DOMContentLoaded", () => {
|
|
for (let key in callbacks) {
|
|
if (callbacks.hasOwnProperty(key)) {
|
|
document.querySelector(key).addEventListener("submit", (e) => {
|
|
e.preventDefault();
|
|
callbacks[key]();
|
|
});
|
|
}
|
|
}
|
|
for (const store of stores) {
|
|
document.querySelector("#cafe-inventory-"+store+" label").addEventListener("click", (e) => {
|
|
e.preventDefault();
|
|
increment("#cafe-inventory-"+store);
|
|
});
|
|
}
|
|
});
|