[CLAMP-1] Initial ONAP CLAMP seed code commit
[clamp.git] / src / main / resources / META-INF / resources / designer / scripts / SetDefaultValueCtrl.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.directive('inputInfoDVClass', function ($compile) {
25     console.log("/////////////inputInfoDVClass");
26   return {
27       restrict: "C",
28       replace: true,
29       link: function(scope,element,attrs){
30         console.log("link");
31           var elementHTML = '';
32           scope.sourceExplorer = 'SDV';
33           angular.forEach(scope.infoType.schemaElements, function(value, key){
34             console.log("schemaElement");
35                   
36                   scope.schemaElement = value;
37                   
38                   if(scope.schemaElement.complexType != null){
39                           if(scope.currentElementName == ''){
40                                   scope.currentElementName = scope.schemaElement.complexType.name;
41                           }
42                           
43                           scope.ParentKey = scope.parentName + '_' + scope.currentElementName;
44                           if(scope.schemaElement.repeatableHierarchicalPrefix != null){
45                                   scope.ParentKey = scope.ParentKey + scope.schemaElement.repeatableHierarchicalPrefix; 
46                           }
47                           scope.parElement = scope.schemaElement;
48                           scope.tableStyle = 'table-level' + scope.heirarchyLevel + '-tree'; 
49                           scope.tdLabelStyle = 'td-level' + scope.heirarchyLevel + '-label-tree'; 
50                           scope.heirLevel = scope.heirarchyLevel;
51                           
52                           elementHTML = elementHTML + '<div ng-show="schemaElement.complexType != null">';
53                           elementHTML = elementHTML + '<table class="{{tableStyle}}"> <tr>';
54                           elementHTML = elementHTML + '<td class="{{tdLabelStyle}}">';
55                           elementHTML = elementHTML + '<span class="pull-left" ng-click="showUTMViewMsgHeader=!showUTMViewMsgHeader">';
56                           elementHTML = elementHTML + '<i ng-class="showUTMViewMsgHeader == true ?\'fa fa-plus-circle\':\'fa fa-minus-circle\'"></i>';
57                           elementHTML = elementHTML + '</span>';
58                           elementHTML = elementHTML + '<b>{{currentElementName}}</b>';
59                           elementHTML = elementHTML + '</td>';
60                           elementHTML = elementHTML + '</tr></table>';
61                           elementHTML = elementHTML + '<div style="margin-left: 10px" ng-class="{hidden:showUTMViewMsgHeader,chaldean:showUTMViewMsgHeader}">';
62                           elementHTML = elementHTML + '<div class="inputInfoDVClassMember" style="margin-left: 10px" ng-repeat="schemaElement in schemaElement.elements"></div>';
63                           elementHTML = elementHTML + '</div>';
64                           elementHTML = elementHTML + '</div>';
65                           var x = angular.element(elementHTML);
66                         element.append(x);
67                         $compile(x)(scope);
68                   }
69               });
70           
71       }
72   }
73 });
74
75 app.directive('inputInfoDVClassMember', function ($compile) {
76     console.log("inputInfoDVClassMember");
77   return {
78       restrict: "C",
79
80       link: function(scope,element,attrs){
81         console.log("link");
82           var elementHTML = '';
83           
84           scope.currentElementName=scope.objectName;
85           scope.parentName=scope.ParentKey; 
86           scope.parentElement=scope.parElement; 
87           scope.heirarchyLevel = scope.heirLevel + 1;
88           
89           if(scope.schemaElement.element.name != null){
90                   
91                   scope.elementKey=scope.parentName + '_' + scope.schemaElement.element.name;
92                   if(scope.schemaElement.repeatableHierarchicalPrefix != null){
93                           scope.elementKey = scope.elementKey + scope.schemaElement.repeatableHierarchicalPrefix;
94                   }
95                   scope.tableStyle='table-level' + scope.heirarchyLevel + '-tree'; 
96                   scope.tdLabelStyle='td-level' + scope.heirarchyLevel +'-label-tree';
97                   
98                   if(scope.schemaElement.type.complexType != null){
99                           scope.showUTMViewMsgHeader = false;
100                           
101                   }else{
102                           scope.showUTMViewMsgHeader = true;
103                           
104                   }
105                   
106                   elementHTML = elementHTML + '<div ng-show="schemaElement.element.name != null">';
107                   elementHTML = elementHTML + '<div id="elementKey">';
108                   //console.log(scope.utmSchemaExts);
109                   elementHTML = elementHTML + '<div ng-show = "schemaElement.type.complexType != null || utmSchemaExts[elementKey].checked">';
110                   elementHTML = elementHTML + '<table class="{{tableStyle}}"> ';
111                   elementHTML = elementHTML + '<tr>';
112                   elementHTML = elementHTML + '<td style="text-align: left;vertical-align: top;" class="{{tdLabelStyle}}">';
113                   elementHTML = elementHTML + '<span class="pull-left" ng-click="showUTMViewMsgHeader=!showUTMViewMsgHeader">';
114                   elementHTML = elementHTML + '<i expandable ng-class="showUTMViewMsgHeader == true ?\'fa fa-minus-circle\':\'fa fa-plus-circle\'"></i>';
115                   elementHTML = elementHTML + '{{schemaElement.element.name}}  ';
116                   elementHTML = elementHTML + '';
117                   elementHTML = elementHTML + '</span>';
118                   elementHTML = elementHTML + '</td>';
119                   
120                   elementHTML = elementHTML + '<td style="width: 70px"></td>';
121                   elementHTML = elementHTML + '<td style="width: 40px; float: left;">';
122                   if(scope.schemaElement.type.complexType == null){
123                           elementHTML = elementHTML + '<div ng-show="schemaElement.type.complexType == null">';
124                           elementHTML = elementHTML + '<div ng-repeat="object in filteredObjects = (schemaElement.type.restriction.minExclusivesAndMinInclusivesAndMaxExclusives | filter: {name : \'enumeration\'})"></div>';
125                           elementHTML = elementHTML + '<div ng-if="filteredObjects.length > 0" class="defaultSelect">';
126                           elementHTML = elementHTML + '<input type="text" id="{{elementKey}}" class="defaultVal" ng-model="utmSchemaExts[elementKey].defaultValue" style="width:220px;"/>';
127                           elementHTML = elementHTML + '<select  style="width: 240px;" id="{{elementKey}}" onchange="this.previousElementSibling.value=this.value;"  ng-model="utmSchemaExts[elementKey].defaultValue" ng-options="filteredObject.value.value as filteredObject.value.value for filteredObject in filteredObjects">';
128                           elementHTML = elementHTML + '<option value=""></option>';
129                           elementHTML = elementHTML + '</select>';
130                           elementHTML = elementHTML + '</div>';
131                           elementHTML = elementHTML + '<div ng-if="filteredObjects == null || filteredObjects.length == 0">';
132                           elementHTML = elementHTML + '<div ng-if="schemaElement.type != null && schemaElement.type==\'boolean\'">';
133                           elementHTML = elementHTML + '<div style="display: inline-flex">';
134                           elementHTML = elementHTML + '<input type="radio" name="{{elementKey}}" id="{{elementKey}}" value="true" ng-model="utmSchemaExts[elementKey].defaultValue">True <span style="width:20px;"></span>';
135                           elementHTML = elementHTML + '<input type="radio" name="{{elementKey}}" id="{{elementKey}}" value="false" ng-model="utmSchemaExts[elementKey].defaultValue">False';
136                           elementHTML = elementHTML + '</div>';
137                           elementHTML = elementHTML + '</div>';
138                           elementHTML = elementHTML + '<div ng-if="schemaElement.type == null || schemaElement.type != \'boolean\'">';
139                           elementHTML = elementHTML + '<input type="text"  id="{{elementKey}}"  style="width: 240px;" class="defaultVal" ng-model="utmSchemaExts[elementKey].defaultValue"/>';
140                           elementHTML = elementHTML + '</div>';
141                           elementHTML = elementHTML + '</div>';
142                           elementHTML = elementHTML + '</div>';
143                   }
144                   
145                   elementHTML = elementHTML + '</td>';
146                   
147                   elementHTML = elementHTML + '</tr>';
148                   elementHTML = elementHTML + '<br/>';
149                   elementHTML = elementHTML + '</table>';
150                   elementHTML = elementHTML + '</div>';
151                   elementHTML = elementHTML + '</div>';
152                   elementHTML = elementHTML + '</div>';
153                   
154                   var x = angular.element(elementHTML);
155                 element.append(x);
156                 $compile(x)(scope);
157                   
158                   
159                   if(scope.schemaElement.type.complexType != null){
160                           var elementHTML2 = '<div ng-show="schemaElement.type.complexType != null">'
161                           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 : \'\')">'
162                           elementHTML2 = elementHTML2 + '<div style="margin-left: 10px" ng-class="{hidden:!showUTMViewMsgHeader,chaldean:!showUTMViewMsgHeader}">'
163                           elementHTML2 = elementHTML2 + '<div class="{{sourceExplorer+\'_\'+parKey}}"></div>'
164                           elementHTML2 = elementHTML2 + '</div>'
165                           elementHTML2 = elementHTML2 + '</div>'
166                           elementHTML2 = elementHTML2 + '</div>';
167                           var x = angular.element(elementHTML2);
168                         element.append(x);
169                         $compile(x)(scope);
170                   }
171                   
172           }
173
174       }
175   }
176 });
177
178 /*app.controller('SetDefaultValueCtrl', ['$scope', '$rootScope','$modalInstance','$location', function($scope,$rootScope,$modalInstance,$location){
179     console.log("SetDefaultValueCtrl");
180         $scope.utmSchemaExts = {};
181         
182         $scope.init = function () {
183     console.log("init");                
184                 //console.log("$rootScope.defValuesObject :: " + JSON.stringify(list_model_schema_extensions[selected_model]));
185                 if(list_model_schema_extensions[selected_model] != null && list_model_schema_extensions[selected_model].utmSchemaExtentionMap != null) {
186                         $scope.utmSchemaExts = list_model_schema_extensions[selected_model].utmSchemaExtentionMap;
187                         $scope.previous_utmSchemaExts = angular.copy($scope.utmSchemaExts);
188                         //console.log("$scope.defaultValuesObject :: " + $scope.utmSchemaExts);
189                 }
190         };
191         
192         $scope.init();
193         
194         $scope.setDefaultValue= function(){     
195         console.log("setDefaultValue");
196                 list_model_schema_extensions[selected_model].utmSchemaExtentionMap = $scope.utmSchemaExts;
197                 $rootScope.isModel = true;
198                 $modalInstance.close("closed");         
199         };
200
201         $scope.close = function(){
202         console.log("close");
203                 list_model_schema_extensions[selected_model].utmSchemaExtentionMap = $scope.previous_utmSchemaExts;
204                 $modalInstance.close("closed");
205         };
206 }]);*/