From 1564a949781c1dcf80bd2b5193612135a073d276 Mon Sep 17 00:00:00 2001
From: hjank <jank@uni-potsdam.de>
Date: Sun, 6 Dec 2015 11:39:13 +0100
Subject: [PATCH] ! in checkInformation(): extended "else" scope from "if
 selectedInfoID == null" till the end of all checking # missing content error
 is now handled in checkInformation() which from now on returns only the
 selectedInfo

---
 .../controllers/contextInfoController.js      | 153 ++++++++++--------
 1 file changed, 82 insertions(+), 71 deletions(-)

diff --git a/js/authoring/controllers/contextInfoController.js b/js/authoring/controllers/contextInfoController.js
index 606de67..cde317b 100644
--- a/js/authoring/controllers/contextInfoController.js
+++ b/js/authoring/controllers/contextInfoController.js
@@ -24,93 +24,104 @@ function checkInformation() {
     } else {
         // create a copy of the selected context info's JSON structure
         selectedContextInfo = $.extend(new ContextInformation(), contextList.getItem(selectedInfoID.id));
-    }
 
-    /*    // only addable if context info doesn't exist already
-     for (var h=0; h<current_unit["contextInformations"].length; h++) {
-     if (selectedContextInfo["text"] == current_unit["contextInformations"][h]["name"]) {
-     alert(selectedContextInfo["text"] + " existiert bereits!");
 
-     // if already exist return with error code
-     return ["Error999", {}];
-     }
-     }*/
+        /*    // only addable if context info doesn't exist already
+         for (var h=0; h<current_unit["contextInformations"].length; h++) {
+         if (selectedContextInfo["text"] == current_unit["contextInformations"][h]["name"]) {
+         alert(selectedContextInfo["text"] + " existiert bereits!");
 
-    // check selection bar "Operator"
-    if ( selectedOperator["text"] == "\r" ) {
-        // if selection bar operator is empty, concatenate it in missing_content string
-        missing_content += " - Operator\n";
-    } else {
-        // update JSON structure
-        selectedContextInfo.setOperators(selectedContextInfo.getOperators()[selectedOperator.id]);
-    }
+         // if already exist return with error code
+         return ["Error999", {}];
+         }
+         }*/
 
-    // check and get context value
-    var contextValue;
-    switch(selectedContextInfo.getType()) {
-        case "FLOAT":
-        case "INTEGER":
-        case "STRING":
-            var inputField = $("#inputContextValue");
-            // if input field context value is empty, concatenate it in missing_content string
-            if ( inputField[0].value == "" ) {
-                missing_content += " - Wert\n";
-                inputField.parent().addClass("has-error");
-            } else {
-                inputField.parent().removeClass("has-error");
-                contextValue = inputField[0].value;
-            }
-            break;
-        case "ENUM":
-        case "BOOLEAN":
-            var selected = $("#selectPossibleValues").select2("data");
-            // if selection bar context value is empty, concatenate it in missing_content string
-            if ( selected["text"] == "\r" ) {
-                missing_content += " - Wert\n";
-            }
-            contextValue = selectedContextInfo.getEnums()[selected.id];
-            break;
-    }
-    // update JSON structure
-    selectedContextInfo.setInputValue(contextValue);
+        // check selection bar "Operator"
+        if ( selectedOperator == null ) {
+            // if selection bar operator is empty, concatenate it in missing_content string
+            missing_content += " - Operator\n";
+        } else {
+            // update JSON structure
+            selectedContextInfo.setChosenOperator(selectedContextInfo.getOperators()[selectedOperator.id]);
+        }
 
-    // check and get parameters (if existent)
-    var selectedInfoParameters = selectedContextInfo.getParameters();
-    for (var i in selectedInfoParameters) {
-        var parameter = selectedInfoParameters[i];
-        var parameterElement = $("#parameter"+i);
-        var parameterDiv = parameterElement.parent();
-        var paramValue;
-        switch (parameter.getType()) {
+        // check and get context value
+        var contextValue;
+        switch(selectedContextInfo.getType()) {
             case "FLOAT":
             case "INTEGER":
             case "STRING":
-                // if input field is empty, concatenate it in missing_content string
-                if ( parameterElement[0].value == "" ) {
-                    missing_content += " - " + translate_parameter(parameter.getID()) + "\n";
-                    parameterDiv.addClass("has-error");
-                }
-                else {
-                    parameterDiv.removeClass("has-error");
-                    paramValue = parameterElement[0].value;
+                var inputField = $("#inputContextValue");
+                // if input field context value is empty, concatenate it in missing_content string
+                if ( inputField[0].value == "" ) {
+                    missing_content += " - Wert\n";
+                    inputField.parent().addClass("has-error");
+                } else {
+                    inputField.parent().removeClass("has-error");
+                    contextValue = inputField[0].value;
                 }
                 break;
             case "ENUM":
             case "BOOLEAN":
-                var selected = parameterElement.select2("data");
-                // if selection bar parameter is empty, concatenate it in missing_content string
-                if (selected["text"] == "\r") {
-                    missing_content += " - " + translate_parameter(parameter.getID()) + "\n";
+                var selected = $("#selectPossibleValues").select2("data");
+                // if selection bar context value is empty, concatenate it in missing_content string
+                if ( selected["text"] == "\r" ) {
+                    missing_content += " - Wert\n";
                 }
-                else
-                    paramValue = parameter.getEnums()[selected.id];
+                contextValue = selectedContextInfo.getEnums()[selected.id];
                 break;
         }
         // update JSON structure
-        parameter.setInputValue(paramValue);
+        selectedContextInfo.setChosenValue(contextValue);
+
+        // check and get parameters (if existent)
+        var selectedInfoParameters = selectedContextInfo.getParameters();
+        for (var i in selectedInfoParameters) {
+            var parameter = selectedInfoParameters[i];
+            var parameterElement = $("#parameter"+i);
+            var parameterDiv = parameterElement.parent();
+            var paramValue;
+            switch (parameter.getType()) {
+                case "FLOAT":
+                case "INTEGER":
+                case "STRING":
+                    // if input field is empty, concatenate it in missing_content string
+                    if ( parameterElement[0].value == "" ) {
+                        missing_content += " - " + translate_parameter(parameter.getID()) + "\n";
+                        parameterDiv.addClass("has-error");
+                    }
+                    else {
+                        parameterDiv.removeClass("has-error");
+                        paramValue = parameterElement[0].value;
+                    }
+                    break;
+                case "ENUM":
+                case "BOOLEAN":
+                    var selected = parameterElement.select2("data");
+                    // if selection bar parameter is empty, concatenate it in missing_content string
+                    if (selected["text"] == "\r") {
+                        missing_content += " - " + translate_parameter(parameter.getID()) + "\n";
+                    }
+                    else
+                        paramValue = parameter.getEnums()[selected.id];
+                    break;
+            }
+            // update JSON structure
+            parameter.setChosenValue(paramValue);
+        }
     }
 
-    // create return array
-    return {"errorMessage" : missing_content,
-        "contextData" : selectedContextInfo};
+    // if content is missing do not accept adding of the context information
+    if (missing_content == "Error999") {
+        return false;
+    } else {
+        // if something needed is missing
+        if (!!missing_content) {
+            alert("[Fehler] Bitte setzen Sie Werte in den folgenden Feldern:\n" + missing_content);
+            return false;
+        } else {
+            // return selected context info object
+            return selectedContextInfo;
+        }
+    }
 }
-- 
GitLab