diff --git a/src/sunstone/public/app/tabs/vnets-tab/panels/leases.js b/src/sunstone/public/app/tabs/vnets-tab/panels/leases.js index f2695db46a..aa6f1426fb 100644 --- a/src/sunstone/public/app/tabs/vnets-tab/panels/leases.js +++ b/src/sunstone/public/app/tabs/vnets-tab/panels/leases.js @@ -24,6 +24,8 @@ define(function(require) { var Config = require('sunstone-config'); var Sunstone = require('sunstone'); var Utils = require('../utils/common'); + var OpenNebulaVM = require('opennebula/vm'); + var DomDataTable = require('utils/dom-datatable'); /* CONSTANTS @@ -58,78 +60,116 @@ define(function(require) { */ function _html() { + var that = this; var arList = Utils.getARList(this.element); var processedLeases = []; - for (var i=0; i1 lease - leases = [leases]; - } - - for (var j=0; j1 lease + leases = [leases]; + } + + for (var j=0; j'; + } + } else if (lease.VM != undefined) { //used by a VM + col0HTML = ''; + vm_name = vms[lease.VM] && vms[lease.VM]["NAME"] ? " - " + vms[lease.VM]["NAME"] : "" + col1HTML = Navigation.link(Locale.tr("VM:") + lease.VM + vm_name , "vms-tab", lease.VM) ; + } else if (lease.VNET != undefined) { //used by a VNET + col0HTML = ''; + col1HTML = Navigation.link(Locale.tr("NET:") + lease.VNET, "vnets-tab", lease.VNET); + } else if (lease.VROUTER != undefined) { //used by a VR + col0HTML = ''; + col1HTML = Navigation.link(Locale.tr("VR:") + lease.VROUTER, "vrouters-tab", lease.VROUTER); + } else { + col0HTML = ''; + col1HTML = '--'; + } + + processedLeases.push([ + col0HTML, + col1HTML, + lease.IP ? lease.IP : "--", + lease.IP6 ? lease.IP6 : "--", + lease.MAC ? lease.MAC : "--", + lease.IP6_LINK ? lease.IP6_LINK : "--", + lease.IP6_ULA ? lease.IP6_ULA : "--", + lease.IP6_GLOBAL ? lease.IP6_GLOBAL : "--", + id ? id : "--" + ]); + } + + // Update Table View + if (that.leases_dataTable){ + that.leases_dataTable.updateView(request, processedLeases, true); + } + } } - } + }); return TemplateLeases({ - 'element': this.element, + 'element': that.element, 'leases' : processedLeases }); } function _setup(context) { var that = this; - - var leases_dataTable = $("#leases_datatable", context).dataTable({ - "bSortClasses" : false, - "bDeferRender": true, - // "sScrollX": "100%", - "aoColumnDefs": [ - { "bSortable": false, "aTargets": [0,1] }, - ] - }); + + this.leases_dataTable = new DomDataTable( + "leases_datatable", + { + actions: false, + info: false, + dataTableOptions: { + "bSortClasses" : false, + "bDeferRender": true, + // "sScrollX": "100%", + "aoColumnDefs": [ + { "bSortable": false, "aTargets": [0,1] }, + ] + } + } + ); + + this.leases_dataTable.initialize(); if (Config.isTabActionEnabled("vnets-tab", "Network.hold_lease")) { context.off("click", 'button#panel_hold_lease_button'); @@ -149,9 +189,9 @@ define(function(require) { if (Config.isTabActionEnabled("vnets-tab", "Network.release_lease")) { context.off("click", 'a.release_lease'); context.on("click", 'a.release_lease', function(){ - var lease = $(this).parents('tr').attr('ip'); + var lease = $(this).data('ip'); if (lease == ""){ - lease = $(this).parents('tr').attr('mac'); + lease = $(this).data('mac'); } var obj = { ip: lease}; diff --git a/src/sunstone/public/app/tabs/vnets-tab/panels/leases/html.hbs b/src/sunstone/public/app/tabs/vnets-tab/panels/leases/html.hbs index 4a8603c2ba..da38784aba 100644 --- a/src/sunstone/public/app/tabs/vnets-tab/panels/leases/html.hbs +++ b/src/sunstone/public/app/tabs/vnets-tab/panels/leases/html.hbs @@ -45,17 +45,11 @@ {{#each leases}} - - {{{col0HTML}}} - {{{col1HTML}}} - {{valOrDefault IP "--"}} - {{valOrDefault IP6 "--"}} - {{valOrDefault MAC "--"}} - {{valOrDefault IP6_LINK "--"}} - {{valOrDefault IP6_ULA "--"}} - {{valOrDefault IP6_GLOBAL "--"}} - {{valOrDefault AR_ID "--"}} - + + {{#each this}} + {{{this}}} + {{/each}} + {{/each}}