Rework UI 67/82267/3
authorxg353y <xg353y@intl.att.com>
Thu, 14 Mar 2019 15:27:49 +0000 (16:27 +0100)
committersebdet <sebastien.determe@intl.att.com>
Thu, 14 Mar 2019 17:06:29 +0000 (18:06 +0100)
Rework UI to cooperate with the new data model

Issue-ID: CLAMP-318
Change-Id: I1266c350e7604d29ff86da7c7584c74ad1f8715a
Signed-off-by: xg353y <xg353y@intl.att.com>
15 files changed:
src/main/java/org/onap/clamp/loop/LoopController.java
src/main/java/org/onap/clamp/loop/LoopService.java
src/main/java/org/onap/clamp/policy/microservice/MicroservicePolicyService.java
src/main/resources/META-INF/resources/designer/partials/portfolios/PolicyWindow_properties.html
src/main/resources/META-INF/resources/designer/partials/portfolios/global_properties.html
src/main/resources/META-INF/resources/designer/scripts/CldsModelService.js
src/main/resources/META-INF/resources/designer/scripts/CldsOpenModelCtrl.js
src/main/resources/META-INF/resources/designer/scripts/GlobalPropertiesCtrl.js
src/main/resources/META-INF/resources/designer/scripts/ImportSchemaCtrl.js
src/main/resources/META-INF/resources/designer/scripts/ToscaModelCtrl.js
src/main/resources/META-INF/resources/designer/scripts/ToscaModelService.js
src/main/resources/META-INF/resources/designer/scripts/importSchemaService.js
src/main/resources/META-INF/resources/designer/scripts/menuHandler.js
src/main/resources/META-INF/resources/designer/scripts/propertyController.js
src/main/resources/clds/camel/rest/clamp-api-v2.xml

index 2bcce1e..8b64e9d 100644 (file)
@@ -75,6 +75,10 @@ public class LoopController {
         return loopService.updateAndSaveGlobalPropertiesJson(loopName, globalProperties);
     }
 
+    public MicroServicePolicy updateMicroservicePolicy(String loopName, MicroServicePolicy newMicroservicePolicy) {
+        return loopService.updateMicroservicePolicy(loopName, newMicroservicePolicy);
+    }
+
     public String getSVGRepresentation(String loopName) {
         return loopService.getClosedLoopModelSVG(loopName);
 
index cf2f4c6..051ab6e 100644 (file)
@@ -86,6 +86,13 @@ public class LoopService {
         return loopsRepository.save(loop);
     }
 
+    MicroServicePolicy updateMicroservicePolicy(String loopName, MicroServicePolicy newMicroservicePolicy) {
+       Loop loop = findClosedLoopByName(loopName);
+        MicroServicePolicy newPolicies = microservicePolicyService
+                .getAndUpdateMicroServicePolicy(loop, newMicroservicePolicy);
+        return newPolicies;
+    }
+
     private Loop updateOperationalPolicies(Loop loop, List<OperationalPolicy> newOperationalPolicies) {
         Set<OperationalPolicy> newPolicies = operationalPolicyService
                 .updatePolicies(loop, newOperationalPolicies);
index 91794b7..c316f1f 100644 (file)
 package org.onap.clamp.policy.microservice;
 
 import com.google.common.collect.Sets;
+
 import java.util.List;
 import java.util.Set;
 import java.util.stream.Collectors;
-import org.onap.clamp.policy.PolicyService;
+
 import org.onap.clamp.loop.Loop;
+import org.onap.clamp.policy.PolicyService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -45,12 +47,8 @@ public class MicroservicePolicyService implements PolicyService<MicroServicePoli
 
     @Override
     @Transactional
-    public Set<MicroServicePolicy> updatePolicies(Loop loop,
-        List<MicroServicePolicy> newMicroservicePolicies) {
-        return newMicroservicePolicies
-            .stream()
-            .map(policy ->
-                getAndUpdateMicroServicePolicy(loop, policy))
+    public Set<MicroServicePolicy> updatePolicies(Loop loop, List<MicroServicePolicy> newMicroservicePolicies) {
+        return newMicroservicePolicies.stream().map(policy -> getAndUpdateMicroServicePolicy(loop, policy))
             .collect(Collectors.toSet());
     }
 
@@ -59,13 +57,10 @@ public class MicroservicePolicyService implements PolicyService<MicroServicePoli
         return repository.existsById(policyName);
     }
 
-    private MicroServicePolicy getAndUpdateMicroServicePolicy(Loop loop, MicroServicePolicy policy) {
-        return repository
-            .findById(policy.getName())
-            .map(p -> updateMicroservicePolicyProperties(p, policy, loop))
-            .orElse(new MicroServicePolicy(policy.getName(), policy.getPolicyTosca(),
-                policy.getShared(), policy.getJsonRepresentation(),
-                Sets.newHashSet(loop)));
+    public MicroServicePolicy getAndUpdateMicroServicePolicy(Loop loop, MicroServicePolicy policy) {
+        return repository.findById(policy.getName()).map(p -> updateMicroservicePolicyProperties(p, policy, loop))
+            .orElse(new MicroServicePolicy(policy.getName(), policy.getPolicyTosca(), policy.getShared(),
+                policy.getJsonRepresentation(), Sets.newHashSet(loop)));
     }
 
     private MicroServicePolicy updateMicroservicePolicyProperties(MicroServicePolicy oldPolicy,
index 0da0153..6255698 100644 (file)
@@ -562,8 +562,8 @@ label {
                                }
                                console.log("save properties; add tableVal to policies: "+ tableVal);
                        });
-
-                       saveOpPolicyProperties(finalSaveList);
+                       var scope = angular.element(document.getElementById('formSpan')).scope();
+                       scope.submitForm(finalSaveList);
                        $("#close_button").click();
                })              
 
