| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- let addIngredientObj = {
- display: function(){
- controller.clearScreen();
- controller.addIngredientStrand.style.display = "flex";
- this.displayAdd();
- },
-
- //Fixerup
- //Display the modal to allow for adding a new ingredient
- displayAdd: function(){
- document.querySelector("#existingIngredient").style.display = "block";
- document.querySelector("#quantityInput").style.display = "none";
- document.querySelector("#newIngredient").style.display = "none";
- document.querySelector("#createNew").onclick = ()=>{this.displayNew();};
- let modal = document.querySelector(".add-ingredient");
- let removeModal = (modal)=>{modal.style.visibility = "hidden";}
- modal.onclick = ()=>{removeModal(modal);};
- modal.style.visibility = "visible";
- axios.get("/ingredients")
- .then((ingredients)=>{
- let tbody = document.querySelector("#existingIngredient table tbody");
- while(tbody.children.length > 0){
- tbody.removeChild(tbody.firstChild);
- }
- for(let ingredient of ingredients.data){
- let row = document.createElement("tr");
- tbody.appendChild(row);
- let name = document.createElement("td");
- name.innerText = ingredient.name;
- row.appendChild(name);
- let category = document.createElement("td");
- category.innerText = ingredient.category;
- row.appendChild(category);
- let unit = document.createElement("td");
- unit.innerText = ingredient.unit;
- row.appendChild(unit);
- let addButton = document.createElement("button");
- addButton.innerText = "Add";
- addButton.onclick = ()=>{this.configureAddIngredient(ingredient);};
- row.appendChild(addButton);
- }
- })
- .catch((err)=>{
- banner.createError("Failed to retrieve ingredients list");
- });
- },
- configureAddIngredient: function(ingredient){
- document.querySelector("#existingIngredient").style.display = "none";
- document.querySelector("#quantityInput").style.display = "block";
- document.querySelector("#newIngredient").style.display = "none";
-
- document.querySelector("#quantityInputTitle").innerText = `${ingredient.name} (${ingredient.unit})`;
- let button = document.querySelector("#addIngredient");
- let input = document.querySelector("#quantityInput input");
- button.onclick = ()=>{this.addIngredient({ingredient: ingredient, quantity: input.value});};
- },
- createIngredient: function(){
- let newItem = {
- ingredient: {
- name: document.querySelector("#newName").value,
- category: document.querySelector("#newCategory").value,
- unit: document.querySelector("#newUnit").value
- },
- quantity: document.querySelector("#newQuantity").value
- }
- this.addIngredient(newItem);
- },
- //Update new ingredient on both the page and the database
- //Close the modal
- addIngredient: function(item){
- if(validator.ingredient.all(item.ingredient, item.quantity)){
- merchant.inventory.push(item);
- if(item.ingredient._id){
- axios.post("/merchant/ingredients/create", item)
- .then((newMerchant)=>{
- this.filter();
- banner.createNotification("The new ingredient has been successfully added to your inventory");
- })
- .catch((err)=>{
- banner.createError("There was an error and the ingredient could not be added to your inventory");
- console.log(err);
- });
- }else{
- axios.post("/ingredients/createone", item)
- .then((newMerchant)=>{
- this.filter();
- banner.createNotification("The new ingredient has been successfully added to your inventory");
- })
- .catch((err)=>{
- console.log(err);
- banner.createError("There was an error and the ingredient could not be added to your inventory");
- });
- }
- }
- let modal = document.querySelector(".add-ingredient");
- modal.style.visibility = "hidden";
- }
- }
|