55 lines
1.8 KiB
JavaScript
55 lines
1.8 KiB
JavaScript
function addCake(id, name, price, amount) {
|
|
const cake = document.querySelector(`[name="cake[${id}]"]`);
|
|
if (cake != null) {
|
|
cake.value = Number(cake.value) + 1;
|
|
let tr = cake.parentElement.parentElement.parentElement;
|
|
//console.log(tr);
|
|
tr.querySelector(".cake-total").innerText =
|
|
`${price * Number(cake.value)}PLN`;
|
|
updateTotalPrice();
|
|
return;
|
|
}
|
|
let template = document.getElementById("basket_element_template");
|
|
let tr = template.content.querySelector("tr").cloneNode(true);
|
|
tr.querySelector(".cake-name").innerText = name;
|
|
tr.querySelector(".cake-price").innerText = `${price}PLN`;
|
|
tr.querySelector(".cake-total").innerText = `${price * amount}PLN`;
|
|
tr.querySelector("button").onclick = () => {
|
|
tr.remove();
|
|
};
|
|
let input = tr.querySelector("input");
|
|
input.onchange = () => {
|
|
if (input.value == 0) {
|
|
tr.remove();
|
|
}
|
|
tr.querySelector(".cake-total").innerText = `${price * input.value}PLN`;
|
|
updateTotalPrice();
|
|
};
|
|
input.value = amount;
|
|
input.name = `cake[${id}]`;
|
|
document.querySelector("#basket_table").appendChild(tr);
|
|
updateTotalPrice();
|
|
}
|
|
function updateTotalPrice() {
|
|
document.querySelector("#total-price").innerText = `${totalPrice()}PLN`;
|
|
}
|
|
function totalPrice() {
|
|
let out = 0;
|
|
const cakes = document.querySelectorAll("#basket_table>tr");
|
|
cakes.forEach((e) => {
|
|
let priceString = e.querySelector(".cake-price").innerText;
|
|
let price = Number(priceString.substring(0, priceString.length - 3));
|
|
let amount = Number(e.querySelector("input").value);
|
|
out += price * amount;
|
|
// console.log(out);
|
|
});
|
|
return out;
|
|
}
|
|
function toggleDetails(row) {
|
|
const detailsRow = row.nextElementSibling;
|
|
if (detailsRow.classList.contains("hidden")) {
|
|
detailsRow.classList.remove("hidden");
|
|
return;
|
|
}
|
|
detailsRow.classList.add("hidden");
|
|
}
|