Selaa lähdekoodia

Add saving of bottle ingredients

Lee Morgan 5 vuotta sitten
vanhempi
sitoutus
6509b4ba66

+ 4 - 0
controllers/ingredientData.js

@@ -45,6 +45,10 @@ module.exports = {
         if(validation !== true){
             return res.json(validation);
         }
+        validation = Validator.quantity(req.body.ingredient.bottleSize);
+        if(validation !== true){
+            return res.json(validation);
+        }
 
         let ingredientPromise = Ingredient.create((req.body.ingredient));
         let merchantPromise = Merchant.findOne({_id: req.session.user});

+ 2 - 1
models/ingredient.js

@@ -13,7 +13,8 @@ const IngredientSchema = new mongoose.Schema({
     unitType: {
         type: String,
         required: true
-    }
+    },
+    bottleSize: Number
 });
 
 module.exports = mongoose.model("Ingredient", IngredientSchema);

+ 13 - 1
views/dashboardPage/bundle.js

@@ -61,7 +61,7 @@ class Merchant{
             mass: ["g", "kg", "oz", "lb"],
             volume: ["ml", "l", "tsp", "tbsp", "ozfl", "cup", "pt", "qt", "gal"],
             length: ["mm", "cm", "m", "in", "ft"],
-            other: ["each"]
+            other: ["each", "bottle"]
         }
         
         for(let i = 0; i < oldMerchant.inventory.length; i++){
@@ -1828,9 +1828,17 @@ let newIngredient = {
         document.getElementById("newIngCategory").value = "";
         document.getElementById("newIngQuantity").value = 0;
 
+        document.getElementById("unitSelector").onchange = ()=>{this.unitChange()};
         document.getElementById("submitNewIng").onclick = ()=>{this.submit(Ingredient)};
     },
 
+    unitChange: function(){
+        const select = document.getElementById("unitSelector");
+        if(select.value === "bottle"){
+            document.getElementById("bottleSizeLabel").style.display = "block";
+        }
+    },
+
     submit: function(Ingredient){
         let unitSelector = document.getElementById("unitSelector");
         let options = document.querySelectorAll("#unitSelector option");
@@ -1847,6 +1855,10 @@ let newIngredient = {
             defaultUnit: unit
         }
 
+        if(unitSelector.value = "bottle"){
+            newIngredient.ingredient.bottleSize = document.getElementById("bottleSize").value;
+        }
+
         let loader = document.getElementById("loaderContainer");
         loader.style.display = "flex";
 

+ 1 - 1
views/dashboardPage/js/Merchant.js

@@ -14,7 +14,7 @@ class Merchant{
             mass: ["g", "kg", "oz", "lb"],
             volume: ["ml", "l", "tsp", "tbsp", "ozfl", "cup", "pt", "qt", "gal"],
             length: ["mm", "cm", "m", "in", "ft"],
-            other: ["each"]
+            other: ["each", "bottle"]
         }
         
         for(let i = 0; i < oldMerchant.inventory.length; i++){

+ 12 - 0
views/dashboardPage/js/newIngredient.js

@@ -4,9 +4,17 @@ let newIngredient = {
         document.getElementById("newIngCategory").value = "";
         document.getElementById("newIngQuantity").value = 0;
 
+        document.getElementById("unitSelector").onchange = ()=>{this.unitChange()};
         document.getElementById("submitNewIng").onclick = ()=>{this.submit(Ingredient)};
     },
 
+    unitChange: function(){
+        const select = document.getElementById("unitSelector");
+        if(select.value === "bottle"){
+            document.getElementById("bottleSizeLabel").style.display = "block";
+        }
+    },
+
     submit: function(Ingredient){
         let unitSelector = document.getElementById("unitSelector");
         let options = document.querySelectorAll("#unitSelector option");
@@ -23,6 +31,10 @@ let newIngredient = {
             defaultUnit: unit
         }
 
+        if(unitSelector.value = "bottle"){
+            newIngredient.ingredient.bottleSize = document.getElementById("bottleSize").value;
+        }
+
         let loader = document.getElementById("loaderContainer");
         loader.style.display = "flex";
 

+ 6 - 1
views/dashboardPage/sidebars/newIngredient.ejs

@@ -22,6 +22,10 @@
         <input id="newIngQuantity" type="number" min="0" step="0.01">
     </label>
 
+    <label id="bottleSizeLabel" style="display: none">BOTTLE SIZE(LITERS):
+        <input id="bottleSize" type="number" min="0" step="0.01">
+    </label>
+
     <label>UNIT:
         <select id="unitSelector">
             <optgroup label="MASS/WEIGHT">
@@ -52,7 +56,8 @@
             </optgroup>
 
             <optgroup label="OTHER">
-                <option type="other" value="each">each</option>
+                <option type="other" value="each">EACH</option>
+                <option type="other" value="bottle">BOTTLE</option>
             </optgroup>
         </select>
     </label>