Rework deploy/undeploy UI
[clamp.git] / src / main / resources / META-INF / resources / designer / scripts / DeploymentCtrl.js
index 3faf9f6..138d802 100644 (file)
@@ -27,62 +27,40 @@ app
 '$scope',
 '$rootScope',
 '$uibModalInstance',
+'$http',
+'$q',
 'data',
 'dialogs',
 'cldsModelService',
-function($scope, $rootScope, $uibModalInstance, data, dialogs, cldsModelService) {
+function($scope, $rootScope, $uibModalInstance, $http, $q, data, dialogs, cldsModelService) {
        function validate_and_set_deploy_parameters() {
-               var inputList = document.getElementsByClassName("deployFormId");
-               var jsonParameters = "{";
-               $.each(inputList, function(key) {
-                       if (jsonParameters !== "{") {
-                               jsonParameters = jsonParameters + ",";
+                       var form = $("#deployForm")[0];
+                       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;
+                               }
                        }
-                       jsonParameters = jsonParameters + '"' + inputList[key].id + '":'
-                       + '"' + inputList[key].value + '"'
-               });
-               jsonParameters = jsonParameters + "}";
-               try {
-                       // Try to validate the json
-                       set_deploy_parameters(JSON.parse(jsonParameters));
-               } catch (e) {
-                       console.error("Couldn't parse deploy parameters json");
-               }
-       }
-       function set_deploy_parameters(parameters) {
-               if (!'global' in elementMap) {
-                       elementMap["global"] = [];
-               }
-               var index = elementMap["global"].findIndex(function(e) {
-                       return (typeof e == "object" && !(e instanceof Array))
-                       && "deployParameters" == e["name"];
-               });
-               if (index == -1) {
-                       elementMap["global"].push({
-                       "name" : "deployParameters",
-                       "value" : parameters
+
+                       var el = getGlobalProperty();
+                       el["dcaeDeployParameters"] = obj;
+                       $scope.saveGlobalProperties(JSON.stringify(el)).then(function(pars) {
+                               updateGlobalProperties(el);
+                       }, function(data) {
                        });
-               } else {
-                       elementMap["global"][index]["value"] = parameters;
-               }
        }
+
        $scope.load_deploy_parameters = function() {
-               var index = elementMap["global"].findIndex(function(e) {
-                       return (typeof e == "object" && !(e instanceof Array))
-                       && "deployParameters" == e["name"];
-               });
-               if (index != -1) {
-                       $('#deployPropertiesDiv').append($('<br/>'));
-                       $.each(elementMap["global"][index].value, function(key) {
-                               var propertyValue = elementMap["global"][index].value[key];
-                               $('#deployPropertiesDiv').append(
-                               $('<label class="control-label">' + key + '  </label>'));
-                               $('#deployPropertiesDiv').append(
-                               $(
-                               '<input style="width: 100%; clear: both;" class="deployFormId" id="'
+               var el = getDeploymentProperties();
+               for (var key in el) {
+                       var propertyValue = el[key];
+                       $('#deployForm').append(
+                               $('<label for="' + key + '" class="control-label">' + key + '  </label>'));
+                       $('#deployForm').append(
+                               $('<input style="width: 100%; clear: both;" class="form-control" name="'
                                + key + '"></input>').val(propertyValue).html(propertyValue));
-                               $('#deployPropertiesDiv').append($('<br/>'));
-                       });
                }
        }
        $scope.deploy = function() {
@@ -92,4 +70,15 @@ function($scope, $rootScope, $uibModalInstance, data, dialogs, cldsModelService)
        $scope.close = function() {
                $uibModalInstance.dismiss();
        };
+       $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 Global properties not successful");
+                });
+              return def.promise;
+          };
 } ]);