orderDetails.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. let orderDetails = {
  2. display: function(order){
  3. document.getElementById("removeOrderBtn").onclick = ()=>{this.remove(order)};
  4. document.getElementById("orderDetailName").innerText = order.name;
  5. document.getElementById("orderDetailDate").innerText = order.date.toLocaleDateString("en-US");
  6. document.getElementById("orderDetailTime").innerText = order.date.toLocaleTimeString("en-US");
  7. let ingredientList = document.getElementById("orderIngredients");
  8. while(ingredientList.children.length > 0){
  9. ingredientList.removeChild(ingredientList.firstChild);
  10. }
  11. let template = document.getElementById("orderIngredient").content.children[0];
  12. let grandTotal = 0;
  13. for(let i = 0; i < order.ingredients.length; i++){
  14. let ingredientDiv = template.cloneNode(true);
  15. let price = order.ingredients[i].price / 100;
  16. grandTotal += price;
  17. let ingredient = order.ingredients[i].ingredient;
  18. ingredientDiv.children[0].innerText = order.ingredients[i].ingredient.name;
  19. ingredientDiv.children[1].innerText = `${ingredient.convert(order.ingredients[i].quantity).toFixed(2)} ${ingredient.unit.toUpperCase()}`;
  20. ingredientDiv.children[2].innerText = `$${price.toFixed(2)}`;
  21. ingredientList.appendChild(ingredientDiv);
  22. }
  23. document.querySelector("#orderTotalPrice p").innerText = `$${grandTotal.toFixed(2)}`;
  24. },
  25. remove: function(order){
  26. let loader = document.getElementById("loaderContainer");
  27. loader.style.display = "flex";
  28. fetch(`/order/${order.id}`, {
  29. method: "DELETE",
  30. headers: {
  31. "Content-Type": "application/json;charset=utf-8"
  32. }
  33. })
  34. .then((response) => response.json())
  35. .then((response)=>{
  36. if(typeof(response) === "string"){
  37. banner.createError(response);
  38. }else{
  39. merchant.editOrders([order], true);
  40. banner.createNotification("ORDER REMOVED");
  41. }
  42. })
  43. .catch((err)=>{
  44. banner.createError("SOMETHING WENT WRONG. PLEASE REFRESH THE PAGE");
  45. })
  46. .finally(()=>{
  47. loader.style.display = "none";
  48. });
  49. }
  50. }
  51. module.exports = orderDetails;