diff --git a/internal/server/static/order.js b/internal/server/static/order.js index 7f8100f..818c635 100644 --- a/internal/server/static/order.js +++ b/internal/server/static/order.js @@ -1,33 +1,30 @@ -function addCake(id, name, amount) { - let template = document.getElementById("basket_element_template"); - let tr = template.content.cloneNode(true); - console.log(tr); - const cake = document.getElementById("cake[" + id + "]"); +function addCake(id, name, price, amount) { + const cake = document.querySelector(`[name="cake[${id}]"]`); if (cake != null) { - const value = Number(cake.getAttribute("value")); - cake.setAttribute("value", value + 1); + cake.value = Number(cake.value) + 1; return; } - const label = document.createElement("label"); - label.innerText = name; - const input = document.createElement("input"); - input.setAttribute("id", "cake[" + id + "]"); - input.setAttribute("type", "number"); - input.setAttribute("min", "0"); - input.setAttribute("name", "cake[" + id + "]"); - input.setAttribute("value", amount); - const button = document.createElement("button"); - button.setAttribute("type", "button"); - button.setAttribute("onClick", "removeCake(" + id + ")"); - button.innerText = "usuń"; - const li = document.createElement("li"); - li.appendChild(label); - li.appendChild(input); - li.appendChild(button); - li.setAttribute("id", "li[" + id + "]"); - const ul = document.getElementById("basket"); - ul.appendChild(li); + 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 = () => { + tr.querySelector(".cake-total").innerText = `${price * input.value}PLN`; + }; + input.value = amount; + input.name = `cake[${id}]`; + document.querySelector("#basket_table").appendChild(tr); } -function removeCake(id) { - document.getElementById("li[" + id + "]").remove(); +function toggleDetails(row) { + const detailsRow = row.nextElementSibling; + if (detailsRow.classList.contains("hidden")) { + detailsRow.classList.remove("hidden"); + return; + } + detailsRow.classList.add("hidden"); } diff --git a/internal/server/templates/layout/layout.gohtml b/internal/server/templates/layout/layout.gohtml index 9912d89..3acca5b 100644 --- a/internal/server/templates/layout/layout.gohtml +++ b/internal/server/templates/layout/layout.gohtml @@ -6,7 +6,7 @@ {{template "title" .}} - + diff --git a/internal/server/templates/order.gohtml b/internal/server/templates/order.gohtml index ec0d54a..155010a 100644 --- a/internal/server/templates/order.gohtml +++ b/internal/server/templates/order.gohtml @@ -62,10 +62,10 @@ {{range .}} - + @@ -79,14 +79,16 @@ {{end}} diff --git a/internal/server/templates/orders.gohtml b/internal/server/templates/orders.gohtml index b19ee59..a1affcb 100644 --- a/internal/server/templates/orders.gohtml +++ b/internal/server/templates/orders.gohtml @@ -28,16 +28,6 @@ Zamówienia background-color: #e6f2ff; } - {{end}} {{define "orders-table"}}
{{.Name}}
{{.Category}}
{{.Name}}
{{.Category}} (#{{.ID}})
{{.Price}}PLN -