summaryrefslogtreecommitdiff
path: root/client/src/shoppingbasket.js
blob: 7355a99168f9d7a3e0c3dbe00c7f0ac3a22760b6 (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
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();
    const orderFunctionality = {
        cancel: cancelOrder,
    };

    var orders = getOrderArray();
    if (orders === null) 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);
    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();
    orders.splice(i, 1);
    localStorage.setItem("shoppingBasketArray", JSON.stringify(orders));

    var main = document.querySelector("main");
    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();