diff options
Diffstat (limited to 'client/src')
| -rw-r--r-- | client/src/index.js | 75 | ||||
| -rw-r--r-- | client/src/shoppingbasket.js | 70 |
2 files changed, 145 insertions, 0 deletions
diff --git a/client/src/index.js b/client/src/index.js index e69de29..13d7219 100644 --- a/client/src/index.js +++ b/client/src/index.js @@ -0,0 +1,75 @@ +function orderButtonClicked(event) { + console.log("button click"); + var button; + if (event.target.classList.contains("orderbutton")) { + button = event.target; + } else { + button = event.target.parentNode; + } + var node = button.previousElementSibling; + var adults; + var kids; + var parkName; + while (true) { + if (node.classList.contains("numberofkids")) { + kids = Number(node.value); + } + if (node.classList.contains("numberofadults")) { + adults = Number(node.value) + } + if (node.classList.contains("parkname")) { + parkName = node.innerText; + break + } + if (node.previousElementSibling == null) { + node = node.parentNode; + } else { + node = node.previousElementSibling; + } + } + + if (kids > 0 || adults > 0) { + saveOrderInShoppingBasket(parkName, adults, kids); + } +}; + +function saveOrderInShoppingBasket(name, adults, kids) { + var order = { + name: name, + adults: adults, + children: kids, + }; + var orderString = JSON.stringify(order); + localStorage.setItem(localStorage.length + 1, orderString) + document.querySelector(".badge").innerText = localStorage.length; +} + +document.querySelector(".badge").innerText = localStorage.length; +var buttons = document.querySelectorAll(".orderbutton"); + + +for (var i = 0; i < buttons.length; i++) { + console.log(buttons[i]); + buttons[i].addEventListener("click", orderButtonClicked); +} + + +// When the user scrolls the page, execute myFunction +window.onscroll = function() {myFunction()}; + +// Get the header +var header = document.getElementById("sticky-header"); + +// Get the offset position of the navbar +var sticky = header.offsetTop; + +// Add the sticky class to the header when you reach its scroll position. Remove "sticky" when you leave the scroll position +function myFunction() { + if (window.pageYOffset > sticky) { + header.classList.add("sticky"); + } else { + header.classList.remove("sticky"); + } +} + + diff --git a/client/src/shoppingbasket.js b/client/src/shoppingbasket.js index e69de29..c23c02c 100644 --- a/client/src/shoppingbasket.js +++ b/client/src/shoppingbasket.js @@ -0,0 +1,70 @@ +document.querySelector(".badge").innerText = localStorage.length; + +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); + 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"); + + var clone = template.content.cloneNode(true); + // console.log(clone); + var lines = clone.querySelectorAll("div"); + + for (var i = 0; i < lines.length; i++) { + var text = lines[i].textContent; + + if (text === "Parkname") { + console.log(this.name); + lines[i].textContent = this.name; + } + + if (text.toLowerCase().includes("adults")) { + lines[i].textContent = text + " " + this.adults; + } + + if (text.toLowerCase().includes("kids")) { + lines[i].textContent = text + " " + this.children; + } + } + + main.appendChild(clone); + } +} + + +function displayOrders() { + var orders = getOrderArray(); + for (let i = 0; i < orders.length; i++) { + orderObj = new Order(orders[i]); + orderObj.addToMain(); + } + +} + +displayOrders(); + +function finalizePayment(event) { + console.log("finalizing payments"); + localStorage.clear(); + window.location.replace("orderplaced.html"); +} + +document.querySelector("#finalizepaymentbutton").addEventListener("click", finalizePayment); |
