/* * 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: "tmDetailController", templateId: "", templateData: [ {href: "#topology", name: "Topology", value: true}, {href: "#nodes", name: "Nodes", value: false} ], $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.nodesTab.servicesTemplateData = []; for (var i = 0; i < resp.length; i++) { //generate node table display data vm.nodesTab.servicesTemplateData.push(resp[i]); } vm.nodesTab.$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.nodesTab.nodesDetail.nodesTemplateDetailData = []; for (var i = 0; i < resp.length; i++) { //generate node table display data var nodeTemplate = topoUtil.generateNodeTemplate(resp[i]); vm.nodesTab.nodesList.nodesData.push(nodeTemplate); } vm.nodesTab.nodesDetail.nodesTemplateDetailData = resp; //generate topology graph display data vm.topologyTab.topoTemplateData = topoUtil.generateTopoTemplate(vm.nodesTab.nodesList.nodesData.$model); //initialize topology data topoUtil.initTopoData(vm.topologyTab.topoTemplateData.$model); //vm.nodesTab.nodesList.$initNodesTable(); } }, error: function () { commonUtil.showMessage($.i18n.prop("nfv-topology-iui-message-error"), "danger"); } }); }, $initNodesData: function () { $.ajax({ type: "GET", url: vm.$restUrl.queryNodeTemplateUrl, success: function (resp) { if (resp) { vm.nodesTab.nodesDetail.nodesTemplateDetailData = []; for (var i = 0; i < resp.length; i++) { //generate node table display data var nodeTemplate = topoUtil.generateNodeTemplate(resp[i]); vm.nodesTab.nodesList.nodesData.push(nodeTemplate); } vm.nodesTab.nodesDetail.nodesTemplateDetailData = resp; //generate topology graph display data //vm.topologyTab.topoTemplateData = topoUtil.generateTopoTemplate(vm.nodesTab.nodesList.nodesData.$model); //initialize topology data //topoUtil.initTopoData(vm.topologyTab.topoTemplateData.$model); vm.nodesTab.nodesList.$initNodesTable(); } }, 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.nodesTab.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(); } }, nodesTab: { servicesTemplateData: [], $nodesTabId: "ict_nodes_template_table", $nodesTemplateTabFields: {// table columns table: [ {"mData": "serviceTemplateId", name: "ID", "bVisible": false}, {"mData": "", name: "", "sClass": 'details-control'}, {"mData": "templateName", name: $.i18n.prop("nfv-template-iui-field-templatename")}, {"mData": "vendor", name: $.i18n.prop("nfv-template-iui-field-vendor")}, {"mData": "version", name: $.i18n.prop("nfv-template-iui-field-version")}, {"mData": "csarid", name: "packageID", "bVisible": false}, {"mData": "type", name: $.i18n.prop("nfv-template-iui-field-type")}, //{"mData": "inputs", name: $.i18n.prop("nfv-template-iui-field-inputs"),"fnRender" : tmDetailUtil.inputsRender}, //{"mData": "outputs", name: $.i18n.prop("nfv-template-iui-field-outputs"),"fnRender" : tmDetailUtil.outputsRender}, //{"mData": "operations", name: $.i18n.prop("nfv-template-iui-field-operations")} ] }, $initNfvNodesTab: function () { var setting = {}; setting.language = vm.$language; setting.paginate = true; setting.info = true; //setting.sort = true; setting.columns = vm.nodesTab.$nodesTemplateTabFields.table; setting.restUrl = vm.$restUrl.queryTemplateInfoUrl; setting.tableId = vm.nodesTab.$nodesTabId; //serverPageTable.initTableWithData(setting,vm.nodesTab.$nodesTabId + '_div',vm.nodesTab.servicesTemplateData.$model); serverPageTable.initDataTable(setting, {}, vm.nodesTab.$nodesTabId + '_div'); $('#' + vm.nodesTab.$nodesTabId + '>tbody').on("click", 'td.details-control', function () { var tr = $(this).closest('tr'); var table = $('#' + vm.nodesTab.$nodesTabId).dataTable(); if (table.fnIsOpen(tr[0])) { table.fnClose(tr[0]); tr.removeClass('shown'); } else { table.fnOpen(tr[0], vm.nodesTab.nodesList.$format_Detail(), 'details'); tr.addClass('shown'); } }); }, //nodes list table nodesList: { nodesData: [], $nodesTabDataId: "ict_nodes_table", $nodesTabFields: {// table columns table: [ {"mData": "id", name: "ID", "bVisible": false}, { "mData": "name", name: $.i18n.prop("nfv-templateDetail-iui-field-nodetypename"), "bSortable": true, "fnRender": tmDetailUtil.nameRender }, {"mData": "type", name: $.i18n.prop("nfv-templateDetail-iui-field-type"), "bSortable": false}, { "mData": "containedin", name: $.i18n.prop("nfv-templateDetail-iui-field-containedin"), "bSortable": false }, { "mData": "deployedon", name: $.i18n.prop("nfv-templateDetail-iui-field-deployedon"), "bSortable": false }, { "mData": "connectedto", name: $.i18n.prop("nfv-templateDetail-iui-field-connectedto"), "bSortable": false }, { "mData": "virtuallinksto", name: $.i18n.prop("nfv-templateDetail-iui-field-virtuallinksto"), "bSortable": false } ] }, $initNodesTable: function () { var setting = {}; setting.language = vm.$language; setting.paginate = true; setting.info = true; //setting.sort = true; setting.columns = vm.nodesTab.nodesList.$nodesTabFields.table; setting.restUrl = vm.$restUrl.queryNodeTemplateUrl; setting.tableId = vm.nodesTab.nodesList.$nodesTabDataId; //serverPageTable.initTableWithData(setting,vm.nodesTab.nodesList.$nodesTabDataId + '_div',vm.nodesTab.nodesList.nodesData.$model); serverPageTable.initTableWithoutLib(setting, {}, vm.nodesTab.nodesList.$nodesTabDataId + '_div'); }, $format_Detail: function () { var sOut = '