2 * Copyright 2016-2017 ZTE Corporation.
\r
4 * Licensed under the Apache License, Version 2.0 (the "License");
\r
5 * you may not use this file except in compliance with the License.
\r
6 * You may obtain a copy of the License at
\r
8 * http://www.apache.org/licenses/LICENSE-2.0
\r
10 * Unless required by applicable law or agreed to in writing, software
\r
11 * distributed under the License is distributed on an "AS IS" BASIS,
\r
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
13 * See the License for the specific language governing permissions and
\r
14 * limitations under the License.
\r
16 var vm = avalon.define({
\r
17 $id : "tmTopoController",
\r
21 "sProcessing": "<img src='../common/thirdparty/data-tables/images/loading-spinner-grey.gif'/><span> "
\r
22 +$.i18n.prop("nfv-nso-iui-table-sProcess")+"</span>",
\r
23 "sLengthMenu": $.i18n.prop("nfv-nso-iui-table-sLengthMenu"),
\r
24 "sZeroRecords": $.i18n.prop("nfv-nso-iui-table-sZeroRecords"),
\r
25 "sInfo": "<span class='seperator'> </span>" + $.i18n.prop("nfv-nso-iui-table-sInfo"),
\r
26 "sInfoEmpty": $.i18n.prop("nfv-nso-iui-table-sInfoEmpty"),
\r
27 "sGroupActions": $.i18n.prop("nfv-nso-iui-table-sGroupActions"),
\r
28 "sAjaxRequestGeneralError":$.i18n.prop("nfv-nso-iui-table-sAjaxRequestGeneralError"),
\r
29 "sEmptyTable": $.i18n.prop("nfv-nso-iui-table-sEmptyTable"),
\r
31 "sPrevious": $.i18n.prop("nfv-nso-iui-table-sPrevious"),
\r
32 "sNext": $.i18n.prop("nfv-nso-iui-table-sNext"),
\r
33 "sPage": $.i18n.prop("nfv-nso-iui-table-sPage"),
\r
34 "sPageOf": $.i18n.prop("nfv-nso-iui-table-sPageOf")
\r
38 queryNodeTemplateUrl : "/openoapi/catalog/v1/servicetemplates/{0}/nodetemplates",
\r
39 queryTemplateInfoUrl : "/openoapi/catalog/v1/servicetemplates"
\r
41 $init : function() {
\r
42 vm.$initTemplateData();
\r
43 vm.$initTopoNodesData();
\r
45 $initTemplateData : function() {
\r
48 url : vm.$restUrl.queryTemplateInfoUrl,
\r
49 success : function(resp) {
\r
51 vm.servicesTemplateData = [];
\r
52 for(var i=0; i<resp.length; i++) {
\r
53 //generate node table display data
\r
54 vm.servicesTemplateData.push(resp[i]);
\r
56 //vm.$initNfvNodesTab();
\r
59 error : function() {
\r
60 commonUtil.showMessage($.i18n.prop("nfv-topology-iui-message-error"), "danger");
\r
64 $initTopoNodesData : function() {
\r
67 url : vm.$restUrl.queryNodeTemplateUrl,
\r
68 success : function(resp) {
\r
70 vm.nodesDetail.nodesTemplateDetailData = [];
\r
71 for(var i=0; i<resp.length; i++) {
\r
72 //generate node table display data
\r
73 var nodeTemplate = topoUtil.generateNodeTemplate(resp[i]);
\r
74 vm.nodesData.push(nodeTemplate);
\r
76 vm.nodesDetail.nodesTemplateDetailData = resp;
\r
77 //generate topology graph display data
\r
78 vm.topologyTab.topoTemplateData = topoUtil.generateTopoTemplate(vm.nodesData.$model);
\r
79 //initialize topology data
\r
80 topoUtil.initTopoData(vm.topologyTab.topoTemplateData.$model);
\r
83 error : function() {
\r
84 commonUtil.showMessage($.i18n.prop("nfv-topology-iui-message-error"), "danger");
\r
89 topology : "topology.html",
\r
90 vnfTip : $.i18n.prop("nfv-topology-iui-vnf-tip"),
\r
91 btnTip : $.i18n.prop("nfv-topology-iui-btn-return-tip"),
\r
92 topoTemplateData:[],
\r
94 networkTopoDatas:[],
\r
96 returnBtnVisible : false,
\r
97 $getColor: function(index) {
\r
98 return topoUtil.getColor(index);
\r
100 $getCidr: function(properties){
\r
101 return topoUtil.getCidr(properties);
\r
103 $getCpTop: function(index, parentBoxId){
\r
104 return topoUtil.getCpTop(index, parentBoxId);
\r
106 $initTopology : function() {
\r
107 topoUtil.initTopoData(vm.topologyTab.topoTemplateData.$model);
\r
109 $showTopo:function(id, name){
\r
110 vm.nodesDetail.$showDetails("block", id, name);
\r
112 $showVnfTopo: function(templateId) {
\r
113 vm.topologyTab.returnBtnVisible = true;
\r
114 vm.$restUrl.queryNodeTemplateUrl = "/openoapi/catalog/v1/servicetemplates/" + templateId + "/nodetemplates";
\r
117 $returnNS: function() {
\r
118 vm.topologyTab.returnBtnVisible = false;
\r
119 vm.$restUrl.queryNodeTemplateUrl = "/openoapi/catalog/v1/servicetemplates/" + vm.templateId + "/nodetemplates";
\r
125 nodesTemplateDetailData: [],
\r
130 {id: "general", name: $.i18n.prop("nfv-templateDetail-nodesTab-iui-tab-general"), isActive: true},
\r
131 {id: "properties", name: $.i18n.prop("nfv-templateDetail-nodesTab-iui-tab-properties"), isActive: false},
\r
132 {id: "relationShips", name: $.i18n.prop("nfv-templateDetail-nodesTab-iui-tab-relationShips"), isActive: false}
\r
134 $showDetails : function(isShow, nodetypeid, nodetypename) {
\r
135 vm.nodesDetail.isShow = isShow;
\r
136 if (isShow == "block") {
\r
137 vm.nodesDetail.detailTitle = nodetypename + " " + $.i18n.prop("nfv-templateDetail-nodesTab-iui-title-nodeDetail"),
\r
138 $('#' + vm.nodesDetail.detailData[0].id).click();
\r
139 vm.nodesDetail.detailData[0].isActive = true;
\r
140 vm.nodesDetail.$initNodeDetailTable(nodetypeid);
\r
143 detailCondChange : function(index) {
\r
144 vm.nodesDetail.detailIndex = index;
\r
145 for(var i=0; i<vm.nodesDetail.detailData.length; i++) {
\r
146 vm.nodesDetail.detailData[i].isActive = false;
\r
148 vm.nodesDetail.detailData[index].isActive = true;
\r
150 $tableFields : {// table columns
\r
152 {"mData": "key", "name": $.i18n.prop("nfv-templateDetail-nodesTab-iui-field-key"), "bSortable" : false},
\r
153 {"mData": "value", "name": $.i18n.prop("nfv-templateDetail-nodesTab-iui-field-value"), "bSortable" : false}
\r
156 {"mData": "key", "name": $.i18n.prop("nfv-templateDetail-nodesTab-iui-field-key"), "bSortable" : false},
\r
157 {"mData": "value", "name": $.i18n.prop("nfv-templateDetail-nodesTab-iui-field-value"), "bSortable" : false}
\r
160 {"mData": "sourceNodeName", "name": $.i18n.prop("nfv-templateDetail-nodesTab-iui-field-sourceNodeName"), "bSortable" : false},
\r
161 {"mData": "targetNodeName", "name": $.i18n.prop("nfv-templateDetail-nodesTab-iui-field-targetNodeName"), "bSortable" : false},
\r
162 {"mData": "type", "name": $.i18n.prop("nfv-templateDetail-nodesTab-iui-field-type"), "bSortable" : false}
\r
165 $initNodeDetailTable: function(nodetemplateid) {
\r
166 var data = topoUtil.getCurrentDetailData(vm.nodesDetail.nodesTemplateDetailData.$model, nodetemplateid);
\r
167 //initialize three tables of nodedetail
\r
168 $.each(vm.nodesDetail.$tableFields, function(key, value){
\r
170 setting.language = vm.$language;
\r
171 setting.paginate = false;
\r
172 setting.info = false;
\r
173 setting.columns = value;
\r
174 setting.tableId = "ict_table_" + key;
\r
175 serverPageTable.initTableWithData(setting, setting.tableId + '_div', data[key]);
\r
181 var initParam = function() { //initialize template detail params
\r
182 var paramStr = window.location.search.substring(1);
\r
183 if(paramStr.length > 0) {
\r
184 var params = paramStr.split("&");
\r
185 var templateId = params[0].substring(params[0].indexOf('=') + 1);
\r
186 var flavor = params[1].substring(params[1].indexOf('=') + 1);
\r
189 vm.templateId = templateId;
\r
190 vm.$restUrl.queryNodeTemplateUrl = commonUtil.format(vm.$restUrl.queryNodeTemplateUrl, templateId);
\r
193 vm.$restUrl.queryNodeTemplateUrl += "?flavor=" + flavor;
\r