Browse Source

Currently working on converting units in modal.js.

Lee Morgan 5 years ago
parent
commit
f9077e37f7

+ 2 - 1
models/recipe.js

@@ -46,7 +46,8 @@ const RecipeSchema = new mongoose.Schema({
             min: [0, "QUANTITY OF INGREDIENTS CANNOT BE A NEGATIVE NUMBER"],
             required: [true, "MUST PROVED A QUANTITY FOR ALL INGREDIENTS"]
         },
-        unit: String
+        unit: String,
+        baseUnitMultiplier: Number
     }]
 });
 

+ 0 - 1
views/dashboardPage/css/modal.css

@@ -196,7 +196,6 @@
         .convertUnitOption{
             display: flex;
             justify-content: space-between;
-            /* background: rgb(0, 27, 45); */
             margin: 10px;
             height: 35px;
         }

+ 2 - 0
views/dashboardPage/ejs/modal.ejs

@@ -105,6 +105,8 @@
 
                 <div id="unitConversions"></div>
 
+                <button id="submitAlternateUnits" class="button">SUBMIT</button>
+
                 <template id="convertUnitOption">
                     <div class="convertUnitOption">
                         <div>

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

@@ -375,7 +375,12 @@ class Merchant{
         recipe.clearIngredients();
         for(let i = 0; i < updates.ingredients.length; i++){
             newIngredient = this.getIngredient(updates.ingredients[i].ingredient);
-            recipe.addIngredient(newIngredient.ingredient, updates.ingredients[i].quantity);
+            recipe.addIngredient(
+                newIngredient.ingredient, 
+                updates.ingredients[i].quantity,
+                updates.ingredients[i].unit,
+                updates.ingredients[i].baseUnitMultiplier
+            );
         }
 
         recipe.calculateIngredientTotals();

+ 8 - 4
views/dashboardPage/js/classes/Recipe.js

@@ -2,9 +2,11 @@ const recipeBook = require("../strands/recipeBook.js");
 const analytics = require("../strands/analytics.js");
 
 class RecipeIngredient{
-    constructor(ingredient, quantity){
+    constructor(ingredient, quantity, unit, baseUnitMultiplier){
         this._ingredient = ingredient;
         this._quantity = quantity;
+        this._unit = unit;
+        this._baseUnitMultiplier = baseUnitMultiplier;
     }
 
     get ingredient(){
@@ -70,7 +72,9 @@ class Recipe{
             const ingredient = parent.getIngredient(ingredients[i].ingredient);
             const recipeIngredient = new RecipeIngredient(
                 ingredient.ingredient,
-                ingredients[i].quantity
+                ingredients[i].quantity,
+                ingredients[i].unit,
+                ingredients[i].baseUnitMultiplier
             );
 
             this._ingredients.push(recipeIngredient);
@@ -133,8 +137,8 @@ class Recipe{
         return (this._ingredientTotals[id] === undefined) ? 0 : this._ingredientTotals[id];
     }
 
-    addIngredient(ingredient, quantity){
-        let recipeIngredient = new RecipeIngredient(ingredient, quantity);
+    addIngredient(ingredient, quantity, unit, baseUnitMultiplier){
+        let recipeIngredient = new RecipeIngredient(ingredient, quantity, unit, baseUnitMultiplier);
         this._ingredients.push(recipeIngredient);
 
         recipeBook.isPopulated = false;

+ 21 - 5
views/dashboardPage/js/modal.js

@@ -296,14 +296,30 @@ let modal = {
             container.removeChild(container.firstChild);
         }
 
-        for(let i = 0; i < data.length; i++){
+        for(let i = 0; i < data.mismatchUnits.length; i++){
             let conversion = template.cloneNode(true);
-            conversion.children[0].children[0].value = 0;
-            conversion.children[0].children[1].innerText = data[i].newIngredient.unit.toUpperCase();
-            conversion.children[2].children[0].value = 1;
-            conversion.children[2].children[1].innerText = data[i].ingredient.unit.toUpperCase();
+            conversion.children[0].children[0].value = data.mismatchUnits[i].newIngredient.quantity;
+            conversion.children[0].children[1].innerText = data.mismatchUnits[i].newIngredient.unit.toUpperCase();
+            conversion.children[2].children[1].innerText = data.mismatchUnits[i].ingredient.unit.toUpperCase();
             container.appendChild(conversion);
         }
+
+        //Submit conversions
+        document.getElementById("submitAlternateUnits").onclick = ()=>{
+            for(let i = 0; i < container.children.length; i++){
+                let inputLeft = container.children[i].children[0].children[0].value;
+                let inputRight = container.children[i].children[2].children[0].value;
+                if(inputLeft === "" || inputRight === "" || inputLeft === 0 || inputRight === 0){
+                    controller.createBanner("ALL FIELDS ARE REQUIRED");
+                    return;
+                }
+
+                console.log(data.mismatchUnits[i].ingredient.unit);
+                let base = controller.baseUnit(inputRight, data.mismatchUnits[i].ingredient.unit);
+                console.log(base);
+                console.log(inputLeft / base);
+            }
+        }
     }
 };
 

+ 1 - 1
views/dashboardPage/js/sidebars/newRecipe.js

@@ -80,7 +80,7 @@ let newRecipe = {
             this.submit(data);
             return;
         }
-        controller.openModal("alternateUnitConversion", mismatchUnits);
+        controller.openModal("alternateUnitConversion", {mismatchUnits: mismatchUnits, recipe: data});
     },
 
     submit: function(data){