@@ -803,7 +803,6 @@ label {
 
                $("#pid").val(0);
 
-               setASDCFields();
                initTargetResourceId();
                //load metrics dropdown
                if (elementMap["global"]) {
index e7b4f38..4531ef3 100644 (file)
@@ -51,8 +51,8 @@
                                                Deploy Parameters</label>
 
                                        <div class="col-sm-8">
-                                               <textarea class="form-control" id="deployParameters"
-                                                       name="deployParameters" rows="3">
+                                               <textarea class="form-control" id="dcaeDeployParameters"
+                                                       name="dcaeDeployParameters" rows="3">
                                                </textarea>
 
                                        </div>
index 5848f54..097235f 100644 (file)
@@ -269,10 +269,7 @@ app
                            $("#svgContainer svg").attr('height', '100%');
                            $("#svgContainer").click(
                            function(event) {
-                                   console.log("svgContainer:" + $("#svgContainer svg"));
                                    var name = $($($($(event.target).parent()).parent()).parent()).attr("data-element-id")
-                                   lastElementSelected = $($(event.target).parent()).attr(
-                                   "data-element-id")
                                    checkIfElementType(name)
                            });
                        }, function(data) {
index 0e3fce9..2d76dc3 100644 (file)
@@ -42,7 +42,7 @@ function($scope, $rootScope, $modalInstance, $window, $uibModalInstance, cldsMod
        cldsModelService.getSavedModel().then(function(pars) {
                $scope.modelNamel = []
                for (var i = 0; i < pars.length; i++) {
-                       $scope.modelNamel.push(pars[i].value);
+                       $scope.modelNamel.push(pars[i]);
                }
                setTimeout(function() {
                        setMultiSelect();
index e9ff499..f34267a 100644 (file)
@@ -24,22 +24,23 @@ app.controller('GlobalPropertiesCtrl', [
 '$scope',
 '$rootScope',
 '$uibModalInstance',
+'$http',
+'$q',
 'cldsModelService',
 '$location',
 'dialogs',
-function($scope, $rootScope, $uibModalInstance, cldsModelService, $location,
+function($scope, $rootScope, $uibModalInstance, $http, $q, cldsModelService, $location,
          dialogs) {
        $scope.$watch('name', function(newValue, oldValue) {
 
                var el = getGlobalProperty();
                if (el !== undefined) {
-                       for (var i = 0; i < el.length; i++) {
-                               if (el[i].name === 'deployParameters')
+                       for (var key in el) {
+                               if (key === 'dcaeDeployParameters')
                                {
-                                       // This is a special case, that value is not a string but a JSON
-                                       $("#" + el[i].name).val(JSON.stringify(el[i].value));
+                                       $("#" + key).val(JSON.stringify(el[key]));
                                } else {
-                                       $("#" + el[i].name).val(el[i].value);
+                                       $("#" + key).val(el[key]);
                                }
                        }
                }
@@ -64,11 +65,13 @@ function($scope, $rootScope, $uibModalInstance, cldsModelService, $location,
                $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 === 'deployParameters') {
+                       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 {
@@ -91,8 +94,31 @@ function($scope, $rootScope, $uibModalInstance, cldsModelService, $location,
     }
     
     $scope.submitForm = function() {
-        saveGlobalProperties(noRepeats($("#saveProps").serializeArray()))
+       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.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;
+          };
 } ]);
index 7fb0f44..5dae2dc 100644 (file)
@@ -281,4 +281,16 @@ function($scope, $rootScope, $uibModalInstance, data, svnservice, fileUpload,
                        // $scope.name = 'You did not enter in your name!';
                });
        };
+
+       $scope.submitForm = function(obj) {
+               var operationalPolicies = getOperationalPolicies();
+               if (obj !== null) {
+                       operationalPolicies[0]["configurationsJson"] = obj;
+               }
+               svnservice.saveOpPolicyProperties(operationalPolicies).then(function(pars) {
+                       updateOpPolicyProperties(operationalPolicies);
+               }, function(data) {
+               });
+     };
+
 } ]);
\ No newline at end of file
index 09a1d0c..d287f3d 100644 (file)
@@ -86,14 +86,19 @@ app.controller('ToscaModelCtrl',
         }
 
         $scope.saveToscaProps = function(){
-               var policyType = $rootScope.selectedBoxName.split('_')[0].toLowerCase();
-               var data = $scope.getEditorData();
+               var policyType = $rootScope.selectedBoxName;
+            var data = $scope.getEditorData();
 
             if(data !== null) {
-               saveMsProperties(policyType,data);
-                       if($scope.editor) { $scope.editor.destroy(); $scope.editor = null; }
-                       $modalInstance.close('closed');
-               }
+               var msJson = getMsJson(policyType);
+               msJson["properties"] = data;
+               cldsModelService.saveMsProperties(msJson).then(function(pars) {
+                       saveMsProperties(policyType, data);
+               }, function(data) {
+               });
+               if($scope.editor) { $scope.editor.destroy(); $scope.editor = null; }
+               $modalInstance.close('closed');
+            }
         }
 
         $scope.displayErrorMessage = function(errors){
index c99a455..222c2c9 100644 (file)
@@ -35,4 +35,16 @@ app.service('toscaModelService', ['alertService','$http', '$q', '$rootScope', fu
                        return response.data;
                });
        };
+       
+       this.saveMsProperties = function(form) {
+                var loopName = getLoopName();
+                var def = $q.defer();
+                var svcUrl = "/restservices/clds/v2/loop/updateMicroservicePolicies/" + loopName;
+                $http.post(svcUrl, form).success(function(data) {
+                        def.resolve(data);
+                }).error(function(data) {
+                        def.reject("Save Model not successful");
+                });
+           return def.promise;
+       };
  }]);
index 8c23f1f..c355d75 100644 (file)
@@ -46,4 +46,16 @@ app.service('svnservice', ['$http', '$q', function ($http, $q) {
         
         return def.promise;
     };
+    
+       this.saveOpPolicyProperties = function(form) {
+               var modelName = getLoopName();
+                var def = $q.defer();
+                var svcUrl = "/restservices/clds/v2/loop/updateOperationalPolicies/" + modelName;
+                $http.post(svcUrl, form).success(function(data) {
+                        def.resolve(data);
+                }).error(function(data) {
+                        def.reject("Save Operational Policy not successful");
+                });
+              return def.promise;
+       };
 }]);
\ No newline at end of file
index 1509d3e..d039184 100644 (file)
@@ -64,8 +64,6 @@ function enableDefaultMenu() {
            } else {
                    document.getElementById('Properties CL').classList
                    .remove('ThisLink');
-                   document.getElementById('Revert Model Changes').classList
-                   .remove('ThisLink');
                    document.getElementById('Close Model').classList
                    .remove('ThisLink');
                    document.getElementById('Refresh Status').classList
index c3f1aaf..9b23656 100644 (file)
@@ -28,69 +28,42 @@ function saveMsProperties(type, form) {
                newMsProperties[p]["properties"] = form;
         }
     }
-
-        var def = $q.defer();
-        var sets = [];
-        var svcUrl = "/restservices/clds/v2/loop/updateMicroservicePolicies/" + modelName;
-        var svcRequest = {
-                        loopName : modelName,
-                        newMicroservicePolicies : newMsProperties
-        };
-        $http.post(svcUrl, svcRequest).success(function(data) {
-                def.resolve(data);
-        }).error(function(data) {
-                def.reject("Save Model not successful");
-        });
-    cl_props["microServicePolicies"] = newMsProperties;
-    return def.promise;
 }
 
-function saveGlobalProperties(form) {
-        var def = $q.defer();
-        var sets = [];
-        var svcUrl = "/restservices/clds/v2/loop/globalProperties/" + modelName;
-        var svcRequest = {
-                        loopName : modelName,
-                        newGlobalPolicies : form
-        };
-        $http.post(svcUrl, svcRequest).success(function(data) {
-                def.resolve(data);
-        }).error(function(data) {
-                def.reject("Save Model not successful");
-        });
+function updateGlobalProperties(form) {
     cl_props["globalPropertiesJson"] = form;
-    return def.promise;
 }
 
-function saveOpPolicyProperties(form) {
-       var newOpProperties = cl_props["operationalPolicies"];
-       newOpProperties["0"]["configurationsJson"]= form;
-       
-       var def = $q.defer();
-        var sets = [];
-        var svcUrl = "/restservices/clds/v2/loop/updateOperationalPolicies/" + modelName;
-        var svcRequest = {
-                        loopName : modelName,
-                        newGlobalPolicies : newOpProperties
-        };
-        $http.post(svcUrl, svcRequest).success(function(data) {
-                def.resolve(data);
-        }).error(function(data) {
-                def.reject("Save Model not successful");
-   });
-       
+function updateOpPolicyProperties(form) {      
    cl_props["operationalPolicies"] = newOpProperties;
-   return def.promise;
+}
+
+function getLoopName() {
+    return cl_props["name"];
 }
 
 function getOperationalPolicyProperty() {
     return cl_props["operationalPolicies"]["0"]["configurationsJson"];
 }
 
+function getOperationalPolicies() {
+    return cl_props["operationalPolicies"];
+}
+
 function getGlobalProperty() {
     return cl_props["globalPropertiesJson"];
 }
 
+function getMsJson(type) {
+    var msProperties = cl_props["microServicePolicies"];
+    for (p in msProperties) {
+        if (msProperties[p]["name"] == type) {
+           return msProperties[p];
+        }
+    }
+    return null;
+}
+
 function getMsProperty(type) {
     var msProperties = cl_props["microServicePolicies"];
     for (p in msProperties) {
index 6b6ec45..d4872ef 100644 (file)
                 <to uri="bean:org.onap.clamp.loop.LoopController?method=updateOperationalPolicies(${header.loopName},${body})" />
             </route>
         </post>
-        <post uri="/v2/loop/updateMicroservicePolicies/{loopName}"
-            type="com.google.gson.JsonArray"
+        <post uri="/v2/loop/updateMicroservicePolicy/{loopName}"
+            type="org.onap.clamp.policy.microservice.MicroServicePolicy"
             consumes="application/json"
-            outType="org.onap.clamp.loop.Loop"
+            outType="org.onap.clamp.policy.microservice.MicroServicePolicy"
             produces="application/json">
             <route>
                 <to uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'cl','','update')" />
-                <to uri="bean:org.onap.clamp.loop.LoopController?method=updateMicroservicePolicies(${header.loopName},${body})" />
+                <to uri="bean:org.onap.clamp.loop.LoopController?method=updateMicroservicePolicy(${header.loopName},${body})" />
             </route>
         </post>
     </rest>