diff options
Diffstat (limited to 'client/src/shoppingbasket.js')
| -rw-r--r-- | client/src/shoppingbasket.js | 82 |
1 files changed, 37 insertions, 45 deletions
diff --git a/client/src/shoppingbasket.js b/client/src/shoppingbasket.js index c23c02c..7355a99 100644 --- a/client/src/shoppingbasket.js +++ b/client/src/shoppingbasket.js @@ -1,70 +1,62 @@ -document.querySelector(".badge").innerText = localStorage.length; +import { Order } from "./templateImplementations.js" +import { displayNumberOfItemsInShoppingBasketWithBadge, findParentWithTag, childKillerUsingTags } from "./utils.js"; + function getOrderArray() { - var orders = new Array; - for (let i = 0; i < localStorage.length; i++) { - var order = localStorage.getItem(i+1); - order = JSON.parse(order); - orders.push(order); - } - // console.log(orders); + var orders = JSON.parse(localStorage.getItem("shoppingBasketArray")); return orders; } -class Order { - constructor(orderJSON) { - for (const [key, value] of Object.entries(orderJSON)) { - this[key] = value; - } - - } - - addToMain() { - // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/template - var main = document.querySelector("main"); - var template = document.querySelector("#ticket"); +function displayOrders() { + displayNumberOfItemsInShoppingBasketWithBadge(); + const orderFunctionality = { + cancel: cancelOrder, + }; - var clone = template.content.cloneNode(true); - // console.log(clone); - var lines = clone.querySelectorAll("div"); + var orders = getOrderArray(); + if (orders === null) return; - for (var i = 0; i < lines.length; i++) { - var text = lines[i].textContent; + var main = document.querySelector("main"); - if (text === "Parkname") { - console.log(this.name); - lines[i].textContent = this.name; - } + for (let i = 0; i < orders.length; i++) { + var orderObj = new Order(orders[i], document.querySelector("#ticket")); + orderObj.addToNode(main, orderFunctionality); + } +} - if (text.toLowerCase().includes("adults")) { - lines[i].textContent = text + " " + this.adults; - } +function cancelOrder(event) { + //console.log(event.target); + const article = findParentWithTag.bind(event.target)("article"); - if (text.toLowerCase().includes("kids")) { - lines[i].textContent = text + " " + this.children; - } + var previous = article.previousSibling; + var i = 0; + while (previous) { + if (previous.tagName === "ARTICLE") { + i = i+1; } - - main.appendChild(clone); + previous = previous.previousSibling; } -} - -function displayOrders() { var orders = getOrderArray(); - for (let i = 0; i < orders.length; i++) { - orderObj = new Order(orders[i]); - orderObj.addToMain(); - } + orders.splice(i, 1); + localStorage.setItem("shoppingBasketArray", JSON.stringify(orders)); + var main = document.querySelector("main"); + childKillerUsingTags(main)(main.firstChild)("article"); + displayOrders(); } -displayOrders(); + + function finalizePayment(event) { console.log("finalizing payments"); localStorage.clear(); + window.location.replace("orderplaced.html"); } + document.querySelector("#finalizepaymentbutton").addEventListener("click", finalizePayment); + +displayOrders(); |
