/* * Copyright 2016 ZTE Corporation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var vm = avalon.define({ $id: "tmTopoController", templateId: "", nodesData: [], $language: { "sProcessing": "  " + $.i18n.prop("nfv-nso-iui-table-sProcess") + "", "sLengthMenu": $.i18n.prop("nfv-nso-iui-table-sLengthMenu"), "sZeroRecords": $.i18n.prop("nfv-nso-iui-table-sZeroRecords"), "sInfo": " " + $.i18n.prop("nfv-nso-iui-table-sInfo"), "sInfoEmpty": $.i18n.prop("nfv-nso-iui-table-sInfoEmpty"), "sGroupActions": $.i18n.prop("nfv-nso-iui-table-sGroupActions"), "sAjaxRequestGeneralError": $.i18n.prop("nfv-nso-iui-table-sAjaxRequestGeneralError"), "sEmptyTable": $.i18n.prop("nfv-nso-iui-table-sEmptyTable"), "oPaginate": { "sPrevious": $.i18n.prop("nfv-nso-iui-table-sPrevious"), "sNext": $.i18n.prop("nfv-nso-iui-table-sNext"), "sPage": $.i18n.prop("nfv-nso-iui-table-sPage"), "sPageOf": $.i18n.prop("nfv-nso-iui-table-sPageOf") } }, $restUrl: { queryNodeTemplateUrl: "/openoapi/catalog/v1/servicetemplates/{0}/nodetemplates", queryTemplateInfoUrl: "/openoapi/catalog/v1/servicetemplates" }, $init: function () { vm.$initTemplateData(); vm.$initTopoNodesData(); }, $initTemplateData: function () { $.ajax({ type: "GET", url: vm.$restUrl.queryTemplateInfoUrl, success: function (resp) { if (resp) { vm.servicesTemplateData = []; for (var i = 0; i < resp.length; i++) { //generate node table display data vm.servicesTemplateData.push(resp[i]); } //vm.$initNfvNodesTab(); } }, error: function () { commonUtil.showMessage($.i18n.prop("nfv-topology-iui-message-error"), "danger"); } }); }, $initTopoNodesData: function () { $.ajax({ type: "GET", url: vm.$restUrl.queryNodeTemplateUrl, success: function (resp) { if (resp) { vm.nodesDetail.nodesTemplateDetailData = []; for (var i = 0; i < resp.length; i++) { //generate node table display data var nodeTemplate = topoUtil.generateNodeTemplate(resp[i]); vm.nodesData.push(nodeTemplate); } vm.nodesDetail.nodesTemplateDetailData = resp; //generate topology graph display data vm.topologyTab.topoTemplateData = topoUtil.generateTopoTemplate(vm.nodesData.$model); //initialize topology data topoUtil.initTopoData(vm.topologyTab.topoTemplateData.$model); } }, error: function () { commonUtil.showMessage($.i18n.prop("nfv-topology-iui-message-error"), "danger"); } }); }, topologyTab: { topology: "topology.html", vnfTip: $.i18n.prop("nfv-topology-iui-vnf-tip"), btnTip: $.i18n.prop("nfv-topology-iui-btn-return-tip"), topoTemplateData: [], boxTopoDatas: [], networkTopoDatas: [], isShowNum: false, returnBtnVisible: false, $getColor: function (index) { return topoUtil.getColor(index); }, $getCidr: function (properties) { return topoUtil.getCidr(properties); }, $getCpTop: function (index, parentBoxId) { return topoUtil.getCpTop(index, parentBoxId); }, $initTopology: function () { topoUtil.initTopoData(vm.topologyTab.topoTemplateData.$model); }, $showTopo: function (id, name) { vm.nodesDetail.$showDetails("block", id, name); }, $showVnfTopo: function (templateId) { vm.topologyTab.returnBtnVisible = true; vm.$restUrl.queryNodeTemplateUrl = "/openoapi/catalog/v1/servicetemplates/" + templateId + "/nodetemplates"; vm.$init(); }, $returnNS: function () { vm.topologyTab.returnBtnVisible = false; vm.$restUrl.queryNodeTemplateUrl = "/openoapi/catalog/v1/servicetemplates/" + vm.templateId + "/nodetemplates"; vm.$init(); } }, //Nodes Details nodesDetail: { nodesTemplateDetailData: [], detailTitle: "", isShow: "none", detailIndex: 0, detailData: [ {id: "general", name: $.i18n.prop("nfv-templateDetail-nodesTab-iui-tab-general"), isActive: true}, {id: "properties", name: $.i18n.prop("nfv-templateDetail-nodesTab-iui-tab-properties"), isActive: false}, { id: "relationShips", name: $.i18n.prop("nfv-templateDetail-nodesTab-iui-tab-relationShips"), isActive: false } ], $showDetails: function (isShow, nodetypeid, nodetypename) { vm.nodesDetail.isShow = isShow; if (isShow == "block") { vm.nodesDetail.detailTitle = nodetypename + " " + $.i18n.prop("nfv-templateDetail-nodesTab-iui-title-nodeDetail"), $('#' + vm.nodesDetail.detailData[0].id).click(); vm.nodesDetail.detailData[0].isActive = true; vm.nodesDetail.$initNodeDetailTable(nodetypeid); } }, detailCondChange: function (index) { vm.nodesDetail.detailIndex = index; for (var i = 0; i < vm.nodesDetail.detailData.length; i++) { vm.nodesDetail.detailData[i].isActive = false; } vm.nodesDetail.detailData[index].isActive = true; }, $tableFields: {// table columns general: [ {"mData": "key", "name": $.i18n.prop("nfv-templateDetail-nodesTab-iui-field-key"), "bSortable": false}, { "mData": "value", "name": $.i18n.prop("nfv-templateDetail-nodesTab-iui-field-value"), "bSortable": false } ], properties: [ {"mData": "key", "name": $.i18n.prop("nfv-templateDetail-nodesTab-iui-field-key"), "bSortable": false}, { "mData": "value", "name": $.i18n.prop("nfv-templateDetail-nodesTab-iui-field-value"), "bSortable": false } ], relationShips: [ { "mData": "sourceNodeName", "name": $.i18n.prop("nfv-templateDetail-nodesTab-iui-field-sourceNodeName"), "bSortable": false }, { "mData": "targetNodeName", "name": $.i18n.prop("nfv-templateDetail-nodesTab-iui-field-targetNodeName"), "bSortable": false }, {"mData": "type", "name": $.i18n.prop("nfv-templateDetail-nodesTab-iui-field-type"), "bSortable": false} ] }, $initNodeDetailTable: function (nodetemplateid) { var data = topoUtil.getCurrentDetailData(vm.nodesDetail.nodesTemplateDetailData.$model, nodetemplateid); //initialize three tables of nodedetail $.each(vm.nodesDetail.$tableFields, function (key, value) { var setting = {}; setting.language = vm.$language; setting.paginate = false; setting.info = false; setting.columns = value; setting.tableId = "ict_table_" + key; serverPageTable.initTableWithData(setting, setting.tableId + '_div', data[key]); }); } }, }); var initParam = function () { //initialize template detail params var paramStr = window.location.search.substring(1); if (paramStr.length > 0) { avalon.scan(); var params = paramStr.split("&"); var instanceId = params[0].substring(params[0].indexOf('=') + 1); var templateQueryUrl = '/openoapi/nslcm/v1.0/ns/' + instanceId; $.ajax({ type: "GET", url: templateQueryUrl, contentType: "application/json", dataType: "json", success: function (jsonResp) { initTopo(jsonResp.nsdId) }, error: function (xhr, ajaxOptions, thrownError) { alert("Error on page : " + xhr.responseText); } }); } }; function initTopo(templateId) { vm.templateId = templateId; vm.$restUrl.queryNodeTemplateUrl = commonUtil.format(vm.$restUrl.queryNodeTemplateUrl, templateId); vm.$init(); } initParam();