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
17 var vm = avalon.define({
\r
18 $id: "tmNodesController",
\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 queryNodeInstanceUrl: "/openoapi/nslcm/v1.0/ns/"
\r
40 $init: function () {
\r
41 vm.$initInstanceData();
\r
43 $initInstanceData: function () {
\r
46 url: vm.$restUrl.queryNodeInstanceUrl,
\r
47 success: function (resp) {
\r
49 vm.servicesInstanceData = [
\r
56 [resp.vnfInfoId, 'vnf'],
\r
57 [resp.vlInfo.vldId, 'vl'],
\r
58 [resp.vnffgInfo.vnffgInstanceId, 'vnffg']
\r
60 vm.$initNfvNodesTab();
\r
61 vm.nodesList.nodesData = tableData;
\r
62 vm.nodesList.$initNodesTable();
\r
65 error: function () {
\r
66 commonUtil.showMessage($.i18n.prop("nfv-topology-iui-message-error"), "danger");
\r
70 servicesInstanceData: [],
\r
71 $nodesTabId: "ict_nodes_template_table",
\r
72 $nodesInstanceTabFields: {// table columns
\r
74 {"mData": "serviceInstanceId", name: "ID", "bVisible": false},
\r
75 {"mData": "", name: "", "sClass": 'details-control'},
\r
76 {"mData": "serviceName", name: "Service Name"},
\r
77 {"mData": "serviceDescription", name: "Service Description"},
\r
78 {"mData": "nsdId", name: "NSD ID"},
\r
79 {"mData": "status", name: "Status"}
\r
82 $initNfvNodesTab: function () {
\r
84 setting.language = vm.$language;
\r
85 setting.paginate = true;
\r
86 setting.info = true;
\r
87 setting.columns = vm.$nodesInstanceTabFields.table;
\r
88 setting.tableId = vm.$nodesTabId;
\r
89 vm.$initDataTable(setting, vm.$nodesTabId + '_div', vm.servicesInstanceData);
\r
90 $('#' + vm.$nodesTabId + '>tbody').on("click", 'td.details-control', function () {
\r
91 var tr = $(this).closest('tr');
\r
92 var table = $('#' + vm.$nodesTabId).dataTable();
\r
93 if (table.fnIsOpen(tr[0])) {
\r
94 table.fnClose(tr[0]);
\r
95 tr.removeClass('shown');
\r
98 table.fnOpen(tr[0], vm.nodesList.$format_Detail(), 'details');
\r
99 tr.addClass('shown');
\r
104 $initDataTable: function (setting, divId, tableData) {
\r
106 var column = setting.columns;
\r
108 $('#' + divId).children().remove();
\r
109 var tableId = setting.tableId;
\r
110 var tableEleStr = '<table class="table table-striped table-bordered table-hover" id= ' + tableId + '>'
\r
112 + '<tr role="row" class="heading" >'
\r
118 $('#' + divId).append(tableEleStr);
\r
119 var trEle = $('#' + tableId + ' > thead >tr');
\r
120 for (var one in column) {
\r
121 var th = '<th>' + column[one].name + '</th>';
\r
124 var table = $("#" + tableId).dataTable({
\r
125 "sDom": '<"top"rt><"bottom"lip>',
\r
126 "oLanguage": setting.language,//language
\r
127 "bPaginate": setting.paginate,// page button
\r
128 "bFilter": false,// search bar
\r
129 "bAutoWidth": true,//automatically set colum width
\r
130 "bLengthChange": true,// record number in each row
\r
131 "iDisplayLength": 10,// row number in each page
\r
132 "bSort": setting.sort ? true : false,// sort
\r
133 "bInfo": setting.info,// Showing 1 to 10 of 23 entries
\r
135 "bScrollCollapse": true,
\r
136 "sPaginationType": "bootstrap_extended", // page, a total of two kinds of style, another one is two_button
\r
137 "bProcessing": true,
\r
138 "bServerSide": false,
\r
140 "bSortCellsTop": true,
\r
141 "aoColumns": setting.columns,
\r
144 sDefaultContent: '',
\r
148 "aaData": tableData
\r
162 {"mData": "id", name: "ID", "bVisible": false},
\r
163 {"mData": "instanceId", name: "Instance Id"},
\r
164 {"mData": "nodeType", name: "Node Type"}
\r
168 $initNodesTable: function () {
\r
170 setting.language = vm.$language;
\r
171 setting.paginate = true;
\r
172 setting.info = true;
\r
173 setting.columns = vm.nodesList.$nodesTabFields.table;
\r
174 setting.tableId = vm.nodesList.$nodesTabDataId;
\r
175 vm.$initDataTable(setting, vm.nodesList.$nodesTabDataId + '_div', vm.nodesList.nodesData);
\r
181 var initParam = function () {
\r
182 var paramStr = window.location.search.substring(1);
\r
183 if (paramStr.length > 0) {
\r
185 var params = paramStr.split("&");
\r
186 var instanceId = params[0].substring(params[0].indexOf('=') + 1);
\r
188 vm.instanceId = instanceId;
\r
189 vm.$restUrl.queryNodeInstanceUrl = commonUtil.format(vm.$restUrl.queryNodeInstanceUrl, instanceId);
\r