a1625a9365b03c1f13357345d9c17ef78a340eca
[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                 $("#ridinSpinners").css("display", "")
55                 $("#ridinSpinners").css("display", "none")
56         };
57         $scope.paramsCancel = function() {
58                 $("#paramsWarnrefresh").hide();
59         };
60         function completeClose() {
61                 // if(flag) {
62                 $scope.close();
63                 // }
64         }
65         function callBack(flag) {
66                 if (flag) {
67                         $scope.close();
68                 }
69         }
70         cldsTemplateService.getSavedTemplate().then(function(pars) {
71                 $scope.templateNamel = []
72                 for (var i = 0; i < pars.length; i++) {
73                         $scope.templateNamel.push(pars[i].value);
74                 }
75                 setTimeout(function() {
76                         setMultiSelect();
77                 }, 100);
78         });
79         function contains(a, obj) {
80                 var i = a && a.length > 0 ? a.length : 0;
81                 while (i--) {
82                         if (a[i].toLowerCase() === obj.toLowerCase()) {
83                                 return true;
84                         }
85                 }
86                 return false;
87         }
88         $scope.checkExisting=function(checkVal, errPatt, num){
89                 var name = checkVal;
90                 if (!errPatt && (checkVal!== undefined)){
91                         if(contains($scope.modelNamel,name)){
92                                 $scope["nameinUse"+num]=true;
93                                 return true;
94                         }else{
95                                 $scope["nameinUse"+num]=false;
96                                 return false;
97                         }
98                 } else {
99                         $scope["nameinUse"+num]=false;
100                         return false;
101                 }
102         }
103         function specialCharacters() {
104                 $scope.spcl = false;
105                 if (angular.element("#modelName")
106                 && angular.element("#modelName").scope().model.$error.pattern
107                 && angular.element("#modelName").scope().model.$error.pattern.length > 0) {
108                         $scope.spcl = true;
109                 }
110         }
111         $scope.setTypeModel = function(_type) {
112                 $scope.error.flag = false;
113                 $scope.typeModel = _type;
114         }
115         $scope.close = function() {
116                 $rootScope.isNewClosed = false;
117                 $uibModalInstance.close("closed");
118         };
119         $scope.closeDiagram=function(){
120                 $window.location.reload();
121         }
122         $scope.revertChanges = function() {
123                 $scope.openModel();
124         }
125         $scope.openModel = function() {
126                 reloadDefaultVariables(false)
127                 if (document.getElementById("readOnly")) {
128                         readMOnly = document.getElementById("readOnly").checked;
129                 }
130                 var modelName = document.getElementById("modelName").value;
131                 // init UTM items
132                 $scope.utmModelsArray = [];
133                 $scope.selectedParent = {};
134                 $scope.currentUTMModel = {};
135                 $scope.currentUTMModel.selectedParent = {};
136                 $rootScope.oldUTMModels = [];
137                 $rootScope.projectName = "clds_default_project";
138                 var utmModels = {};
139                 utmModels.name = modelName;
140                 utmModels.subModels = [];
141                 utmModels.type = 'Model';
142                 $rootScope.utmModels = utmModels;
143                 cldsModelService.getModel(modelName).then(function(pars) {
144                         // deserialize model properties
145                         selected_model = modelName;
146                         cldsModelService.processActionResponse(modelName);
147                         // set model bpmn and open diagram
148                         $rootScope.isPalette = true;
149                 }, function(data) {
150                 });
151                 $uibModalInstance.close("closed");
152         };
153         setMultiSelect();
154 } ]);