orders.js 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. let orders = {
  2. display: function(){
  3. document.getElementById("orderFilterBtn").onclick = ()=>{controller.openSidebar("orderFilter")};
  4. document.getElementById("newOrderBtn").onclick = ()=>{controller.openSidebar("newOrder")};
  5. let orderList = document.getElementById("orderList");
  6. let template = document.getElementById("order").content.children[0];
  7. while(orderList.children.length > 0){
  8. orderList.removeChild(orderList.firstChild);
  9. }
  10. for(let i = 0; i < merchant.orders.length; i++){
  11. let orderDiv = template.cloneNode(true);
  12. orderDiv.order = merchant.orders[i];
  13. orderDiv.children[0].innerText = merchant.orders[i].name;
  14. orderDiv.children[1].innerText = `${merchant.orders[i].ingredients.length} ingredients`;
  15. orderDiv.children[2].innerText = merchant.orders[i].date.toLocaleDateString("en-US");
  16. orderDiv.children[3].innerText = `$${merchant.orders[i].getTotalCost().toFixed(2)}`;
  17. orderDiv.onclick = ()=>{
  18. controller.openSidebar("orderDetails", merchant.orders[i]);
  19. orderDiv.classList.add("active");
  20. }
  21. orderList.appendChild(orderDiv);
  22. }
  23. },
  24. getOrders: function(Order){
  25. let loader = document.getElementById("loaderContainer");
  26. loader.style.display = "flex";
  27. return fetch("/order", {
  28. method: "get",
  29. headers: {
  30. "Content-Type": "application/json;charset=utf-8"
  31. }
  32. })
  33. .then(response => response.json())
  34. .then((response)=>{
  35. if(typeof(response) === "string"){
  36. controller.createBanner(response, "error");
  37. }else{
  38. let orders = [];
  39. for(let i = 0; i < response.length; i++){
  40. orders.push(new Order(
  41. response[i]._id,
  42. response[i].name,
  43. response[i].date,
  44. response[i].taxes,
  45. response[i].fees,
  46. response[i].ingredients,
  47. merchant
  48. ));
  49. }
  50. if(merchant.orders.length === 0){
  51. merchant.setOrders(orders);
  52. }
  53. return orders;
  54. }
  55. })
  56. .catch((err)=>{
  57. controller.createBanner("SOMETHING WENT WRONG. PLEASE REFRESH THE PAGE", "error");
  58. })
  59. .finally(()=>{
  60. loader.style.display = "none";
  61. });
  62. }
  63. }
  64. module.exports = orders;