2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights
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
12 * http://www.apache.org/licenses/LICENSE-2.0
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.
24 app.service('cldsModelService', ['alertService','$http', '$q', function (alertService,$http, $q) {
26 function checkIfElementType(name){
27 //This will open the methods located in the app.js
29 'stringmatch': StringMatchWindow,
31 'policy': PolicyWindow,
32 'collector': CollectorsWindow,
33 'vescollector': VesCollectorWindow,
34 'holmes': HolmesWindow,
37 key = name.split('_')[0].toLowerCase()
43 this.toggleDeploy = function (uiAction, modelName, controlNamePrefixIn,
44 bpmnTextIn, propTextIn, svgXmlIn, templateName, typeID, controlNameUuid, modelEventService, deploymentId) {
48 var action = uiAction.toLowerCase();
49 var deployUrl = "/restservices/clds/v1/clds/"+action+"/"+modelName;
50 var requestData = {name: modelName,
51 controlNamePrefix: controlNamePrefixIn,
55 templateName:templateName,
57 controlNameUuid: controlNameUuid,
58 event:modelEventService,
59 deploymentId:deploymentId};
61 $http.put(deployUrl,requestData)
62 .success(function(data){
63 deploymentId = data.deploymentId;
65 alertService.alertMessage("Action Successful:"+uiAction,1)
67 .error(function(data){
68 alertService.alertMessage("Action Failure:"+uiAction,2)
69 def.reject("Save Model not successful");
75 this.getASDCServices = function(){
81 var svcUrl = "/restservices/clds/v1/clds/sdc/services/";
84 .success(function(data){
89 .error(function(data){
90 def.reject("sdc Services not found");
98 this.getASDCService = function(uuid){
101 var def = $q.defer();
104 var svcUrl = "/restservices/clds/v1/clds/sdc/services/" + uuid;
107 .success(function(data){
111 .error(function(data){
112 def.reject("SDC service not found");
117 this.getModel = function(modelName){
120 var def = $q.defer();
122 var svcUrl = "/restservices/clds/v1/clds/model/" + modelName;
125 .success(function(data){
129 .error(function(data){
130 def.reject("Open Model not successful");
135 this.getSavedModel=function(){
137 var def = $q.defer();
140 var svcUrl = "/restservices/clds/v1/clds/model-names";
143 .success(function(data){
147 .error(function(data){
148 def.reject("Open Model not successful");
153 this.setModel = function(modelName, controlNamePrefixIn, bpmnTextIn, propTextIn){
156 var def = $q.defer();
158 var svcUrl = "/restservices/clds/v1/clds/model/" + modelName;
159 var svcRequest = {name: modelName, controlNamePrefix: controlNamePrefixIn, bpmnText: bpmnTextIn, propText: propTextIn};
162 $http.put(svcUrl, svcRequest)
163 .success(function(data){
167 .error(function(data){
168 def.reject("Save Model not successful");
173 this.processAction = function(uiAction, modelName, controlNamePrefixIn, bpmnTextIn, propTextIn,svgXmlIn,templateName,typeID,deploymentId){
176 var def = $q.defer();
179 //console.log(svgXmlIn);
180 var svcUrl = "/restservices/clds/v1/clds/";
181 var svcAction = uiAction.toLowerCase();
182 if ( svcAction == "save" || svcAction == "refresh" ) {
183 svcUrl = svcUrl + "model/" + modelName;
184 } else if ( svcAction == "test" ) {
185 svcUrl = svcUrl + "action/submit/" + modelName + "?test=true";
187 svcUrl = svcUrl + "action/" + svcAction + "/" + modelName;
190 var svcRequest = {name: modelName, controlNamePrefix: controlNamePrefixIn, bpmnText: bpmnTextIn, propText: propTextIn, imageText:svgXmlIn, templateName:templateName, typeId:typeID, deploymentId:deploymentId};
192 $http.put(svcUrl, svcRequest)
193 .success(function(data){
195 alertService.alertMessage("Action Successful:"+uiAction,1)
198 .error(function(data){
199 alertService.alertMessage("Action Failure:"+uiAction,2);
200 //def alertService.alertMessage("Action Successful:"+uiAction,1);
201 def.reject(svcAction + " not successful");
206 this.manageAction = function(modelName,typeId,typeName){
207 var def = $q.defer();
211 url: "/restservices/clds/v1/clds/getDispatcherInfo",
213 params:{model:modelName,typeId:typeId,typeName:typeName}
216 .success(function(data){
220 .error(function(data){
221 def.reject("manage action not successful");
227 this.checkPermittedActionCd = function(permittedActionCd, menuText, actionCd){
228 if ( permittedActionCd.indexOf(actionCd) > -1 ) {
229 document.getElementById(menuText).classList.remove('ThisLink');
231 document.getElementById(menuText).classList.add('ThisLink');
234 this.processActionResponse = function(modelName, pars){
236 // populate control name (prefix and uuid here)
237 var controlNamePrefix = pars.controlNamePrefix;
238 var controlNameUuid = pars.controlNameUuid;
239 deploymentId = pars.deploymentId;
240 var modelEventService = pars.modelEventService;
241 typeID = pars.typeId;
243 var headerText = "Closed Loop Modeler - " + modelName;
244 if ( controlNameUuid != null ) {
245 var actionCd = pars.event.actionCd;
246 var actionStateCd = pars.event.actionStateCd;
247 //headerText = headerText + " [" + controlNamePrefix + controlNameUuid + "] [" + actionCd + ":" + actionStateCd + "]";
248 headerText = headerText + " [" + controlNamePrefix + controlNameUuid + "]";
251 document.getElementById("modeler_name").textContent = headerText;
252 document.getElementById("templa_name").textContent = ("Template Used - " + selected_template);
254 disableBPMNAddSVG(pars);
255 this.enableDisableMenuOptions(pars);
260 this.processRefresh=function(pars){
261 typeID = pars.typeId;
262 deploymentId = pars.deploymentId;
264 this.enableDisableMenuOptions(pars);
266 function setStatus(pars){
268 var status = pars.status;
269 // apply color to status
270 var statusColor='white';
271 if(status.trim()==="DESIGN"){
273 } else if(status.trim()==="DISTRIBUTED"){
275 } else if(status.trim()==="ACTIVE"){
277 } else if(status.trim()==="STOPPED"){
279 } else if(status.trim()==="DELETING"){
281 } else if(status.trim()==="ERROR"){
283 } else if(status.trim()==="UNKNOWN"){
290 var statusMsg='<span style="background-color:' + statusColor + ';-moz-border-radius: 50px; -webkit-border-radius: 50px; border-radius: 50px;"> '+status+' </span>';
292 if ($("#status_clds").length>=1)
293 $("#status_clds").remove();
294 $("#activity_modeler").append('<span id="status_clds" style="position: absolute; left: 61%;top: 51px; font-size:20px;">Status: '+statusMsg+'</span>');
298 function disableBPMNAddSVG(pars){
300 var svg=pars.imageText.substring(pars.imageText.indexOf("<svg"))
301 if($("#svgContainer").length>0)
302 $("#svgContainer").remove();
303 $("#js-canvas").append("<span id=\"svgContainer\">"+svg+"</span>");
304 /* added code for height width viewBox */
305 $("#svgContainer svg").removeAttr("height");
306 $("#svgContainer svg").removeAttr('viewBox');
307 $("#svgContainer svg").removeAttr('width');
309 $("#svgContainer svg").attr('width','100%');
310 $("#svgContainer svg").attr('height','100%');
312 $("#svgContainer").click(function(event){
313 //console.log($(event.target).parent().html())
314 //console.log($($(event.target).parent()).attr("data-element-id"))
315 var name=$($(event.target).parent()).attr("data-element-id")
316 lastElementSelected=$($(event.target).parent()).attr("data-element-id")
317 checkIfElementType(name)
320 $(".bjs-container").attr("hidden","");
322 this.enableDisableMenuOptions=function(pars){
324 var permittedActionCd = pars.permittedActionCd;
326 //dropdown options - always true
327 document.getElementById('Open Template').classList.remove('ThisLink');
328 document.getElementById('Open CL').classList.remove('ThisLink');
329 document.getElementById('Save Template').classList.add('ThisLink');
330 document.getElementById('Template Properties').classList.add('ThisLink');
331 document.getElementById('Revert Template Changes').classList.add('ThisLink');
332 document.getElementById('Close Template').classList.add('ThisLink');
334 if (readOnly||readMOnly){
335 //enable model options
336 document.getElementById('Properties CL').classList.remove('ThisLink');
337 document.getElementById('Close Model').classList.remove('ThisLink');
339 //disable models options
340 document.getElementById('Create CL').classList.add('ThisLink');
341 document.getElementById('Save CL').classList.add('ThisLink');
342 document.getElementById('Revert Model Changes').classList.add('ThisLink');
344 // enable menu options
345 document.getElementById('Create CL').classList.remove('ThisLink');
346 document.getElementById('Save CL').classList.remove('ThisLink');
347 document.getElementById('Properties CL').classList.remove('ThisLink');
348 document.getElementById('Revert Model Changes').classList.remove('ThisLink');
349 document.getElementById('Close Model').classList.remove('ThisLink');
352 document.getElementById('Validation Test').classList.remove('ThisLink');
353 document.getElementById('Refresh Status').classList.remove('ThisLink');
354 document.getElementById('Refresh ASDC').classList.remove('ThisLink');
357 document.getElementById('Create Template').classList.add('ThisLink');
359 document.getElementById('Create Template').classList.remove('ThisLink');
362 // enable/disable menu options based on permittedActionCd list
363 this.checkPermittedActionCd(permittedActionCd, 'Validation Test', 'TEST');
364 this.checkPermittedActionCd(permittedActionCd, 'Submit', 'SUBMIT');
365 this.checkPermittedActionCd(permittedActionCd, 'Resubmit', 'RESUBMIT');
366 this.checkPermittedActionCd(permittedActionCd, 'Update', 'UPDATE');
367 this.checkPermittedActionCd(permittedActionCd, 'Stop', 'STOP');
368 this.checkPermittedActionCd(permittedActionCd, 'Restart', 'RESTART');
369 this.checkPermittedActionCd(permittedActionCd, 'Delete', 'DELETE');
370 this.checkPermittedActionCd(permittedActionCd, 'Deploy', 'DEPLOY');
371 this.checkPermittedActionCd(permittedActionCd, 'UnDeploy', 'UNDEPLOY');
376 this.getASDCServices().then(function(pars){
378 var services=pars.service;
379 asdc_Services=services