summaryrefslogtreecommitdiff
path: root/client/src/shoppingbasket.js
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();