Fix deploy window
[clamp.git] / src / main / resources / META-INF / resources / designer / scripts / DeploymentCtrl.js
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP CLAMP
4  * ================================================================================
5  * Copyright (C) 2018 AT&T Intellectual Property. All rights
6  *                             reserved.
7  * ================================================================================
8  * Licensed under the Apache License, Version 2.0 (the "License"); 
9  * you may not use this file except in compliance with the License. 
10  * You may obtain a copy of the License at
11  * 
12  * http://www.apache.org/licenses/LICENSE-2.0
13  * 
14  * Unless required by applicable law or agreed to in writing, software 
15  * distributed under the License is distributed on an "AS IS" BASIS, 
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
17  * See the License for the specific language governing permissions and 
18  * limitations under the License.
19  * ============LICENSE_END============================================
20  * ===================================================================
21  * 
22  */
23
24 app.controller('DeploymentCtrl',
25                ['$scope','$rootScope','$modalInstance','data','dialogs', 'cldsModelService',
26        function( $scope,  $rootScope,  $modalInstance,  data,  dialogs,   cldsModelService) {
27
28            function validate_and_set_deploy_parameters () {
29                    var inputList = document.getElementsByClassName("deployFormId");
30                    var jsonParameters="{";
31                    $.each(inputList, function(key) {
32                            if (jsonParameters !== "{") {
33                                    jsonParameters = jsonParameters+",";
34                            }
35                           jsonParameters = jsonParameters+'"'+inputList[key].id+'":'+'"'+inputList[key].value+'"'
36                    });
37                    jsonParameters = jsonParameters+"}";
38                try {
39                    //Try to validate the json
40                    set_deploy_parameters(JSON.parse(jsonParameters));
41                } catch (e) {
42                    console.error("Couldn't parse deploy parameters json");
43                }
44            }
45
46            function set_deploy_parameters(parameters) {
47                if (!'global' in elementMap) {
48                    elementMap["global"] = [];
49                }
50                var index = elementMap["global"].findIndex(function (e) { return (typeof e == "object" && !(e instanceof Array)) && "deployParameters" == e["name"]; }); 
51                if (index == -1) { 
52                    elementMap["global"].push({"name": "deployParameters", "value": parameters}); 
53                } else { 
54                    elementMap["global"][index]["value"] =  parameters; 
55                }
56            }
57
58            $scope.load_deploy_parameters = function () {
59                    var index = elementMap["global"].findIndex(function (e) { return (typeof e == "object" && !(e instanceof Array)) && "deployParameters" == e["name"]; }); 
60                if (index != -1) {
61                    $('#deployPropertiesDiv').append($('<br/>'));
62                    $.each(elementMap["global"][index].value, function(key) {
63                            var propertyValue=elementMap["global"][index].value[key];
64                            $('#deployPropertiesDiv').append($('<label class="control-label">'+key+'  </label>'));
65                            $('#deployPropertiesDiv').append($('<input style="width: 100%; clear: both;" class="deployFormId" id="'+key+'"></input>').val(propertyValue).html(propertyValue));
66                            $('#deployPropertiesDiv').append($('<br/>'));
67                 });
68                }
69            }
70
71            $scope.deploy = function() {
72                    validate_and_set_deploy_parameters ();
73                $modalInstance.close();
74            };
75
76            $scope.close = function() {
77                $modalInstance.dismiss();
78            };
79        }
80
81 ]);