ingredients.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. window.ingredientsStrandObj = {
  2. isPopulated: false,
  3. display: function(){
  4. if(!this.isPopulated){
  5. let categories = this.categorizeIngredients();
  6. let ingredientsStrand = document.querySelector("#ingredientsStrand");
  7. for(let category of categories){
  8. let categoryDiv = document.createElement("div");
  9. categoryDiv.classList = "categoryDiv"
  10. ingredientsStrand.appendChild(categoryDiv);
  11. let headerDiv = document.createElement("div");
  12. categoryDiv.appendChild(headerDiv);
  13. let headerTitle = document.createElement("p");
  14. headerTitle.innerText = category.name;
  15. headerDiv.appendChild(headerTitle);
  16. let headerButton = document.createElement("button");
  17. headerButton.innerText = "^";
  18. headerDiv.appendChild(headerButton);
  19. for(let ingredient of category.ingredients){
  20. let ingredientDiv = document.createElement("div");
  21. ingredientDiv.classList = "ingredient";
  22. categoryDiv.appendChild(ingredientDiv);
  23. let ingredientName = document.createElement("p");
  24. ingredientName.innerText = ingredient.name;
  25. ingredientDiv.appendChild(ingredientName);
  26. let spacer = document.createElement("p");
  27. spacer.innerText = "-".repeat(25);
  28. ingredientDiv.appendChild(spacer);
  29. let ingredientData = document.createElement("p");
  30. ingredientData.innerText = `${ingredient.quantity} ${ingredient.unit}`;
  31. ingredientDiv.appendChild(ingredientData);
  32. }
  33. }
  34. this.isPopulated = true;
  35. }
  36. },
  37. categorizeIngredients: function(){
  38. let ingredientsByCategory = [];
  39. for(let item of merchant.inventory){
  40. let categoryExists = false;
  41. for(let category of ingredientsByCategory){
  42. if(item.ingredient.category === category.name){
  43. category.ingredients.push({
  44. id: item.ingredient._id,
  45. name: item.ingredient.name,
  46. quantity: item.quantity,
  47. unit: item.ingredient.unit
  48. });
  49. categoryExists = true;
  50. break;
  51. }
  52. }
  53. if(!categoryExists){
  54. ingredientsByCategory.push({
  55. name: item.ingredient.category,
  56. ingredients: [{
  57. id: item.ingredient._id,
  58. name: item.ingredient.name,
  59. quantity: item.quantity,
  60. unit: item.ingredient.unit
  61. }]
  62. });
  63. }
  64. }
  65. console.log(ingredientsByCategory);
  66. return ingredientsByCategory;
  67. }
  68. }