a64af7467ccf065decc695a85746865265738a2f
[clamp.git] / src / main / resources / META-INF / resources / designer / scripts / CldsOpenModelCtrl.js
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP CLAMP
4  * ================================================================================
5  * Copyright (C) 2017-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 app
24 .controller(
25 'CldsOpenModelCtrl',
26 [
27 '$scope',
28 '$rootScope',
29 '$modalInstance',
30 '$window',
31 '$uibModalInstance',
32 'cldsModelService',
33 '$location',
34 'dialogs',
35 'cldsTemplateService',
36 function($scope, $rootScope, $modalInstance, $window, $uibModalInstance, cldsModelService, $location,
37          dialogs, cldsTemplateService) {
38         $scope.typeModel = 'template';
39         $scope.error = {
40         flag : false,
41         message : ""
42         };
43         cldsModelService.getSavedModel().then(function(pars) {
44                 $scope.modelNamel = []
45                 for (var i = 0; i < pars.length; i++) {
46                         $scope.modelNamel.push(pars[i].value);
47                 }
48                 setTimeout(function() {
49                         setMultiSelect();
50                 }, 100);
51         });
52         $scope.paramsRetry = function() {
53                 // $("#paramsWarn").hide();
54                 var currentValue = $("#service").val() == null ? previous : $(
55                 "#service").val();
56                 $("#ridinSpinners").css("display", "")
57                 loadSharedPropertyByService(currentValue, true, callBack);
58                 $("#ridinSpinners").css("display", "none")
59         };
60         $scope.paramsCancel = function() {
61                 loadSharedPropertyByServiceProperties(callBack);
62                 $("#paramsWarnrefresh").hide();
63         };
64         function completeClose() {
65                 // if(flag) {
66                 $scope.close();
67                 // }
68         }
69         function callBack(flag) {
70                 if (flag) {
71                         $scope.close();
72                 }
73         }
74         $scope.refreshASDC = function() {
75                 $("#ridinSpinners").css("display", "")
76                 var bool = loadSharedPropertyByService(undefined, true, callBack);
77                 $("#ridinSpinners").css("display", "none");
78         }
79         cldsTemplateService.getSavedTemplate().then(function(pars) {
80                 $scope.templateNamel = []
81                 for (var i = 0; i < pars.length; i++) {
82                         $scope.templateNamel.push(pars[i].value);
83                 }
84                 setTimeout(function() {
85                         setMultiSelect();
86                 }, 100);
87         });
88         function contains(a, obj) {
89                 var i = a && a.length > 0 ? a.length : 0;
90                 while (i--) {
91                         if (a[i].toLowerCase() === obj.toLowerCase()) {
92                                 return true;
93                         }
94                 }
95                 return false;
96         }
97         $scope.checkExisting=function(checkVal, errPatt, num){
98                 var name = checkVal;
99                 if (!errPatt && (checkVal!== undefined)){
100                         if(contains($scope.modelNamel,name)){
101                                 $scope["nameinUse"+num]=true;
102                                 return true;
103                         }else{
104                                 $scope["nameinUse"+num]=false;
105                                 return false;
106                         }
107                 } else {
108                         $scope["nameinUse"+num]=false;
109                         return false;
110                 }
111         }
112         function specialCharacters() {
113                 $scope.spcl = false;
114                 if (angular.element("#modelName")
115                 && angular.element("#modelName").scope().model.$error.pattern
116                 && angular.element("#modelName").scope().model.$error.pattern.length > 0) {
117                         $scope.spcl = true;
118                 }
119         }
120         $scope.setTypeModel = function(_type) {
121                 $scope.error.flag = false;
122                 $scope.typeModel = _type;
123         }
124         $scope.close = function() {
125                 $rootScope.isNewClosed = false;
126                 $uibModalInstance.close("closed");
127         };
128         $scope.closeDiagram=function(){
129                 $window.location.reload();
130         }
131         $scope.revertChanges = function() {
132                 $scope.openModel();
133         }
134         $scope.openModel = function() {
135                 reloadDefaultVariables(false)
136                 if (document.getElementById("readOnly")) {
137                         readMOnly = document.getElementById("readOnly").checked;
138                 }
139                 var modelName = document.getElementById("modelName").value;
140                 // init UTM items
141                 $scope.utmModelsArray = [];
142                 $scope.selectedParent = {};
143                 $scope.currentUTMModel = {};
144                 $scope.currentUTMModel.selectedParent = {};
145                 $rootScope.oldUTMModels = [];
146                 $rootScope.projectName = "clds_default_project";
147                 var utmModels = {};
148                 utmModels.name = modelName;
149                 utmModels.subModels = [];
150                 utmModels.type = 'Model';
151                 $rootScope.utmModels = utmModels;
152                 cldsModelService.getModel(modelName).then(function(pars) {
153                         // process data returned
154                         var propText = pars.propText;
155                         var status = pars.status;
156                         controlNamePrefix = pars.controlNamePrefix;
157                         var authorizedToUp = pars.userAuthorizedToUpdate;
158                         typeID = pars.typeId;
159                         controlNameUuid = pars.controlNameUuid;
160                         selected_template = pars.templateName;
161                         modelEventService = pars.event;
162                         actionStateCd = pars.event.actionStateCd;
163                         deploymentId = pars.deploymentId;
164                         if (readMOnly) {
165                                 pars.permittedActionCd = [ "" ];
166                         }
167
168                         // deserialize model properties
169                         if (propText == null) {
170                         } else {
171                                 elementMap = JSON.parse(propText);
172                         }
173                         var simple = elementMap.simpleModel;
174                         $rootScope.isSimpleModel = simple;
175                         selected_model = modelName;
176                         cldsModelService.processActionResponse(modelName, pars, simple);
177                         // set model bpmn and open diagram
178                         $rootScope.isPalette = true;
179                 }, function(data) {
180                 });
181                 $uibModalInstance.close("closed");
182         };
183         setMultiSelect();
184 } ]);