"use strict"; var frontShop; (function (frontShop) { let serverUrl = "http://localhost:8100"; let combinationArray = []; let combinationCount = 0; let tisch = ""; // create page init(); async function init() { printTopButtons(); await getProductList(); addButtonFunctions(); fixCartCount(); } function printTopButtons() { for (let i = 1; i <= 20; i++) { let button = document.createElement("button"); button.setAttribute("id", "id_table_" + `${i}`); button.setAttribute("content", `{"tisch":"${i}"}`); button.classList.add("product_button"); button.innerHTML = `Tisch: ${i}`; document.querySelector("#topTable").append(button); } let button = document.createElement("button"); button.setAttribute("id", "id_table_0"); button.setAttribute("content", `{"tisch":"0"}`); button.innerHTML = "Zum Mitnehmen!"; document.querySelector("#topTake").append(button); } async function getProductList() { let url = serverUrl + "/mongo/products/findCollection" + "?"; let response = await fetch(url); let jsonResponse = await response.json(); printProducts(jsonResponse); } function printProducts(_jsonResponse) { for (const iterator of _jsonResponse) { delete iterator._id; document.querySelector(`#${iterator.category}Div`).innerHTML += `
Product
${iterator.name.replace("-", " ")}
`; } } function addButtonFunctions() { let buttonList = document.querySelectorAll(".product_button"); for (const iterator of buttonList) iterator.addEventListener("click", addProduct); document.querySelector("#id_table_0").addEventListener("click", addProduct); document.querySelector("#nextButton").addEventListener("click", addCurrent); document.querySelector("#sendButton").addEventListener("click", addOrderToLocal); document.querySelector("#resetButton").addEventListener("click", clearCombination); } function addProduct(_event) { let target = _event.target; let product = JSON.parse(target.getAttribute("content")); if (product.tisch != undefined) { tisch = JSON.stringify(product); console.log(tisch); } switch (product.category) { case "container": { if (checkMaximum(1, product)) { let index = combinationArray.indexOf(combinationArray.find(_element => _element = product.category)); combinationArray[index] = JSON.stringify(product); displayOrder(); } else { combinationArray.push(JSON.stringify(product)); displayOrder(); } break; } case "flavour": { if (!checkMaximum(6, product)) { combinationArray.push(JSON.stringify(product)); displayOrder(); } break; } case "topping": { if (!checkMaximum(3, product)) { combinationArray.push(JSON.stringify(product)); displayOrder(); } break; } } console.log("combinationArray", combinationArray); } function checkMaximum(_maximum, _targetString) { let countOccurence = 0; for (let i = 0; i < combinationArray.length; i++) { let checkString = combinationArray[i]; if (checkString.includes(_targetString.category)) countOccurence++; if (countOccurence == _maximum) { alert("Die maximale Anzahl von " + _maximum + " wurde bereits erreicht"); return true; } } return false; } function addCurrent() { addToLocal(); clearCombination(); fixCartCount(); combinationCount++; } function clearCombination() { combinationArray = []; displayOrder(); document.querySelector("#topContainer").scrollIntoView(true); } function fixCartCount() { if (localStorage["CartCount"] != undefined) localStorage.removeItem("CartCount"); let count = 0; for (const key in localStorage) { if (key.includes("Combination")) { count++; } } localStorage.setItem("CartCount", `${count}`); document.querySelector("#warenkorb span").innerHTML = `${localStorage.CartCount}`; } function addOrderToLocal() { addToLocal(); window.location.href = "../html-warenkorb/warenkorb.html"; } function addToLocal() { combinationArray.push(tisch); localStorage.setItem(`Combination${combinationCount}`, "[" + combinationArray.toLocaleString() + "]"); } function displayOrder() { document.querySelector("#displayContainer").innerHTML = ""; for (let i = combinationArray.length - 1; i > -1; i--) { console.log(combinationArray[i]); let obj = JSON.parse(combinationArray[i]); document.querySelector("#displayContainer").innerHTML += ``; } } })(frontShop || (frontShop = {})); //# sourceMappingURL=shop.js.map