orders.js 2.6 KB

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