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.
23 app.directive('opentext', function ($compile, dialogs, $rootScope){
24 console.log("//////////opentext");
27 link: function(scope,element,attrs){
30 element.bind("click", function(){
33 if(attrs.ngModel=='decisionIdentifier.textualInformation.testCaseDescription'){
35 $rootScope.textAreaData = scope.decisionIdentifier.textualInformation.testCaseDescription;
36 $rootScope.textAreaTitle = 'Test Case Description';
37 var dlg = dialogs.create('partials/portfolios/text_area_modal.html','textAreaCtrl',{},{size:'sm',keyboard: true,backdrop: 'static'});
39 dlg.result.then(function(name){
40 console.log("dlg.result");
41 scope.decisionIdentifier.textualInformation.testCaseDescription = $rootScope.textAreaData;
43 scope.decisionIdentifier.textualInformation.testCaseDescription = $rootScope.textAreaData;
46 }else if(attrs.ngModel=='decisionIdentifier.textualInformation.testStepDescription'){
48 $rootScope.textAreaData = scope.decisionIdentifier.textualInformation.testStepDescription;
49 $rootScope.textAreaTitle = 'Test Step Description';
50 var dlg = dialogs.create('partials/portfolios/text_area_modal.html','textAreaCtrl',{},{size:'sm',keyboard: true,backdrop: 'static'});
52 dlg.result.then(function(name){
53 console.log("dlg.result");
54 scope.decisionIdentifier.textualInformation.testStepDescription = $rootScope.textAreaData;
56 scope.decisionIdentifier.textualInformation.testStepDescription = $rootScope.textAreaData;
59 }else if(attrs.ngModel=='decisionIdentifier.textualInformation.expectedResult'){
61 $rootScope.textAreaData = scope.decisionIdentifier.textualInformation.expectedResult;
62 $rootScope.textAreaTitle = 'Expected Result';
64 var dlg = dialogs.create('partials/portfolios/text_area_modal.html','textAreaCtrl',{},{size:'sm',keyboard: true,backdrop: 'static'});
65 dlg.result.then(function(name){
66 console.log("dlg.result");
67 scope.decisionIdentifier.textualInformation.expectedResult = $rootScope.textAreaData;
69 scope.decisionIdentifier.textualInformation.expectedResult = $rootScope.textAreaData;
72 }else if(attrs.ngModel=='pathDetails.textualInformation.testPathDescription'){
74 if(scope.pathDetails.textualInformation==null){
75 scope.pathDetails.textualInformation = {};
76 scope.pathDetails.textualInformation.testPathDescription = '';
78 $rootScope.textAreaData = scope.pathDetails.textualInformation.testPathDescription;
79 $rootScope.textAreaTitle = 'Test Path Description';
80 var dlg = dialogs.create('partials/portfolios/text_area_modal.html','textAreaCtrl',{},{size:'sm',keyboard: true,backdrop: 'static'});
82 dlg.result.then(function(name){
83 console.log("dlg.result");
84 scope.pathDetails.textualInformation.testPathDescription = $rootScope.textAreaData;
86 scope.decisionIdentifier.textualInformation.testPathDescription = $rootScope.textAreaData;
89 }else if(attrs.ngModel=='runtimePythonScript.inputParams'){
91 $rootScope.textAreaData = scope.runtimePythonScript.inputParams;
92 $rootScope.textAreaTitle = 'Input Parameter';
93 var dlg = dialogs.create('partials/portfolios/text_area_modal.html','textAreaCtrl',{},{size:'sm',keyboard: true,backdrop: 'static'});
95 dlg.result.then(function(name){
97 scope.runtimePythonScript.inputParams = $rootScope.textAreaData;
99 scope.runtimePythonScript.inputParams = $rootScope.textAreaData;
109 app.directive('inputInfoPropertyClass', function ($compile) {
110 console.log("inputInfoPropertyClass");
114 link: function(scope,element,attrs){
116 var elementHTML = '';
117 scope.sourceExplorer = 'PE';
118 angular.forEach(scope.infoType.schemaElements, function(value, key){
119 console.log("schemaElement");
121 scope.schemaElement = value;
123 if(scope.schemaElement.complexType != null){
124 if(scope.currentElementName == ''){
125 scope.currentElementName = scope.schemaElement.complexType.name;
128 scope.ParentKey = scope.parentName + '_' + scope.currentElementName;
129 if(scope.schemaElement.repeatableHierarchicalPrefix != null){
130 scope.ParentKey = scope.ParentKey + scope.schemaElement.repeatableHierarchicalPrefix;
132 scope.showUTMViewMsgHeader = true;
133 scope.parElement = scope.schemaElement;
134 scope.tableStyle = 'table-level' + scope.heirarchyLevel + '-tree';
135 scope.tdLabelStyle = 'td-level' + scope.heirarchyLevel + '-label-tree';
136 scope.heirLevel = scope.heirarchyLevel;
138 elementHTML = elementHTML + '<div ng-show="schemaElement.complexType != null">';
139 elementHTML = elementHTML + '<table class="{{tableStyle}}"> <tr>';
140 elementHTML = elementHTML + '<td class="{{tdLabelStyle}}">';
141 elementHTML = elementHTML + '<span class="pull-left" ng-click="showUTMViewMsgHeader=!showUTMViewMsgHeader">';
142 elementHTML = elementHTML + '<i ng-class="showUTMViewMsgHeader == true ?\'fa fa-plus-circle\':\'fa fa-minus-circle\'"></i>';
143 elementHTML = elementHTML + '</span>';
144 elementHTML = elementHTML + '<b>{{currentElementName}}</b>';
145 elementHTML = elementHTML + '</td>';
146 elementHTML = elementHTML + '</tr></table>';
147 elementHTML = elementHTML + '<div style="margin-left: 10px" ng-class="{hidden:showUTMViewMsgHeader,chaldean:showUTMViewMsgHeader}">';
148 elementHTML = elementHTML + '<div class="inputInfoPropertyClassMember" style="margin-left: 10px" ng-repeat="schemaElement in schemaElement.elements"></div>';
149 elementHTML = elementHTML + '</div>';
150 elementHTML = elementHTML + '</div>';
151 var x = angular.element(elementHTML);
161 app.directive('inputInfoPropertyClassMember', function ($compile) {
162 console.log("inputInfoPropertyClassMember");
166 link: function(scope,element,attrs){
168 var elementHTML = '';
170 scope.currentElementName=scope.objectName;
171 scope.parentName=scope.ParentKey;
172 scope.parentElement=scope.parElement;
173 scope.heirarchyLevel = scope.heirLevel + 1;
175 if(scope.schemaElement.element.name != null){
177 scope.elementKey=scope.parentName + '_' + scope.schemaElement.element.name;
178 if(scope.schemaElement.repeatableHierarchicalPrefix != null){
179 scope.elementKey = scope.elementKey + scope.schemaElement.repeatableHierarchicalPrefix;
181 scope.tableStyle='table-level' + scope.heirarchyLevel + '-tree';
182 scope.tdLabelStyle='td-level' + scope.heirarchyLevel +'-label-tree';
184 if(scope.schemaElement.type.complexType != null){
185 scope.showUTMViewMsgHeader = false;
188 scope.showUTMViewMsgHeader = true;
192 elementHTML = elementHTML + '<div ng-show="schemaElement.element.name != null">';
193 elementHTML = elementHTML + '<div ng-show = "schemaElement.type.complexType != null || utmSchemaExts[elementKey].checked">';
194 elementHTML = elementHTML + '<table class="{{tableStyle}}"> ';
195 elementHTML = elementHTML + '<tr>';
196 elementHTML = elementHTML + '<td style="text-align: left;vertical-align: top;" class="{{tdLabelStyle}}">';
197 elementHTML = elementHTML + '<span class="pull-left" ng-click="showUTMViewMsgHeader=!showUTMViewMsgHeader">';
198 elementHTML = elementHTML + '<i expandable ng-class="showUTMViewMsgHeader == true ?\'fa fa-minus-circle\':\'fa fa-plus-circle\'"></i>';
199 elementHTML = elementHTML + '{{schemaElement.element.name}} ';
200 elementHTML = elementHTML + '';
201 elementHTML = elementHTML + '';
202 elementHTML = elementHTML + '';
203 elementHTML = elementHTML + '';
204 elementHTML = elementHTML + '</span>';
205 elementHTML = elementHTML + '</td>';
209 elementHTML = elementHTML + '<td style="width: 70px"> </td>';
210 elementHTML = elementHTML + '<td style="width: 40px; float: left;">';
211 if(scope.schemaElement.type.complexType == null){
212 elementHTML = elementHTML + '<div ng-show="schemaElement.type.complexType == null">';
213 elementHTML = elementHTML + '<div ng-repeat="object in filteredObjects = (schemaElement.type.restriction.minExclusivesAndMinInclusivesAndMaxExclusives | filter: {name : \'enumeration\'})"></div>';
214 elementHTML = elementHTML + '<div ng-if="filteredObjects.length > 0" class="defaultSelect">';
215 elementHTML = elementHTML + '<input type="text" class="defaultVal" id="{{elementKey}}" ng-model="decisionIdentifier.elementValues[elementKey]" style="width:150px;"/>';
216 elementHTML = elementHTML + '<select style="width: 170px; id=;height: 20px;" id="{{elementKey}}" onchange="this.previousElementSibling.value=this.value;" ng-model="decisionIdentifier.elementValues[elementKey]" ';
217 elementHTML = elementHTML + 'ng-options="filteredObject.value.value as filteredObject.value.value for filteredObject in filteredObjects">';
218 elementHTML = elementHTML + '<option value=""></option>';
219 elementHTML = elementHTML + '</select>';
220 elementHTML = elementHTML + '</div>';
221 elementHTML = elementHTML + '<div ng-if="filteredObjects == null || filteredObjects.length == 0">';
222 elementHTML = elementHTML + '<div ng-if="schemaElement.type != null && schemaElement.type==\'boolean\'">';
223 elementHTML = elementHTML + '<div style="display: inline-flex">';
224 elementHTML = elementHTML + '<input type="radio" value="true" ng-model="decisionIdentifier.elementValues[elementKey]">True <span style="width:20px;"></span>';
225 elementHTML = elementHTML + '<input type="radio" value="false" ng-model="decisionIdentifier.elementValues[elementKey]">False';
226 elementHTML = elementHTML + '';
227 elementHTML = elementHTML + '';
228 elementHTML = elementHTML + '</div>';
229 elementHTML = elementHTML + '</div>';
230 elementHTML = elementHTML + '<div ng-if="schemaElement.type == null || schemaElement.type != \'boolean\'">';
231 elementHTML = elementHTML + '<input type="text" id="{{elementKey}}" style="width: 170px;" class="defaultVal" ng-model="decisionIdentifier.elementValues[elementKey]"/>';
232 elementHTML = elementHTML + '';
233 elementHTML = elementHTML + '</div>';
234 elementHTML = elementHTML + '';
235 elementHTML = elementHTML + '</div>';
236 elementHTML = elementHTML + '</div>';
239 elementHTML = elementHTML + '</td>';
240 elementHTML = elementHTML + '</tr>';
241 elementHTML = elementHTML + '<br/>';
242 elementHTML = elementHTML + '</table>';
246 elementHTML = elementHTML + '';
247 elementHTML = elementHTML + '';
248 elementHTML = elementHTML + '';
249 elementHTML = elementHTML + '</div>';
250 elementHTML = elementHTML + '</div>';
252 var x = angular.element(elementHTML);
257 if(scope.schemaElement.type.complexType != null){
258 var elementHTML2 = '<div ng-show="schemaElement.type.complexType != null">'
259 elementHTML2 = elementHTML2 + '<div ng-init="parKey=parentName + \'_\' + schemaElement.element.name + (schemaElement.repeatableHierarchicalPrefix != null ? schemaElement.repeatableHierarchicalPrefix : \'\'); heirLevel=heirarchyLevel; parElement=schemaElement; ParentKey=ParentKey+\'_\'+schemaElement.element.name + (schemaElement.repeatableHierarchicalPrefix != null ? schemaElement.repeatableHierarchicalPrefix : \'\')">'
260 elementHTML2 = elementHTML2 + '<div style="margin-left: 10px" ng-class="{hidden:!showUTMViewMsgHeader,chaldean:!showUTMViewMsgHeader}">'
261 elementHTML2 = elementHTML2 + '<div class="{{sourceExplorer+\'_\'+parKey}}"></div>'
262 elementHTML2 = elementHTML2 + '</div>'
263 elementHTML2 = elementHTML2 + '</div>'
264 elementHTML2 = elementHTML2 + '</div>';
265 var x = angular.element(elementHTML2);
276 app.controller('propertyExplorerCtrl',['$scope','$rootScope','$location','$modalInstance','dialogs','Datafactory',function($scope, $rootScope, $location, $modalInstance, dialogs, Datafactory) {
277 console.log("propertyExplorerCtrl");
278 $rootScope.bpmnElementName;
279 $rootScope.pathIdentifiers;
280 $scope.propertyExplorerObject = {};
282 $scope.pathDetailsList = [];
283 $scope.utmSchemaExts = {};
286 $scope.close = function(){
287 console.log("close");
288 $modalInstance.close();
291 $rootScope.initPropertyExplorer = function() {
292 console.log("initPropertyExplorer");
293 $scope.pathDetailsList = list_model_path_details[selected_model];
294 if(list_model_schema_extensions[selected_model] != null && list_model_schema_extensions[selected_model].utmSchemaExtentionMap != null) {
295 $scope.utmSchemaExts = list_model_schema_extensions[selected_model].utmSchemaExtentionMap;
298 $(".resize-none").each(function() {
299 console.log("resize-none");
300 $(this).val($(this).val().replace(/,/g, "\n"));
303 if($scope.pathDetailsList == null)
304 $scope.pathDetailsList = [];
306 if ($rootScope.bpmnElementName != null) {
307 if ($scope.pathDetailsList != null && $scope.pathDetailsList.length > 0) {
308 var isPathDetailsAvailable = false;
309 for (var i = 0; i < $scope.pathDetailsList.length; i++) {
310 if ($scope.pathDetailsList[i].conditionalNode == $rootScope.bpmnElementName) {
311 isPathDetailsAvailable = true;
315 if (!isPathDetailsAvailable) {
316 $scope.addPathDetails();
318 } else if ($scope.pathDetailsList == null) {
319 $scope.addPathDetails();
324 $scope.addPathDetails = function() {
325 console.log("addPathDetails");
326 $scope.pathDetails = {};
327 $scope.pathDetails.conditionalNode = $rootScope.bpmnElementName;
328 $scope.pathDetailsList.push($scope.pathDetails);
329 $scope.addDecisionIdentifier($scope.pathDetails);
330 list_model_path_details[selected_model] = $scope.pathDetailsList;
335 $scope.addDecisionIdentifier = function(pathDtls) {
336 console.log("addDecisionIdentifier");
337 $scope.decisionIdentifier = {};
338 $scope.decisionIdentifier.textualInformation={};
339 //$scope.decisionIdentifier.textualInformation.use=true;
340 if (pathDtls.decisionIdentifiers != null) {
341 if(angular.isUndefined($scope.decisionIdentifier.textualInformation.use))
342 $scope.decisionIdentifier.textualInformation.use = true;
343 pathDtls.decisionIdentifiers.push($scope.decisionIdentifier);
345 pathDtls.decisionIdentifiers = [];
346 if(angular.isUndefined($scope.decisionIdentifier.textualInformation.use))
347 $scope.decisionIdentifier.textualInformation.use = true;
348 pathDtls.decisionIdentifiers.push($scope.decisionIdentifier);
352 $scope.isElementCheckedinExplorer = function(elementId) {
353 console.log("isElementCheckedinExplorer");
354 console.log("Enter into property explorer");
355 if (elementId.indexOf("_decisionValue") != -1) {
356 var elementIdSplit = elementId.split("_decisionValue");
357 var elementCheckBoxId = elementIdSplit[0] + "_checkbox";
358 var elementCheckBoxValue = document.getElementById(elementCheckBoxId);
359 if (elementCheckBoxValue != "" && elementCheckBoxValue.checked) {
367 $scope.moreDecisions = function(pathDtls) {
368 console.log("moreDecisions");
369 //alert("PropertyExplorerCtrl entering moreDecisions");
370 $scope.addDecisionIdentifier(pathDtls);
371 //alert("PropertyExplorerCtrl exiting moreDecisions");
374 $scope.morePaths = function() {
375 console.log("morePaths");
377 $scope.pathDetailsList = list_model_path_details[selected_model];
378 if ($scope.pathDetailsList == null){
379 if($rootScope.pathIdentifiers.length>0){
380 $scope.pathDetailsList = [];
381 $scope.addPathDetails();
384 dialogs.error('Error','Please define atleast 1 path in model to proceed.');
388 for(var i=0;i<$scope.pathDetailsList.length;i++){
389 if($rootScope.bpmnElementName == $scope.pathDetailsList[i].conditionalNode){
393 if(elementCount < $rootScope.pathIdentifiers.length)
394 $scope.addPathDetails();
396 dialogs.error('Error','The number of paths defined for this conditional node cannot be more than the number of Path Identifiers defined in the Model.');
400 $rootScope.initPropertyExplorer();
402 $scope.sendDbData = function(dbToolRequestList){
403 console.log("sendDbData");
404 if(dbToolRequestList!=null){
405 Datafactory.setDbDataList(dbToolRequestList);
408 dbToolRequestList=[];
409 Datafactory.setDbDataList(dbToolRequestList);
413 $scope.sendAssertData = function(xmlAsserterRequest){
414 console.log("sendAssertData");
415 if(xmlAsserterRequest!=null){
416 Datafactory.setXmlAsserter(xmlAsserterRequest);
419 xmlAsserterRequest={};
420 Datafactory.setXmlAsserter(xmlAsserterRequest);
425 $scope.sendRuntimePythonScriptData = function(pathDtls){
426 console.log("sendRuntimePythonScriptData");
428 Datafactory.setRuntimePythonScriptList(pathDtls);
432 Datafactory.setRuntimePythonScriptList(pathDtls);