blob: 56e717a19336a11294df9654db3c3d2af0fd6c4d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
import { Order } from "./templateImplementations.js"
import { displayNumberOfItemsInShoppingBasketWithBadge, findParentWithTag, childKillerUsingTags } from "./utils.js";
function getOrderArray() {
var orders = JSON.parse(localStorage.getItem("shoppingBasketArray"));
return orders;
}
function displayOrders() {
displayNumberOfItemsInShoppingBasketWithBadge();
console.log("displaying orders in shopppingbasket");
const orderFunctionality = {
cancel: cancelOrder,
};
var orders = getOrderArray();
if (orders === null || orders.length === 0) {
var button = document.querySelector("#finalizepaymentbutton");
var front = button.querySelector(".front");
front.classList.add("disabled");
button.removeEventListener("click", finalizePayment);
console.log(button);
console.log(front);
return;
}
var main = document.querySelector("main");
for (let i = 0; i < orders.length; i++) {
var orderObj = new Order(orders[i], document.querySelector("#ticket"));
orderObj.addToNode(main, orderFunctionality);
}
}
function cancelOrder(event) {
//console.log(event.target);
console.log("cancel button clicked");
const article = findParentWithTag.bind(event.target)("article");
var previous = article.previousSibling;
var i = 0;
while (previous) {
if (previous.tagName === "ARTICLE") {
i = i+1;
}
previous = previous.previousSibling;
}
var orders = getOrderArray();
console.log("---> canceling order ");
console.log(orders[i]);
console.log("---> removing it from shoppingbasket")
orders.splice(i, 1);
localStorage.setItem("shoppingBasketArray", JSON.stringify(orders));
var main = document.querySelector("main");
console.log("---> refreshing displayed orders")
childKillerUsingTags(main)(main.firstChild)("article");
displayOrders();
}
function finalizePayment(event) {
console.log("finalizing payments");
localStorage.clear();
window.location.replace("orderplaced.html");
}
document.querySelector("#finalizepaymentbutton").addEventListener("click", finalizePayment);
displayOrders();
|