[CLAMP-1] Initial ONAP CLAMP seed code commit
[clamp.git] / src / main / resources / META-INF / resources / designer / scripts / CldsOpenModelCtrl.js
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP CLAMP
4  * ================================================================================
5  * Copyright (C) 2017 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  * ECOMP is a trademark and service mark of AT&T Intellectual Property.
22  */
23
24 app.controller('CldsOpenModelCtrl',
25         ['$scope', '$rootScope', '$modalInstance','cldsModelService', '$location', 'dialogs','cldsTemplateService',
26                 function($scope, $rootScope, $modalInstance, cldsModelService, $location,dialogs,cldsTemplateService) {
27                         console.log("/////////CldsOpenModelCtrl");
28                         $scope.typeModel='template';
29                         $scope.error = {
30                                 flag : false,
31                                 message: ""
32                         };      
33                         
34                         cldsModelService.getSavedModel().then(function(pars) {
35                                 
36                                 $scope.modelNamel=[]
37                                 for(var i=0;i<pars.length;i++){
38                                         $scope.modelNamel.push(pars[i].value);           
39                                 }
40                                 setTimeout(function(){
41                         console.log("setTimeout");
42
43                      setMultiSelect(); }, 100);
44                                 
45                         });
46
47                         $scope.paramsRetry = function() {
48                                 //$("#paramsWarn").hide();
49                                 var currentValue = $("#service").val() == null ? previous : $("#service").val();
50                                 $("#ridinSpinners").css("display","")
51                                 loadSharedPropertyByService(currentValue,true,callBack);
52                                 $("#ridinSpinners").css("display","none")
53                         };
54                          $scope.paramsCancel =function() {
55                                 loadSharedPropertyByServiceProperties(callBack);
56                                 $("#paramsWarnrefresh").hide();
57                                 
58                         };
59
60                         function completeClose(){
61                                         //if(flag)      {
62                                                 $scope.close();
63                                         //}
64                                 }
65                         
66                         function callBack(flag){
67                                         if(flag)        {
68                                                 $scope.close();
69                                         }
70                                 }
71                         $scope.refreshASDC=function(){
72                                 console.log("refreshASDC");
73                                 $("#ridinSpinners").css("display","")
74                                 var bool=loadSharedPropertyByService(undefined,true,callBack);
75                                 $("#ridinSpinners").css("display","none");
76                                 
77                                 
78                         }
79                         
80                         cldsTemplateService.getSavedTemplate().then(function(pars) {
81
82                                 
83                                 $scope.templateNamel=[]
84                                 for(var i=0;i<pars.length;i++){
85                                         $scope.templateNamel.push(pars[i].value);
86                                         
87                                 }
88                                 
89                         });
90                         function contains(a, obj) {
91                                 console.log("contains");
92                             var i = a&& a.length>0 ? a.length : 0;
93                             while (i--) {
94                                if (a[i].toLowerCase() === obj.toLowerCase()) {
95                                    return true;
96                                }
97                             }
98                             return false;
99                         }
100                         $scope.checkExisting=function(){
101                                 console.log("checkExisting");
102                                 var name = $('#modelName').val();                                                               
103                                 if(contains($scope.modelNamel,name)){
104                                         $scope.nameinUse=true;
105                                 }else{
106                                         $scope.nameinUse=false;
107                                 }
108                                 specialCharacters();
109                         }
110                          function specialCharacters (){
111                                 console.log("specialCharacters");
112                                 $scope.spcl = false;
113                                 if(angular.element("#modelName") && 
114                                         angular.element("#modelName").scope().model.$error.pattern && 
115                                         angular.element("#modelName").scope().model.$error.pattern.length>0){
116                                         $scope.spcl =  true;
117                                 }
118                         }
119
120                         $scope.setTypeModel=function(_type){
121                                 $scope.error.flag = false;
122                                 console.log("setTypeModel");
123                                 $scope.typeModel=_type;
124                         }
125                         
126                         $scope.close = function(){
127                                 console.log("close");
128                                 $rootScope.isNewClosed = false;
129                                 $modalInstance.close("closed");
130                         };
131                         $scope.createNewModelOffTemplate=function(formModel){
132                                 console.log("createNewModelOffTemplate");
133                                 console.log(formModel);
134                                 reloadDefaultVariables(false)
135                                 var modelName = document.getElementById("modelName").value;
136                                 var templateName=document.getElementById("templateName").value;
137                                 console.log("openModel: modelName=" + modelName);      
138                                 console.log("Template: templateName=" + templateName); 
139                                 if(!modelName){
140                                         $scope.error.flag =true;
141                                         $scope.error.message = "Please enter any closed template name for proceeding";
142                                     return false;
143                                 }
144                                 // init UTM items
145                                 $scope.utmModelsArray = [];
146                                 $scope.selectedParent = {};
147                                 $scope.currentUTMModel = {};
148                                 $scope.currentUTMModel.selectedParent = {};
149                                 $rootScope.oldUTMModels =[];
150                                 $rootScope.projectName="clds_default_project";          
151                                 var utmModels = {};
152                                 utmModels.name = modelName;
153                                 utmModels.subModels = [];
154                                 $rootScope.utmModels = utmModels;
155                                 
156
157                                 cldsTemplateService.getTemplate( templateName ).then(function(pars) {
158                                 console.log("openModel: pars=" + pars);
159                                 
160                                 var tempImageText=pars.imageText
161                                 var bpmnText=pars.bpmnText
162                                 pars={}
163                                 
164                                 pars.imageText=tempImageText
165                                 pars.status= "DESIGN";
166                                 pars.permittedActionCd= ["SUBMIT"];
167                                 cldsModelService.processActionResponse(modelName, pars);
168                                 
169                                 
170                                 selected_template= templateName
171                                 selected_model = modelName;
172                                 
173                                 // set model bpmn and open diagram
174                                 $rootScope.isPalette = true;
175                                 modelXML = bpmnText;
176                                 visibility_model();
177                         },
178                         function(data) {
179                                 //alert("getModel failed");
180                         });
181        
182                                 $modalInstance.close("closed");
183                         
184                         }
185                         
186                         $scope.cloneModel=function(){
187                                 console.log("cloneModel");
188                                 reloadDefaultVariables(false)
189                                 var modelName = document.getElementById("modelName").value;
190                                 var originalModel=document.getElementById("modelList").value;
191                                 console.log("openModel: modelName=" + modelName);   
192                                 if(!modelName){
193                                         $scope.error.flag =true;
194                                         $scope.error.message = "Please enter any name for proceeding";
195                                     return false;
196                                 }   
197                                 
198                                 // init UTM items
199                                 $scope.utmModelsArray = [];
200                                 $scope.selectedParent = {};
201                                 $scope.currentUTMModel = {};
202                                 $scope.currentUTMModel.selectedParent = {};
203                                 $rootScope.oldUTMModels =[];
204                                 $rootScope.projectName="clds_default_project";          
205                                 var utmModels = {};
206                                 utmModels.name = modelName;
207                                 utmModels.subModels = [];
208                                 $rootScope.utmModels = utmModels;
209                                 
210
211                                 cldsModelService.getModel( originalModel ).then(function(pars) {
212                                 console.log("openModel: pars=" + pars);
213                                 
214                                 // process data returned
215                                 var bpmnText = pars.bpmnText;
216                                 var propText = pars.propText;
217                                 var status = pars.status;
218                                 var controlNamePrefix = pars.controlNamePrefix;
219                                 var controlNameUuid = pars.controlNameUuid;
220                                 selected_template=pars.templateName;
221                                 pars.status="DESIGN";
222                                 pars.controlNameUuid="";
223                                 cldsModelService.processActionResponse(modelName, pars);
224                                 
225                                 // deserialize model properties
226                                 if ( propText == null ) {
227                                 console.log("openModel: propText is null");
228                                 } else {
229                                 console.log("openModel: propText=" + propText);
230                                         elementMap =  JSON.parse(propText);
231                                 }
232
233                                 selected_model = modelName;
234                                 
235                                 // set model bpmn and open diagram
236                                 $rootScope.isPalette = true;
237                                 modelXML = bpmnText;
238                                 visibility_model();
239                         },
240                         function(data) {
241                                 //alert("getModel failed");
242                         });
243        
244                                 $modalInstance.close("closed");
245                         }
246                         $scope.createNewModel=function(){
247                                 console.log("createNewModel");
248                                 reloadDefaultVariables(false)
249                                 var modelName = document.getElementById("modelName").value;
250                                 console.log("openModel: modelName=" + modelName);      
251                                 
252                                 // BEGIN env
253                                 // init UTM items
254                                 $scope.utmModelsArray = [];
255                                 $scope.selectedParent = {};
256                                 $scope.currentUTMModel = {};
257                                 $scope.currentUTMModel.selectedParent = {};
258                                 $rootScope.oldUTMModels =[];
259                                 $rootScope.projectName="clds_default_project";          
260                                 var utmModels = {};
261                                 utmModels.name = modelName;
262                                 utmModels.subModels = [];
263                                 $rootScope.utmModels = utmModels;
264                                 
265                         // enable appropriate menu options
266                         var pars = {status: "DESIGN", permittedActionCd: ["SUBMIT"]};
267                         
268                                 cldsModelService.processActionResponse(modelName, pars);
269                         
270                                 selected_model = modelName;
271
272                                 // set model bpmn and open diagram
273                         $rootScope.isPalette = true;
274
275                 var initialDiagram =
276                         '<?xml version="1.0" encoding="UTF-8"?>' +
277                         '<bpmn:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ' +
278                         'xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" ' +
279                         'xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" ' +
280                         'xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" ' +
281                         'targetNamespace="http://bpmn.io/schema/bpmn" ' +
282                         'id="Definitions_1">' +
283                         '<bpmn:process id="Process_1" isExecutable="false">' +
284                         '<bpmn:startEvent id="StartEvent_1"/>' +
285                         '</bpmn:process>' +
286                         '<bpmndi:BPMNDiagram id="BPMNDiagram_1">' +
287                         '<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_1">' +
288                         '<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">' +
289                         '<dc:Bounds x="50" y="162" width="36" height="36" />' +
290                         '</bpmndi:BPMNShape>' +
291                         '</bpmndi:BPMNPlane>' +
292                         '</bpmndi:BPMNDiagram>' +
293                         '</bpmn:definitions>';
294                         
295                         modelXML = initialDiagram;
296                         visibility_model();
297                         $modalInstance.close("closed");
298                         }
299                         $scope.revertChanges=function(){
300                                 console.log("revertChanges");
301                                 $scope.openModel();
302                         }
303                         $scope.openModel = function(){
304                                 console.log("openModel");
305                                 reloadDefaultVariables(false)
306                                 var readonly;
307                                 if(document.getElementById("readOnly")){
308                                         readOnly=document.getElementById("readOnly").checked;   
309                                 }
310                                 
311                                 console.log("readonly seen ")
312                                 console.log(readOnly)
313                                 var modelName = document.getElementById("modelName").value;
314                                 console.log("openModel: modelName=" + modelName);      
315                                 
316                                 // init UTM items
317                                 $scope.utmModelsArray = [];
318                                 $scope.selectedParent = {};
319                                 $scope.currentUTMModel = {};
320                                 $scope.currentUTMModel.selectedParent = {};
321                                 $rootScope.oldUTMModels =[];
322                                 $rootScope.projectName="clds_default_project";          
323                                 var utmModels = {};
324                                 utmModels.name = modelName;
325                                 utmModels.subModels = [];
326                                 $rootScope.utmModels = utmModels;
327                                 
328
329                                 cldsModelService.getModel( modelName ).then(function(pars) {
330                                 console.log("openModel: pars=" + pars);
331                                 console.log(pars)
332                                 // process data returned
333                                 var bpmnText = pars.bpmnText;
334                                 var propText = pars.propText;
335                                 var status = pars.status;
336                                 var controlNamePrefix = pars.controlNamePrefix;
337                                 var controlNameUuid = pars.controlNameUuid;
338                                 selected_template=pars.templateName
339                                 cldsModelService.processActionResponse(modelName, pars);
340                                 
341                                 // deserialize model properties
342                                 if ( propText == null ) {
343                                 console.log("openModel: propText is null");
344                                 } else {
345                                 console.log("openModel: propText=" + propText);
346                                         elementMap =  JSON.parse(propText);
347                                 }
348
349                                 selected_model = modelName;
350                                 
351                                 // set model bpmn and open diagram
352                                 $rootScope.isPalette = true;
353                                 modelXML = bpmnText;
354                                 visibility_model();
355                         },
356                         function(data) {
357                                 //alert("getModel failed");
358                         });
359        
360                                 $modalInstance.close("closed");
361                         };
362
363                         setMultiSelect();
364                 }
365         ]
366 );