Replacing the VFC with VFModule
[clamp.git] / src / main / resources / META-INF / resources / designer / scripts / GlobalPropertiesCtrl.js
index 2aea4c7..d7985b5 100644 (file)
  * ===================================================================
  * 
  */
-app.controller('GlobalPropertiesCtrl',
-       ['$scope', '$rootScope', '$modalInstance','cldsModelService', '$location', 'dialogs','cldsTemplateService',
-               function($scope, $rootScope, $modalInstance, cldsModelService, $location,dialogs,cldsTemplateService) {                                         
-                       //cldsModelService.getASDCServices().then(function(pars) {
-                       $scope.$watch('name', function(newValue, oldValue) {
-                               var services=asdc_Services
-                               setASDCFields()
-                               // add blank service item as the default service, to force user chose the correct service by themselves
-                               $("#service").append("<option></option>")
-                               for(k in services){
-                                       $("#service").append("<option value="+k+">"+services[k]+"</option>")
-                               }
-                               var el = elementMap["global"];
-                               if (el !== undefined) {
-                                       for (var i = 0; i < el.length; i++) {
-                                               $("#" + el[i].name).val(el[i].value);
-                                       }
-                               }
-                               setMultiSelect();
-                               
-                               if(readMOnly){
-                                       $("#savePropsBtn").attr("disabled", "");
-                                       $('select[multiple] option').each(function() {
-                                 var input = $('input[value="' + $(this).val() + '"]');
-                                 input.prop('disabled', true);
-                                 input.parent('li').addClass('disabled');
-                               });
-                                       $('input[value="multiselect-all"]').prop('disabled', true).parent('li').addClass('disabled');
-                                       ($("select:not([multiple])")).multiselect("disable");
+app.controller('GlobalPropertiesCtrl', [
+'$scope',
+'$rootScope',
+'$uibModalInstance',
+'$http',
+'$q',
+'cldsModelService',
+'$location',
+'dialogs',
+function($scope, $rootScope, $uibModalInstance, $http, $q, cldsModelService, $location,
+         dialogs) {
+       $scope.$watch('name', function(newValue, oldValue) {
+
+               var el = getGlobalProperty();
+               if (el !== undefined) {
+                       for (var key in el) {
+                               if (key === 'dcaeDeployParameters')
+                               {
+                                       $("#" + key).val(JSON.stringify(el[key]));
+                               } else {
+                                       $("#" + key).val(el[key]);
                                }
+                       }
+               }
+               if (readMOnly) {
+                       $("#savePropsBtn").attr("disabled", "");
+                       $('select[multiple] option').each(function() {
+                               var input = $('input[value="' + $(this).val() + '"]');
+                               input.prop('disabled', true);
+                               input.parent('li').addClass('disabled');
                        });
-                       $scope.retry = function(){
-                               console.log("retry");
-                               
+                       $('input[value="multiselect-all"]').prop('disabled', true).parent(
+                       'li').addClass('disabled');
+                       ($("select:not([multiple])")).multiselect("disable");
+               }
+       });
+       $scope.retry = function() {
+               console.log("retry");
+       }
+       $scope.close = function() {
+               console.log("close");
+               $uibModalInstance.close("closed");
+       };
+
+
+    function noRepeats(form) {
+       
+        var select = {};
+        for (var i = 0; i < form.length; i++) {
+               if (form[i].hasOwnProperty("name")) {
+                       if (form[i].name === 'dcaeDeployParameters') {
+                                       // This is a special case, that value MUST not be a string but a JSON
+                               select[form[i].name]=JSON.parse(form[i].value);
+                       } else {
+                               if (select[form[i].name] === undefined)
+                                       select[form[i].name] = []
+                               select[form[i].name].push(form[i].value);
+                       }
+               }
+        }
+        var arr = []
+        for (s in select) {
+               var f = {}
+               f.name = s
+               f.value = select[s]
+               if (!(s == "service" && f.value == "")) {
+                       arr.push(f)
+               }
+        }
+        return arr
+    }
+    
+    $scope.submitForm = function() {
+       var form = noRepeats($("#saveProps").serializeArray());
+       var obj = {};
+               for( var i = 0; i < form.length; ++i ) {
+                       var name = form[i].name;
+                       var value = form[i].value;
+                       if( name ) {
+                               obj[ name ] = value;
                        }
-                       $scope.close = function() {
-                               console.log("close");
-                               $modalInstance.close("closed");
-                       };
                }
-       ]
-);
+
+       $scope.saveGlobalProperties(JSON.stringify(obj)).then(function(pars) {
+               updateGlobalProperties(obj);
+               }, function(data) {
+               });
+        $uibModalInstance.close();
+    };
+       $scope.saveGlobalProperties = function(form) {
+               var modelName = getLoopName();
+                var def = $q.defer();
+                var svcUrl = "/restservices/clds/v2/loop/updateGlobalProperties/" + modelName;
+                $http.post(svcUrl, form).success(function(data) {
+                        def.resolve(data);
+                }).error(function(data) {
+                        def.reject("Save Model not successful");
+                });
+              return def.promise;
+          };
+} ]);