Code Improvement
[clamp.git] / src / main / resources / META-INF / resources / designer / scripts / CldsTemplateService.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.service('cldsTemplateService', ['alertService', '$http', '$q', function (alertService, $http, $q) {
25     this.getTemplate = function(templateName){
26         
27
28         var def = $q.defer();
29         var sets = [];
30         
31         var svcUrl = "/restservices/clds/v1/cldsTempate/template/" + templateName;                
32         
33         $http.get(svcUrl)
34         .success(function(data){ 
35         
36                 def.resolve(data);              
37                 
38         })
39         .error(function(data){  
40                       
41                 def.reject("Open Model not successful");
42         });
43         
44         return def.promise;
45     };
46     this.getSavedTemplate=function(){
47
48         var def = $q.defer();
49         var sets = [];
50         
51         var svcUrl = "/restservices/clds/v1/cldsTempate/template-names";                
52         
53         $http.get(svcUrl)
54         .success(function(data){
55                 
56                 def.resolve(data);              
57                 
58         })
59         .error(function(data){
60                       
61                 def.reject("Open Model not successful");
62         });
63         
64         return def.promise;
65     };
66     this.setTemplate = function(templateName, controlNamePrefixIn, bpmnTextIn, propTextIn){
67         
68
69         var def = $q.defer();
70         var sets = [];
71
72         var svcUrl = "/restservices/clds/v1/clds/model/" + modelName;        
73         var svcRequest = {name: templateName, controlNamePrefix: controlNamePrefixIn, bpmnText: bpmnTextIn, propText: propTextIn};
74         
75         
76         $http.put(svcUrl, svcRequest)
77         .success(function(data){ 
78         
79                 def.resolve(data);              
80                 
81         })
82         .error(function(data){ 
83                       
84                 def.reject("Save Model not successful");
85         });
86         
87         return def.promise;
88     };
89     this.processAction = function(uiAction, templateName, controlNamePrefixIn, bpmnTextIn, propTextIn,svgXmlIn){
90         
91  
92         var def = $q.defer();
93         var sets = [];
94         var svcUrl = "/restservices/clds/v1/cldsTempate/template/"+templateName;        
95                 
96         var svcRequest = {name: templateName, controlNamePrefix: controlNamePrefixIn, bpmnText: bpmnTextIn, propText: propTextIn, imageText:svgXmlIn};      
97         $http.put(svcUrl, svcRequest)
98         .success(function(data){
99         
100                 def.resolve(data);              
101                 alertService.alertMessage("Action Successful:"+uiAction,1)
102
103         })
104         .error(function(data){
105                       
106                 def.reject(" not successful");
107                 alertService.alertMessage("Action Failure:"+uiAction,2)
108
109         });
110         
111         return def.promise;
112     };
113     this.checkPermittedActionCd = function(permittedActionCd, menuText, actionCd){
114
115         if ( permittedActionCd.indexOf(actionCd) > -1 ) {
116                 document.getElementById(menuText).classList.remove('ThisLink');
117         } else {
118                 document.getElementById(menuText).classList.add('ThisLink');
119         }
120     };        
121     this.processActionResponse = function(templateName, pars){
122
123         // populate control name (prefix and uuid here)
124         var controlNamePrefix = pars.controlNamePrefix;
125         var controlNameUuid = pars.controlNameUuid;
126         var permittedActionCd = pars.permittedActionCd;
127         
128         var headerText = "Closed Loop Modeler - " + templateName;
129         if ( controlNameUuid != null ) {
130                 var actionCd = pars.event.actionCd;
131                 var actionStateCd = pars.event.actionStateCd;
132 //              headerText = headerText + " [" + controlNamePrefix + controlNameUuid + "] [" + actionCd + ":" + actionStateCd + "]";
133                 headerText = headerText + " [" + controlNamePrefix + controlNameUuid + "]";
134         }
135                 
136         document.getElementById("modeler_name").textContent = headerText;
137
138         //dropdown options -- always true
139         document.getElementById('Open Template').classList.remove('ThisLink');
140         document.getElementById('Open CL').classList.remove('ThisLink');
141         document.getElementById('Save CL').classList.add('ThisLink');
142         document.getElementById('Properties CL').classList.add('ThisLink');
143         document.getElementById('Revert Model Changes').classList.add('ThisLink');
144         document.getElementById('Close Model').classList.add('ThisLink');
145                 
146         // enable menu options
147         if (readTOnly){
148                 //enable temp options (read only, Open Template)
149                 document.getElementById('Template Properties').classList.remove('ThisLink');
150                 document.getElementById('Close Template').classList.remove('ThisLink');
151                 
152                 //disable temp menu options (read only, Open Template)
153                 document.getElementById('Create Template').classList.add('ThisLink');
154                 document.getElementById('Save Template').classList.add('ThisLink');
155                 document.getElementById('Revert Template Changes').classList.add('ThisLink');
156                 
157                 //disable save/properties for model
158                 document.getElementById('Refresh ASDC').classList.add('ThisLink');
159         } else {
160                 //enable temp options
161                 document.getElementById('Create Template').classList.remove('ThisLink');
162                 document.getElementById('Save Template').classList.remove('ThisLink');
163                 document.getElementById('Template Properties').classList.remove('ThisLink');
164                 document.getElementById('Validation Test').classList.remove('ThisLink');
165             if(!pars.newTemplate){
166                 document.getElementById('Revert Template Changes').classList.remove('ThisLink');    
167             }           
168                 document.getElementById('Close Template').classList.remove('ThisLink');
169                 
170                 document.getElementById('Refresh Status').classList.remove('ThisLink');
171                 
172                 //disable model options
173                 document.getElementById('Refresh ASDC').classList.add('ThisLink');
174                 
175
176         }
177         if (readMOnly){
178                         document.getElementById('Create CL').classList.add('ThisLink');
179                   } else {
180                         document.getElementById('Create CL').classList.remove('ThisLink');
181                   }
182         
183         // enable/disable menu options based on permittedActionCd list
184                 this.checkPermittedActionCd(permittedActionCd, 'Validation Test', 'TEST');
185         this.checkPermittedActionCd(permittedActionCd, 'Submit', 'SUBMIT');
186         this.checkPermittedActionCd(permittedActionCd, 'Resubmit', 'RESUBMIT');
187         this.checkPermittedActionCd(permittedActionCd, 'Update', 'UPDATE');
188         this.checkPermittedActionCd(permittedActionCd, 'Stop', 'STOP');
189         this.checkPermittedActionCd(permittedActionCd, 'Restart', 'RESTART');
190         this.checkPermittedActionCd(permittedActionCd, 'Delete', 'DELETE');
191         this.checkPermittedActionCd(permittedActionCd, 'Deploy', 'DEPLOY');
192         this.checkPermittedActionCd(permittedActionCd, 'UnDeploy', 'UNDEPLOY');
193
194     };        
195  }]);