[VID-6] Initial rebase push
[vid.git] / vid-app-common / src / main / webapp / app / vid / scripts / view-models / instantiate.htm
1 <!--\r
2   ============LICENSE_START=======================================================\r
3   VID\r
4   ================================================================================\r
5   Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.\r
6   ================================================================================\r
7   Licensed under the Apache License, Version 2.0 (the "License");\r
8   you may not use this file except in compliance with the License.\r
9   You may obtain a copy of the License at\r
10   \r
11        http://www.apache.org/licenses/LICENSE-2.0\r
12   \r
13   Unless required by applicable law or agreed to in writing, software\r
14   distributed under the License is distributed on an "AS IS" BASIS,\r
15   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
16   See the License for the specific language governing permissions and\r
17   limitations under the License.\r
18   ============LICENSE_END=========================================================\r
19   -->\r
20 \r
21 <div ng-controller="InstantiationController">\r
22 \r
23     <div popup-window class="popupContents" ngx-show="{{popup.isVisible}}"\r
24                 ng-cloak>\r
25                 <div ng-include="'app/vid/scripts/view-models/creationDialog.htm'"></div>\r
26                 <div ng-include="'app/vid/scripts/view-models/deletionDialog.htm'"></div>\r
27                 <div ng-include="'app/vid/scripts/view-models/detailsDialog.htm'"></div>\r
28                 <div ng-include="'app/vid/scripts/view-models/statusDialog.htm'"></div>\r
29         </div> \r
30         <div ng-controller="aaiSubscriberController" ng-init="getComponentList() ">\r
31         <div class="statusLine" ng-class="{true:'aaiVisible', false:'aaiHidden'}[isSpinnerVisible]">\r
32                         <img src="app/vid/images/spinner.gif"></img>\r
33                         <label>Status:</label><span class="status">{{status}}</span>\r
34         </div>\r
35         \r
36         <div ng-if="errorMsg != null"><font color='red'>{{errorMsg}}<pre>{{errorDetails | json}}</pre></font></div>\r
37         \r
38                         <h1 class="heading1" style="margin-top: 20px;">View/Edit Service Instance</h1>\r
39                         <a class="btn btn-primary btn-xs pull-right" ng-click="reloadRoute();" ><span class="glyphicon glyphicon-refresh"></span></a>\r
40                 \r
41                 <br>\r
42 \r
43                 <center>\r
44                         <table att-table border="1" ng-model="service">\r
45                                 <tr>\r
46                                         <th style="text-align: center" width="33%">SUBSCRIBER:\r
47                                                 {{service.instance.subscriberName}}</th>\r
48                                         <th style="text-align: center" width="34%">SERVICE TYPE:\r
49                                                 {{service.instance.serviceType}}</th>\r
50                                         <th style="text-align: center" width="33%">SERVICE INSTANCE\r
51                                                 ID: {{service.instance.serviceInstanceId}}</th>\r
52                                 <tr>\r
53                                 <tr>\r
54                                         <td colspan='3' style="text-align: center">Service Instance\r
55                                                 Name: {{service.instance.name || "Not defined"}}\r
56                                         </td>\r
57                                 <tr>\r
58                         </table>\r
59 \r
60                 </center>\r
61         \r
62         <div ui-tree data-drag-enabled="false" data-nodrop-enabled="true" style="margin: 30px">\r
63                 \r
64                 <ol ui-tree-nodes="" ng-model="service"  >\r
65                         <li ng-repeat="aService in [service]" ui-tree-node>\r
66                                 <div ui-tree-handle class="tree-node tree-node-content">\r
67                                         <a class="btn btn-success btn-xs" ng-if="(aService.instance.vnfs && aService.instance.vnfs.length > 0) || (aService.instance.networks && aService.instance.networks.length > 0)" data-nodrag ng-click="this.toggle()">\r
68                                                 <span class="glyphicon" ng-class="{'glyphicon-chevron-right': collapsed,'glyphicon-chevron-down': !collapsed}"></span>\r
69                                         </a>\r
70                                         SERVICE INSTANCE: {{aService.instance.name}}\r
71                                         <a ng-if="((isMacro()) || ( ( isObjectEmpty(aService.instance.vnfs) && isObjectEmpty(aService.instance.networks) ) ))" class="pull-right btn btn-danger btn-xs" data-nodrag ng-click="deleteService(aService.instance);">\r
72                                                 <span class="glyphicon glyphicon-remove"></span>\r
73                                         </a>\r
74                                         <div class="pull-right btn-group" ng-if="aService.convertedModel.vnfs && (!(isObjectEmpty(aService.convertedModel.vnfs))) && (!(aService.convertedModel.isNewFlow))">\r
75                                           <button type="button" class="btn btn-success btn-xs dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">\r
76                                                 Add VNF<span class="caret"></span>\r
77                                           </button>\r
78                                           <ul class="dropdown-menu" ng-model="aService.convertedModel.vnfs">\r
79                                             <a role="menuitem" ng-repeat="(vnfUuid, vnf) in aService.convertedModel.vnfs" ng-click="addVnfInstance(vnf, aService.instance.vnfs)">{{vnf.modelCustomizationName}}</a>\r
80                                                 \r
81                                           </ul>\r
82                                         </div>\r
83                                         <div class="pull-right btn-group" ng-if="aService.convertedModel.vnfs && (!(isObjectEmpty(aService.convertedModel.vnfs))) && (aService.convertedModel.isNewFlow)">\r
84                                           <button type="button" class="btn btn-success btn-xs dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">\r
85                                                 Add VNF<span class="caret"></span>\r
86                                           </button>\r
87                                           <ul class="dropdown-menu" ng-model="aService.convertedModel.vnfs">\r
88                                             <li role="menuitem" ng-repeat="(vnfUuid, vnf) in aService.convertedModel.vnfs">\r
89                                                 <a ng-click="addVnfInstance(vnf, aService.instance.vnfs)">{{vnf.modelCustomizationName}} {{vnf.nfType}} {{vnf.nfRole}} {{vnf.nfFunction}} {{vnf.nfCode}}</a>\r
90                                             </li>\r
91                                           </ul>\r
92                                         </div>\r
93                                          <!--  <div class="pull-right btn-group" ng-if="aService.model.networks && !equals(aService.model.networks, {})">-->\r
94                                          <div class="pull-right btn-group" ng-if="aService.convertedModel.networks && (!(isObjectEmpty(aService.convertedModel.networks)))">\r
95                                          <!--<div class="pull-right btn-group" ng-if="aService.model.networks">-->\r
96                                           <button type="button" class="btn btn-success btn-xs dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">\r
97                                                 Add Network<span class="caret"></span>\r
98                                           </button>\r
99                                           <ul class="dropdown-menu" ng-model="aService.convertedModel.networks">\r
100                                             <li ng-repeat="(networkUuid, network) in aService.convertedModel.networks">\r
101                                                 <a ng-click="addNetworkInstance(network, aService.instance.vnfs)">{{network.modelCustomizationName}}</a>\r
102                                             </li>\r
103                                           </ul>\r
104                                         </div>\r
105                                         <a class="pull-right btn btn-primary btn-xs" data-nodrag ng-click="describeService(aService.instance)" style="margin-right: 8px;">\r
106                                                 <span class="glyphicon glyphicon-info-sign"></span>\r
107                                         </a>\r
108                                 </div>\r
109                                 <ol ui-tree-nodes="" ng-model="aService.instance.vnfs" ng-class="{hidden: collapsed}">\r
110                                         <li ng-repeat="vnf in aService.instance.vnfs" ui-tree-node>\r
111                                                 <div ui-tree-handle class="tree-node tree-node-content">\r
112                                                         <a class="btn btn-success btn-xs" ng-if="(vnf.vfModules && vnf.vfModules.length > 0) || (vnf.volumeGroups && vnf.volumeGroups.length > 0)" data-nodrag ng-click="this.toggle()">\r
113                                                                 <span class="glyphicon" ng-class="{'glyphicon-chevron-right': collapsed,'glyphicon-chevron-down': !collapsed}"></span>\r
114                                                         </a>\r
115                                                         VNF: {{vnf.name}} | TYPE: {{vnf.nodeType}} | ORCH STATUS: {{vnf.nodeStatus}}\r
116                                                         <a ng-if="(vnf.vfModules.length == 0) && (vnf.volumeGroups.length == 0)" class="pull-right btn btn-danger btn-xs" data-nodrag ng-click="deleteVnf(aService.instance, vnf)">\r
117                                                                 <span class="glyphicon glyphicon-remove"></span>\r
118                                                         </a>\r
119                                                         <!--  <div class="pull-right btn-group" ng-if="aService.convertedModel.vnfs[vnf.object['model-invariant-id']][vnf.object['model-version-id']].vfModules">-->\r
120                                                         <div class="pull-right btn-group" ng-if="(hasVfModules(vnf.object) && (aService.convertedModel.isNewFlow))">\r
121                                                                 \r
122                                                           <button type="button" class="btn btn-success btn-xs dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">\r
123                                                                 Add VF-Module<span class="caret"></span>\r
124                                                           </button>\r
125                                                           <ul class="dropdown-menu" ng-model="vfModule" >\r
126                                                             <a ng-repeat="(vfModuleCustomizationUuid, vfModule) in aService.convertedModel.vnfs[vnf.object['model-customization-id']].vfModules" ng-click="addVfModuleInstance(vnf, vfModule)">{{vfModule.modelCustomizationName}} </a>\r
127                                                           </ul>\r
128                                                         </div>\r
129                                                 \r
130                                                         \r
131                                                         <div class="pull-right btn-group" ng-if="(hasVfModules(vnf.object) && (!(aService.convertedModel.isNewFlow)))">\r
132                                                                 \r
133                                                           <button type="button" class="btn btn-success btn-xs dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">\r
134                                                                 Add VF-Module<span class="caret"></span>\r
135                                                           </button>\r
136                                                           <ul class="dropdown-menu" ng-model="vnf">\r
137                                                             <a ng-repeat="(vfModuleUuid, vfModule) in aService.convertedModel.vnfs[vnf.object['model-version-id']].vfModules" ng-click="addVfModuleInstance(vnf, vfModule)">{{vfModule.modelCustomizationName}}</a>\r
138                                                             </li>\r
139                                                           </ul>\r
140                                                                 \r
141                                                         </div>\r
142                                 \r
143                                                         <div class="pull-right btn-group" ng-if="(hasVolumeGroups(vnf.object) && (aService.convertedModel.isNewFlow))">\r
144                                                                 \r
145                                                           <button type="button" class="btn btn-success btn-xs dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">\r
146                                                                 Add Volume Group<span class="caret"></span>\r
147                                                           </button>\r
148                                                           <ul class="dropdown-menu" ng-model="volumeGroup" >\r
149                                                             <a ng-repeat="(volumeGroupCustomizationUuid, volumeGroup) in aService.convertedModel.vnfs[vnf.object['model-customization-id']].volumeGroups" ng-click="addVolumeGroupInstance(vnf, volumeGroup)">{{volumeGroup.modelCustomizationName}}</a>\r
150                                                           </ul>\r
151                                                         </div>\r
152                                 \r
153                                                         <div class="pull-right btn-group" ng-if="(hasVolumeGroups(vnf.object) && (!(aService.convertedModel.isNewFlow)))">\r
154                                                                 \r
155                                                           <button type="button" class="btn btn-success btn-xs dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">\r
156                                                                 Add Volume Group<span class="caret"></span>\r
157                                                           </button>\r
158                                                           <ul class="dropdown-menu" ng-model="vnf">\r
159                                                             <a ng-repeat="(volumeGroupUuid, volumeGroup) in aService.convertedModel.vnfs[vnf.object['model-version-id']].volumeGroups" ng-click="addVolumeGroupInstance(vnf, volumeGroup)">{{volumeGroup.modelCustomizationName}}</a>\r
160                                                             </li>\r
161                                                           </ul>\r
162                                                                 \r
163                                                         </div>\r
164                                                         \r
165                                                     <!-- VID-374/378 - switching-off feature <a class="pull-right btn btn-primary btn-xs" data-nodrag ng-click="getStatusOfVnf(aService.instance, vnf)" style="margin-right: 8px;">\r
166                                 <span class="glyphicon glyphicon-exclamation-sign"></span>\r
167                             </a>  -->\r
168                                                         <a class="pull-right btn btn-primary btn-xs" data-nodrag ng-click="describeVnf(aService.instance, vnf)" style="margin-right: 8px;">\r
169                                                                 <span class="glyphicon glyphicon-info-sign"></span>\r
170                                                         </a>\r
171                                                 </div>\r
172                                                 <ol ui-tree-nodes="" ng-model="vnf.vfModules" ng-class="{hidden: collapsed}">\r
173                                                         <li ng-repeat="vfModule in vnf.vfModules" ui-tree-node>\r
174                                                                 <div ui-tree-handle class="tree-node tree-node-content">\r
175                                                                         <a class="btn btn-success btn-xs" ng-if="(vfModule.volumeGroups && vfModule.volumeGroups.length > 0)" data-nodrag ng-click="this.toggle()">\r
176                                                                                 <span class="glyphicon" ng-class="{'glyphicon-chevron-right': collapsed,'glyphicon-chevron-down': !collapsed}"></span>\r
177                                                                         </a>\r
178                                                                         VFMODULE: {{vfModule.name}} | TYPE: {{vfModule.nodeType}} | ORCH STATUS: {{vfModule.nodeStatus}}\r
179                                                                         <!--  -->\r
180                                                                         <a class="pull-right btn btn-danger btn-xs" data-nodrag ng-click="deleteVfModule(aService.instance, vfModule, vnf)">\r
181                                                                                 <span class="glyphicon glyphicon-remove"></span>\r
182                                                                         </a>\r
183                                                                         <div class="pull-right btn-group">\r
184                                                                         <!--   <button type="button" class="btn btn-success btn-xs dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">\r
185                                                                                 Attach Volume Group<span class="caret"></span>\r
186                                                                           </button> \r
187                                                                           <ul class="dropdown-menu" ng-model="vnf.volumeGroups">\r
188                                                                             <li ng-repeat="volumeGroup in vnf.availableVolumeGroups">\r
189                                                                                 <a ng-click="attachVolumeGroupInstance(vfModule, volumeGroup)">{{volumeGroup.name}}</a>\r
190                                                                             </li>\r
191                                                                           </ul> -->\r
192                                                                         </div>\r
193                                                                         <a class="pull-right btn btn-primary btn-xs" data-nodrag ng-click="describeVfModule(aService.instance, vfModule, vnf)" style="margin-right: 8px;">\r
194                                                                                 <span class="glyphicon glyphicon-info-sign"></span>\r
195                                                                         </a>\r
196                                                                 </div>\r
197                                                                 <ol ui-tree-nodes="" ng-model="vfModule.volumeGroups" ng-class="{hidden: collapsed}">\r
198                                                                         <li ng-repeat="volumeGroup in vfModule.volumeGroups" ui-tree-node>\r
199                                                                                 <div ui-tree-handle class="tree-node tree-node-content">\r
200                                                                                         VOLUME GROUP: {{volumeGroup.name}} | TYPE: {{volumeGroup.nodeType}} | ORCH STATUS: {{volumeGroup.nodeStatus}}\r
201                                                                                         <!-- <a class="pull-right btn btn-danger btn-xs" data-nodrag ng-click="deleteVolumeGroup(aService.instance, vnf, vfModule, volumeGroup)">\r
202                                                                                                 <span class="glyphicon glyphicon-remove"></span>\r
203                                                                                         </a> -->\r
204                                                                                         <a class="pull-right btn btn-primary btn-xs" data-nodrag ng-click="describeVolumeGroup(aService.instance, vnf, volumeGroup)" style="margin-right: 8px;">\r
205                                                                                                 <span class="glyphicon glyphicon-info-sign"></span>\r
206                                                                                         </a>\r
207                                                                                 </div>\r
208                                                                         </li>\r
209                                                                 </ol>\r
210                                                         </li>\r
211                                                 </ol>\r
212                                                 <ol ui-tree-nodes="" ng-model="vnf.availableVolumeGroups" ng-class="{hidden: collapsed}">\r
213                                                         <li ng-repeat="volumeGroup in vnf.availableVolumeGroups" ui-tree-node>\r
214                                                                 <div ui-tree-handle class="tree-node tree-node-content">\r
215                                                                         VOLUME GROUP: {{volumeGroup.name}} | TYPE: {{volumeGroup.nodeType}} | ORCH STATUS: {{volumeGroup.nodeStatus}}\r
216                                                                         <a class="pull-right btn btn-danger btn-xs" data-nodrag ng-click="deleteVnfVolumeGroup(aService.instance, vnf, volumeGroup)">\r
217                                                                                 <span class="glyphicon glyphicon-remove"></span>\r
218                                                                         </a>\r
219                                                                         <a class="pull-right btn btn-primary btn-xs" data-nodrag ng-click="describeVolumeGroup(aService.instance, vnf, volumeGroup)" style="margin-right: 8px;">\r
220                                                                                 <span class="glyphicon glyphicon-info-sign"></span>\r
221                                                                         </a>\r
222                                                                 </div>\r
223                                                         </li>\r
224                                                 </ol>\r
225                                         </li>\r
226                                 </ol>\r
227                                 <ol ui-tree-nodes="" ng-model="aService.instance.networks" ng-class="{hidden: collapsed}">\r
228                                         <li ng-repeat="network in aService.instance.networks" ui-tree-node>\r
229                                                 <div ui-tree-handle class="tree-node tree-node-content">\r
230                                                         NETWORK: {{network.name}} | TYPE: {{network.nodeType}} | ORCH   STATUS: {{network.nodeStatus}}\r
231                                                         \r
232                                                         <a class="pull-right btn btn-danger btn-xs" ng-if="(!isMacro())" data-nodrag ng-click="deleteNetwork(aService.instance, network)">\r
233                                                                 <span class="glyphicon glyphicon-remove"></span>\r
234                                                         </a> \r
235                                                          <!--  <a class="pull-right btn btn-danger btn-xs" data-nodrag ng-click="deleteNetwork(aService.instance, network)">\r
236                                                                 <span class="glyphicon glyphicon-remove"></span>\r
237                                                         </a>-->\r
238                                                         <a class="pull-right btn btn-primary btn-xs" data-nodrag ng-click="describeNetwork(aService.instance, network)" style="margin-right: 8px;">\r
239                                                                 <span class="glyphicon glyphicon-info-sign"></span>\r
240                                                         </a>\r
241                                                 </div>\r
242                                         </li>\r
243                                 </ol>\r
244                         </li>\r
245                 </ol>\r
246                 </div>\r
247         </div>\r
248 </div>\r