Procházet zdrojové kódy

Upload conversion rates for ingredients to other unit types.
Conversion rate now fully stored.

Lee Morgan před 5 roky
rodič
revize
b52f11f448

+ 6 - 0
controllers/ingredientData.js

@@ -17,6 +17,11 @@ module.exports = {
         },
         quantity: quantity of ingredient for current merchant,
         defaultUnit: default unit of measurement to display
+        convert: {
+            toMass: Number
+            toVolume: Number
+            toLength: Number
+        }
     }
     Returns:
         Same as above, with the _id
@@ -28,6 +33,7 @@ module.exports = {
         }
 
         newIngredient = new Ingredient(newIngredient.ingredient);
+        newIngredient.convert = req.body.convert;
         newIngredient.ingredients = [];
         
         newIngredient.save()

+ 3 - 3
models/ingredient.js

@@ -31,9 +31,9 @@ const IngredientSchema = new mongoose.Schema({
         required: false
     },
     convert: {
-        mass: Number,
-        volume: Number,
-        length: Number
+        toMass: Number,
+        toVolume: Number,
+        toLength: Number
     },
     ingredients: [{
         ingredient: {

+ 23 - 6
views/dashboardPage/js/sidebars/newIngredient.js

@@ -54,6 +54,16 @@ let newIngredient = {
 
         let unit = unitSelector.value;
 
+        let massConvertLeft = document.getElementById("massConvertLeft").value;
+        let massConvertRight = document.getElementById("massConvertRight").value;
+        let massConvertUnit = document.getElementById("massConvertUnitRight").value;
+        let volumeConvertLeft = document.getElementById("volumeConvertLeft").value;
+        let volumeConvertRight = document.getElementById("volumeConvertRight").value;
+        let volumeConvertUnit = document.getElementById("volumeConvertUnitRight").value;
+        let lengthConvertLeft = document.getElementById("lengthConvertLeft").value;
+        let lengthConvertRight = document.getElementById("lengthConvertRight").value;
+        let lengthConvertUnit = document.getElementById("lengthConvertUnitRight").value;
+
         let newIngredient = {
             ingredient: {
                 name: document.getElementById("newIngName").value,
@@ -61,14 +71,21 @@ let newIngredient = {
                 unitType: options[unitSelector.selectedIndex].getAttribute("type")
             },
             quantity: controller.baseUnit(quantityValue, unit),
-            defaultUnit: unit
+            defaultUnit: unit,
+            convert: {
+                toMass: controller.baseUnit(massConvertRight, massConvertUnit) / controller.baseUnit(massConvertLeft, unit),
+                toVolume: controller.baseUnit(volumeConvertRight, volumeConvertUnit) / controller.baseUnit(volumeConvertLeft, unit),
+                toLength: controller.baseUnit(lengthConvertRight, lengthConvertUnit) / controller.baseUnit(lengthConvertLeft, unit)
+            }
         }
 
-        switch(newIngredient.ingredient.unitType){
-            case "mass": newIngredient.ingredient.toMass = 1; break;
-            case "volume": newIngredient.ingredient.toVolume = 1; break;
-            case "length": newIngredient.ingredient.toLength = 1; break;
-        }
+        if(["g", "kg", "oz", "lb"].includes(unit)) newIngredient.convert.toMass = 1;
+        if(["ml", "l", "tsp", "tbsp", "ozfl", "cup", "pt", "qt", "gal"].includes(unit)) newIngredient.convert.toVolume = 1;
+        if(["mm", "cm", "m", "in", "ft"].includes(unit))newIngredient.convert.toLength = 1;
+
+        if(isNaN(newIngredient.convert.toMass)) newIngredient.convert.toMass = undefined;
+        if(isNaN(newIngredient.convert.toVolume)) newIngredient.convert.toVolume = undefined;
+        if(isNaN(newIngredient.convert.toLength)) newIngredient.convert.toLength = undefined;
 
         //Change the ingredient if it is a special unit type (ie "bottle")
         if(unit === "bottle"){