Skip to content
Snippets Groups Projects
Baecker.js 3.68 KiB
Newer Older
function loadData() {
    "use strict";
omaarfa's avatar
omaarfa committed
    var url = "./Kundenstatus.php";
    var request = new XMLHttpRequest();

    request.open("GET", url, true);

    request.onload = function () {

        if (request.readyState === 4 &&
            request.status >= 200 &&
            request.status < 300) {

            if (request.responseText != null) {

                var responseData = JSON.parse(request.responseText);
                console.log(responseData);
                process(responseData);
            } else {
                console.error ("Dokument ist leer");
            }
        } else {
            console.error("Statuscode: " + request.status);
        }
    };

    request.onerror = function () {
        "use strict";
        console.error("Netzwerkfehler");
    };

    //request.onreadystatechange = processData;

    request.send();
}


function process(data) {

    "use strict";

    const orderForm = document.getElementById("formBaecker");
    if (orderForm != null) {

        while (orderForm.lastElementChild) {
            orderForm.removeChild(orderForm.lastElementChild);
        }


        for (let [orderingID, order] of Object.entries(data)) {

            let pizzaObj = {
                pizzaList: []
            };


            let orderList = order["OrderList"]
            for (let [orderedArticleID, pizza] of Object.entries(orderList)) {

                let name = pizza["Name"];
                let price = parseFloat(pizza["Price"]);
                let status = parseInt(pizza["Status"]);

                if (status <= 2) {
                    let newPizza = {
                        orderedArticleID: orderedArticleID,
                        name: name,
                        price: price,
                        status: status
                    };
                    pizzaObj.pizzaList.push(newPizza);
                }
            }
            buildOrder(orderForm, orderingID, pizzaObj);
        }

    }
}


window.onload = function () {

    "use strict";
    loadData();
}

window.setInterval (loadData, 2000);



function buildOrder(parentNode, id, pizzaObj) {

    "use strict";
    let pizzaList = pizzaObj.pizzaList;

    for (let pizza of pizzaList) {

        let pizzaName = pizza.name;
        let orderedArticleID = pizza.orderedArticleID;
        let pizzaStatus = pizza.status;

        let orderMainNode = document.createElement("fieldset");
        orderMainNode.id = id;
        orderMainNode.className = "orderFieldset";

        let orderLegend = document.createElement("legend");
        orderLegend.id = id + ".legend";
        orderLegend.innerText = "Bestellung " + id + " Pizza " + pizzaName;
        orderLegend.className = "orderLegend";

        orderMainNode.append(orderLegend);

        buildInputs(orderMainNode, orderedArticleID, pizzaStatus);

        parentNode.append(orderMainNode);
    }
}


function buildInputs(orderMainNode, orderedArticleID, status) {
    "use strict";
    let statusArray = ["Bestellt", "Im Ofen", "Fertig"];
    for (let value = 0; value < statusArray.length; value++) {
        let inputLabel = document.createElement("label");
        let inputRadio = document.createElement("input");

        inputLabel.innerText = statusArray[value];
        inputLabel.className = "pizzaRadioLabel";
        inputRadio.type = "radio";
        inputRadio.className = "pizzaRadio";
        inputRadio.name = orderedArticleID;
        inputRadio.value = value.toString();

        inputRadio.onclick = function () {
            document.forms["formBaecker"].submit();
        }

        if (value === status) {
            inputRadio.checked = true;
        }

        inputLabel.prepend(inputRadio);
        orderMainNode.append(inputLabel);
    }
}