2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017-2018 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 * ===================================================================
30 function(alertService, $http, $q) {
32 function checkIfElementType(name) {
34 // This will open the methods located in the app.js
35 if (undefined == name) {
40 'policy' : PolicyWindow,
41 'vescollector' : VesCollectorWindow,
42 'holmes' : HolmesWindow,
44 key = name.split('_')[0].toLowerCase()
49 function handleQueryToBackend(def, svcAction, svcUrl, svcPayload) {
51 $http.put(svcUrl, svcPayload).success(
55 if (typeof data.statusCodeValue === 'undefined'
56 || data.statusCodeValue === 200) {
57 alertService.alertMessage(
58 "Action Successful: " + svcAction, 1)
60 if (typeof data.body !== 'undefined') {
61 alertService.alertMessage("Action Failure: "
62 + svcAction + ", " + data.body.errorMessageForUi, 2);
64 alertService.alertMessage("Action Failure: "
67 def.reject(svcAction + " not successful");
73 if (typeof data.body !== 'undefined') {
74 alertService.alertMessage("Action Failure: " + svcAction
75 + ", " + data.body.errorMessageForUi, 2);
78 .alertMessage("Action Failure: " + svcAction, 2);
80 def.reject(svcAction + " not successful");
83 this.toggleDeploy = function(uiAction, modelName, controlNamePrefixIn,
84 bpmnTextIn, propTextIn, svgXmlIn,
85 templateName, typeID, controlNameUuid,
86 modelEventService, deploymentId) {
90 var action = uiAction.toLowerCase();
91 var deployUrl = "/restservices/clds/v1/clds/" + action + "/"
95 controlNamePrefix : controlNamePrefixIn,
96 bpmnText : bpmnTextIn,
97 propText : propTextIn,
99 templateName : templateName,
101 controlNameUuid : controlNameUuid,
102 event : modelEventService,
103 deploymentId : deploymentId
105 handleQueryToBackend(def, action, deployUrl, requestData);
108 this.getASDCServices = function() {
110 var def = $q.defer();
112 var svcUrl = "/restservices/clds/v1/clds/sdc/services/";
113 $http.get(svcUrl).success(function(data) {
116 }).error(function(data) {
118 def.reject("sdc Services not found");
122 this.getASDCService = function(uuid) {
124 var def = $q.defer();
126 var svcUrl = "/restservices/clds/v1/clds/sdc/services/" + uuid;
127 $http.get(svcUrl).success(function(data) {
130 }).error(function(data) {
132 def.reject("SDC service not found");
136 this.getModel = function(modelName) {
138 var def = $q.defer();
140 var svcUrl = "/restservices/clds/v1/clds/model/" + modelName;
141 $http.get(svcUrl).success(function(data) {
144 }).error(function(data) {
146 def.reject("Open Model not successful");
150 this.getSavedModel = function() {
152 var def = $q.defer();
154 var svcUrl = "/restservices/clds/v1/clds/model-names";
155 $http.get(svcUrl).success(function(data) {
158 }).error(function(data) {
160 def.reject("Open Model not successful");
164 this.setModel = function(modelName, controlNamePrefixIn, bpmnTextIn,
167 var def = $q.defer();
169 var svcUrl = "/restservices/clds/v1/clds/model/" + modelName;
172 controlNamePrefix : controlNamePrefixIn,
173 bpmnText : bpmnTextIn,
174 propText : propTextIn
176 $http.put(svcUrl, svcRequest).success(function(data) {
179 }).error(function(data) {
181 def.reject("Save Model not successful");
185 this.processAction = function(uiAction, modelName, controlNamePrefixIn,
186 bpmnTextIn, propTextIn, svgXmlIn,
187 templateName, typeID, deploymentId) {
189 var def = $q.defer();
191 // console.log(svgXmlIn);
192 var svcUrl = "/restservices/clds/v1/clds/";
193 var svcAction = uiAction.toLowerCase();
194 if (svcAction == "save" || svcAction == "refresh") {
195 svcUrl = svcUrl + "model/" + modelName;
196 } else if (svcAction == "test") {
197 svcUrl = svcUrl + "action/submit/" + modelName + "?test=true";
199 svcUrl = svcUrl + "action/" + svcAction + "/" + modelName;
203 controlNamePrefix : controlNamePrefixIn,
204 bpmnText : bpmnTextIn,
205 propText : propTextIn,
206 imageText : svgXmlIn,
207 templateName : templateName,
209 deploymentId : deploymentId
211 handleQueryToBackend(def, svcAction, svcUrl, svcRequest);
214 this.manageAction = function(modelName, typeId, typeName) {
216 var def = $q.defer();
219 url : "/restservices/clds/v1/clds/getDispatcherInfo",
227 $http(config).success(function(data) {
230 }).error(function(data) {
232 def.reject("manage action not successful");
236 this.checkPermittedActionCd = function(permittedActionCd, menuText,
239 if (permittedActionCd.indexOf(actionCd) > -1) {
240 document.getElementById(menuText).classList.remove('ThisLink');
242 document.getElementById(menuText).classList.add('ThisLink');
245 this.processActionResponse = function(modelName, pars) {
247 // populate control name (prefix and uuid here)
248 var controlNamePrefix = pars.controlNamePrefix;
249 var controlNameUuid = pars.controlNameUuid;
250 deploymentId = pars.deploymentId;
251 var modelEventService = pars.modelEventService;
252 typeID = pars.typeId;
253 var headerText = "Closed Loop Modeler - " + modelName;
254 if (controlNameUuid != null) {
255 var actionCd = pars.event.actionCd;
256 var actionStateCd = pars.event.actionStateCd;
257 headerText = headerText + " [" + controlNamePrefix
258 + controlNameUuid + "]";
260 document.getElementById("modeler_name").textContent = headerText;
261 document.getElementById("templa_name").textContent = ("Template Used - " + selected_template);
264 this.enableDisableMenuOptions(pars);
266 this.processRefresh = function(pars) {
269 if (typeof pars.body !== 'undefined') {
272 typeID = newPars.typeId;
273 deploymentId = newPars.deploymentId;
275 this.enableDisableMenuOptions(newPars);
276 elementMap = JSON.parse(newPars.propText);
278 function setStatus(pars) {
280 var status = pars.status;
281 // apply color to status
282 var statusColor = 'white';
283 if (status.trim() === "DESIGN") {
285 } else if (status.trim() === "DISTRIBUTED") {
287 } else if (status.trim() === "ACTIVE") {
288 statusColor = 'green'
289 } else if (status.trim() === "STOPPED") {
291 } else if (status.trim() === "DELETING") {
293 } else if (status.trim() === "ERROR") {
294 statusColor = 'orange'
295 } else if (status.trim() === "UNKNOWN") {
300 var statusMsg = '<span style="background-color:'
302 + ';-moz-border-radius: 50px; -webkit-border-radius: 50px; border-radius: 50px;"> '
303 + status + ' </span>';
305 if ($("#status_clds").length >= 1)
306 $("#status_clds").remove();
307 $("#activity_modeler")
309 '<span id="status_clds" style="position: absolute; left: 61%;top: 151px; font-size:20px;">Status: '
310 + statusMsg + '</span>');
312 function addSVG(pars) {
314 var svg = pars.imageText.substring(pars.imageText.indexOf("<svg"))
315 if ($("#svgContainer").length > 0)
316 $("#svgContainer").remove();
317 $("#js-canvas").append(
318 "<span id=\"svgContainer\">" + svg + "</span>");
319 /* added code for height width viewBox */
320 $("#svgContainer svg").removeAttr("height");
321 $("#svgContainer svg").removeAttr('viewBox');
322 $("#svgContainer svg").removeAttr('width');
323 $("#svgContainer svg").attr('width', '100%');
324 $("#svgContainer svg").attr('height', '100%');
325 $("#svgContainer").click(
328 // console.log($(event.target).parent().html())
329 // console.log($($(event.target).parent()).attr("data-element-id"))
330 var name = $($(event.target).parent()).attr("data-element-id")
331 lastElementSelected = $($(event.target).parent()).attr(
333 checkIfElementType(name)
336 this.enableDisableMenuOptions = function(pars) {
338 var permittedActionCd = pars.permittedActionCd;
339 // dropdown options - always true
340 document.getElementById('Open CL').classList.remove('ThisLink');
342 // enable model options
343 document.getElementById('Properties CL').classList
345 document.getElementById('Close Model').classList
347 // disable models options
348 document.getElementById('Create CL').classList.add('ThisLink');
349 document.getElementById('Save CL').classList.add('ThisLink');
350 document.getElementById('Revert Model Changes').classList
353 // enable menu options
354 document.getElementById('Create CL').classList
356 document.getElementById('Save CL').classList.remove('ThisLink');
357 document.getElementById('Properties CL').classList
359 document.getElementById('Revert Model Changes').classList
361 document.getElementById('Close Model').classList
363 document.getElementById('Validation Test').classList
365 document.getElementById('Refresh Status').classList
367 document.getElementById('Refresh ASDC').classList
370 // enable/disable menu options based on permittedActionCd
372 this.checkPermittedActionCd(permittedActionCd, 'Validation Test',
374 this.checkPermittedActionCd(permittedActionCd, 'Submit', 'SUBMIT');
375 this.checkPermittedActionCd(permittedActionCd, 'Resubmit',
377 this.checkPermittedActionCd(permittedActionCd, 'Update', 'UPDATE');
378 this.checkPermittedActionCd(permittedActionCd, 'Stop', 'STOP');
380 .checkPermittedActionCd(permittedActionCd, 'Restart', 'RESTART');
381 this.checkPermittedActionCd(permittedActionCd, 'Delete', 'DELETE');
382 this.checkPermittedActionCd(permittedActionCd, 'Deploy', 'DEPLOY');
383 this.checkPermittedActionCd(permittedActionCd, 'UnDeploy',
386 this.getASDCServices().then(function(pars) {
388 var obj = JSON.parse(pars);
389 var services = obj.service;
390 asdc_Services = services