diff --git a/src/sunstone/public/app/app.js b/src/sunstone/public/app/app.js index 0143ee8585..c1f8fc866e 100644 --- a/src/sunstone/public/app/app.js +++ b/src/sunstone/public/app/app.js @@ -25,6 +25,8 @@ define(function(require) { Foundation.DropdownMenu.defaults.clickOpen = true; Foundation.Reveal.defaults.closeOnClick = false; + _setupDataTableSearch(); + var DASHBOARD_TAB_ID = require('tabs/dashboard-tab/tabId'); var SETTINGS_TAB_ID = require('tabs/settings-tab/tabId'); var PROVISION_TAB_ID = require('tabs/provision-tab/tabId'); @@ -175,4 +177,25 @@ define(function(require) { Sunstone.showTab(SETTINGS_TAB_ID); }); } + + function _setupDataTableSearch() { + $.fn.dataTable.ext.type.order['file-size-pre'] = function ( data ) { + var matches = data.match( /^(\d+(?:\.\d+)?)\s*([a-z]+)/i ); + var multipliers = { + B: 1, + KB: 1024, + MB: 1048576, + GB: 1073741824, + TB: 1099511627776, + PB: 1125899906842624 + }; + + if (matches) { + var multiplier = multipliers[matches[2]]; + return parseFloat( matches[1] ) * multiplier; + } else { + return -1; + } + } + } }); diff --git a/src/sunstone/public/app/tabs/images-tab/datatable-common.js b/src/sunstone/public/app/tabs/images-tab/datatable-common.js index 0b0da94ad0..2e3b0698a1 100644 --- a/src/sunstone/public/app/tabs/images-tab/datatable-common.js +++ b/src/sunstone/public/app/tabs/images-tab/datatable-common.js @@ -54,7 +54,8 @@ define(function(require) { {"bSortable": false, "aTargets": ["check"]}, {"sWidth": "35px", "aTargets": [0]}, {"bVisible": true, "aTargets": SunstoneConfig.tabTableColumns(tabId)}, - {"bVisible": false, "aTargets": ['_all']} + {"bVisible": false, "aTargets": ['_all']}, + {"sType": "file-size", "aTargets": [ 6 ] } ] } @@ -99,7 +100,7 @@ define(function(require) { element.GNAME, element.NAME, element.DATASTORE, - element.SIZE, + Humanize.sizeFromMB(element.SIZE), OpenNebulaImage.typeStr(element.TYPE), Humanize.prettyTime(element.REGTIME), parseInt(element.PERSISTENT) ? "yes" : "no", diff --git a/src/sunstone/public/app/tabs/marketplaceapps-tab/datatable.js b/src/sunstone/public/app/tabs/marketplaceapps-tab/datatable.js index 8a51409fa6..ae3fdbe43d 100644 --- a/src/sunstone/public/app/tabs/marketplaceapps-tab/datatable.js +++ b/src/sunstone/public/app/tabs/marketplaceapps-tab/datatable.js @@ -71,9 +71,9 @@ define(function(require) { "aoColumnDefs": [ {"bSortable": false, "aTargets": ["check"]}, {"sWidth": "35px", "aTargets": [0]}, - {"sWidth": "250px", "aTargets": [5]}, {"bVisible": true, "aTargets": SunstoneConfig.tabTableColumns(TAB_NAME)}, - {"bVisible": false, "aTargets": ['_all']} + {"bVisible": false, "aTargets": ['_all']}, + {"sType": "file-size", "aTargets": [ 6 ] } ] }