[VID-12] Delivery of remaining features for v1.1
[vid.git] / vid-app-common / src / main / webapp / app / vid / scripts / controller / creationDialogController.js
index 6a1c14c..eb17091 100755 (executable)
@@ -20,8 +20,8 @@
 \r
 "use strict";\r
 \r
-var creationDialogController = function( COMPONENT, FIELD, $scope, $http, $timeout, $log,\r
-               CreationService, UtilityService, DataService) {\r
+var creationDialogController = function( COMPONENT, FIELD, PARAMETER, $scope, $http, $timeout, $log,\r
+               CreationService, UtilityService, DataService,VIDCONFIGURATION) {\r
 \r
        $scope.isDialogVisible = false;\r
        $scope.summaryControl = {};\r
@@ -73,8 +73,29 @@ var creationDialogController = function( COMPONENT, FIELD, $scope, $http, $timeo
                        return false;\r
                }\r
                return true;\r
-       }\r
-\r
+       };\r
+       var validateMap = function(mname) {\r
+               var patt1 = /^{(\s*\w+\s*:\s*\w+\s*)(\s*,\s*\w+\s*:\s*\w+\s*)*}$/im;\r
+               if ( mname == null ){\r
+                       return true;\r
+               }\r
+               if ( !mname.match(patt1) ) {\r
+                       return false;\r
+               }\r
+               return true;\r
+       };\r
+       \r
+       var validateList = function(lname) {\r
+               var patt1 = /^\[(\s*\w+\s*)(\s*,\s*\w+\s*)*\]$/i;\r
+               if ( lname == null ){\r
+                       return true;\r
+               }\r
+               if ( !lname.match(patt1) ) {\r
+                       return false;\r
+               }\r
+               return true;\r
+       };\r
+               \r
        $scope.userParameterChanged = function(id) {\r
                CreationService.updateUserParameterList(id, $scope.userProvidedControl);\r
        }\r
@@ -108,7 +129,50 @@ var creationDialogController = function( COMPONENT, FIELD, $scope, $http, $timeo
                                return;\r
                        }\r
                }\r
-               \r
+               var arbitraryParametersList = DataService.getArbitraryParameters();\r
+               var p = null;\r
+               if (UtilityService.hasContents (arbitraryParametersList)) {\r
+                       for (var i = 0; i < arbitraryParametersList.length; i++) {\r
+                               p = arbitraryParametersList[i];\r
+                               if (p.type === PARAMETER.MAP) {\r
+                                       //validate a map: { <entry_key_1>: <entry_value_1>, ... , <entry_key_n>: <entry_value_n> }\r
+                                       // need to find the value in paramList\r
+                                       for (var j = 0; j < paramList.length; j++) {\r
+                                               if (paramList[j].id === p.id) {\r
+                                                       p.value = paramList[j].value;\r
+                                                       var isValid = validateMap (p.value);\r
+                                                       if ( isValid ) {\r
+                                                               $scope.isErrorVisible = false;\r
+                                                               break;\r
+                                                       } \r
+                                                       else {\r
+                                                               showError(FIELD.ERROR.INVALID_MAP + p.id, \r
+                                                                               FIELD.ERROR.MAP_VALIDATE);\r
+                                                               return;\r
+                                                       }       \r
+                                               }\r
+                                       }\r
+                               } else if (p.type === PARAMETER.LIST) {\r
+                                       //validate a list: { value or a list of comma separated values }\r
+                                       // need to find the value in paramList\r
+                                       for (var j = 0; j < paramList.length; j++) {\r
+                                               if (paramList[j].id === p.id) {\r
+                                                       p.value = paramList[j].value;\r
+                                                       var isValid = validateList (p.value);\r
+                                                       if ( isValid ) {\r
+                                                               $scope.isErrorVisible = false;\r
+                                                               break;\r
+                                                       } \r
+                                                       else {\r
+                                                               showError(FIELD.ERROR.INVALID_LIST + p.id, \r
+                                                                               FIELD.ERROR.LIST_VALIDATE);\r
+                                                               return;\r
+                                                       }       \r
+                                               }\r
+                                       }\r
+                               }\r
+                       }\r
+               }\r
                var requestDetails = CreationService\r
                                .getMsoRequestDetails($scope.userProvidedControl.getList());\r
 \r
@@ -158,6 +222,6 @@ var creationDialogController = function( COMPONENT, FIELD, $scope, $http, $timeo
        \r
 }\r
 \r
-appDS2.controller("creationDialogController", [ "COMPONENT", "FIELD", "$scope", "$http",\r
-                               "$timeout", "$log", "CreationService", "UtilityService", "DataService",\r
+appDS2.controller("creationDialogController", [ "COMPONENT", "FIELD", "PARAMETER", "$scope", "$http",\r
+                               "$timeout", "$log", "CreationService", "UtilityService", "DataService","VIDCONFIGURATION",\r
                                creationDialogController ]);\r