From d2b1ed5193b7788ab188eb2fe10bd379945e3f70 Mon Sep 17 00:00:00 2001 From: Tino Vazquez Date: Fri, 20 Sep 2013 19:22:40 +0200 Subject: [PATCH] Feature #2332:Sunstone configurable table order --- src/sunstone/etc/sunstone-server.conf | 3 +++ src/sunstone/public/js/plugins/acls-tab.js | 2 ++ .../public/js/plugins/clusters-tab.js | 1 + src/sunstone/public/js/plugins/config-tab.js | 21 ++++++++++++++++++- .../public/js/plugins/datastores-tab.js | 1 + src/sunstone/public/js/plugins/files-tab.js | 1 + src/sunstone/public/js/plugins/groups-tab.js | 2 ++ src/sunstone/public/js/plugins/hosts-tab.js | 2 ++ .../public/js/plugins/templates-tab.js | 2 ++ src/sunstone/public/js/plugins/users-tab.js | 2 ++ src/sunstone/public/js/plugins/vms-tab.js | 5 ++++- src/sunstone/sunstone-server.rb | 7 +++++++ src/sunstone/views/index.erb | 1 + 13 files changed, 48 insertions(+), 2 deletions(-) diff --git a/src/sunstone/etc/sunstone-server.conf b/src/sunstone/etc/sunstone-server.conf index 853bdf817b..26755ed0c2 100644 --- a/src/sunstone/etc/sunstone-server.conf +++ b/src/sunstone/etc/sunstone-server.conf @@ -90,6 +90,9 @@ # Default language setting :lang: en_US +# Default table order +:table_order: desc + ################################################################################ # Marketplace ################################################################################ diff --git a/src/sunstone/public/js/plugins/acls-tab.js b/src/sunstone/public/js/plugins/acls-tab.js index eb485a439f..49f976eec3 100644 --- a/src/sunstone/public/js/plugins/acls-tab.js +++ b/src/sunstone/public/js/plugins/acls-tab.js @@ -631,5 +631,7 @@ $(document).ready(function(){ infoListener(dataTable_acls); $('div#acls_tab div.legend_div').hide(); + + dataTable_acls.fnSort( [ [1,config['user_config']['table_order']] ] ); } }) diff --git a/src/sunstone/public/js/plugins/clusters-tab.js b/src/sunstone/public/js/plugins/clusters-tab.js index a2fc651f41..bbaf53491f 100644 --- a/src/sunstone/public/js/plugins/clusters-tab.js +++ b/src/sunstone/public/js/plugins/clusters-tab.js @@ -1474,5 +1474,6 @@ $(document).ready(function(){ initCheckAllBoxes(dataTable_clusters); tableCheckboxesListener(dataTable_clusters); infoListener(dataTable_clusters, "Cluster.showinfo"); + dataTable_clusters.fnSort( [ [1,config['user_config']['table_order']] ] ); } }); diff --git a/src/sunstone/public/js/plugins/config-tab.js b/src/sunstone/public/js/plugins/config-tab.js index 845bc93e12..23ec93b022 100644 --- a/src/sunstone/public/js/plugins/config-tab.js +++ b/src/sunstone/public/js/plugins/config-tab.js @@ -78,6 +78,10 @@ Config = { else { return []; } + }, + + "tableOrder": function(){ + return config['user_config']["table_order"]; } } @@ -138,6 +142,17 @@ var config_tab_content = \ \ \ +
\ +
\ + \ +
\ +
\ + \ +
\ +
\
\
\ \ @@ -268,6 +283,8 @@ function setupConfigDialog() { $('input#wss_checkbox').attr('checked','checked'); }; + $('#table_order option[value="'+config['user_config']["table_order"]+'"]', dialog).attr('selected','selected'); + $('#lang_sel option[value="'+config['user_config']["lang"]+'"]', dialog).attr('selected','selected'); $.each( config['available_views'], function(id, view) { @@ -279,7 +296,8 @@ function setupConfigDialog() { $('#config_submit', dialog).live('click',function(){ var lang = $('#lang_sel', dialog).val(); var vnc_wss = $('input#wss_checkbox', dialog).is(':checked') ? "yes" : "no"; - var default_view = $('#view_sel', dialog).val() + var table_order = $('#table_order', dialog).val(); + var default_view = $('#view_sel', dialog).val(); OpenNebula.User.show({ data : { @@ -290,6 +308,7 @@ function setupConfigDialog() { template["LANG"] = lang; template['VNC_WSS'] = vnc_wss; + template['TABLE_ORDER'] = table_order; template["DEFAULT_VIEW"] = default_view; template_str = ""; diff --git a/src/sunstone/public/js/plugins/datastores-tab.js b/src/sunstone/public/js/plugins/datastores-tab.js index fc6ef32187..6aef27c520 100644 --- a/src/sunstone/public/js/plugins/datastores-tab.js +++ b/src/sunstone/public/js/plugins/datastores-tab.js @@ -1177,5 +1177,6 @@ $(document).ready(function(){ }); $('div#datastores_tab div.legend_div').hide(); + dataTable_datastores.fnSort( [ [1,config['user_config']['table_order']] ] ); } }) diff --git a/src/sunstone/public/js/plugins/files-tab.js b/src/sunstone/public/js/plugins/files-tab.js index e58a3c7e41..7f78970fe5 100644 --- a/src/sunstone/public/js/plugins/files-tab.js +++ b/src/sunstone/public/js/plugins/files-tab.js @@ -980,5 +980,6 @@ $(document).ready(function(){ infoListener(dataTable_files,'File.showinfo'); $('div#files_tab div.legend_div').hide(); + dataTable_files.fnSort( [ [1,config['user_config']['table_order']] ] ); } }); diff --git a/src/sunstone/public/js/plugins/groups-tab.js b/src/sunstone/public/js/plugins/groups-tab.js index 6b924332be..bf59d3caae 100644 --- a/src/sunstone/public/js/plugins/groups-tab.js +++ b/src/sunstone/public/js/plugins/groups-tab.js @@ -639,5 +639,7 @@ $(document).ready(function(){ $('div#groups_tab div.legend_div').hide(); $('div#groups_tab_non_admin div.legend_div').hide(); + + dataTable_groups.fnSort( [ [1,config['user_config']['table_order']] ] ); } }) diff --git a/src/sunstone/public/js/plugins/hosts-tab.js b/src/sunstone/public/js/plugins/hosts-tab.js index b772537cb2..3d9335e30d 100644 --- a/src/sunstone/public/js/plugins/hosts-tab.js +++ b/src/sunstone/public/js/plugins/hosts-tab.js @@ -1034,5 +1034,7 @@ $(document).ready(function(){ // Hide help $('div#hosts_tab div.legend_div',main_tabs_context).hide(); + + dataTable_hosts.fnSort( [ [1,config['user_config']['table_order']] ] ); } }); diff --git a/src/sunstone/public/js/plugins/templates-tab.js b/src/sunstone/public/js/plugins/templates-tab.js index 30799e43a7..e1b92afdfe 100644 --- a/src/sunstone/public/js/plugins/templates-tab.js +++ b/src/sunstone/public/js/plugins/templates-tab.js @@ -5152,5 +5152,7 @@ $(document).ready(function(){ infoListener(dataTable_templates,'Template.showinfo'); $('div#templates_tab div.legend_div').hide(); + + dataTable_templates.fnSort( [ [1,config['user_config']['table_order']] ] ); } }); diff --git a/src/sunstone/public/js/plugins/users-tab.js b/src/sunstone/public/js/plugins/users-tab.js index 330851c092..2a1aa1d57a 100644 --- a/src/sunstone/public/js/plugins/users-tab.js +++ b/src/sunstone/public/js/plugins/users-tab.js @@ -984,5 +984,7 @@ $(document).ready(function(){ $('div#users_tab div.legend_div').hide(); $('div#users_tab_non_admin div.legend_div').hide(); + + dataTable_users.fnSort( [ [1,config['user_config']['table_order']] ] ); } }); diff --git a/src/sunstone/public/js/plugins/vms-tab.js b/src/sunstone/public/js/plugins/vms-tab.js index 465041c417..c83bb24c05 100644 --- a/src/sunstone/public/js/plugins/vms-tab.js +++ b/src/sunstone/public/js/plugins/vms-tab.js @@ -3178,7 +3178,7 @@ $(document).ready(function(){ { "bSortable": false, "aTargets": ["check",6,7,9,11] }, { "sWidth": "35px", "aTargets": [0] }, { "bVisible": true, "aTargets": Config.tabTableColumns(tab_name)}, - { "bVisible": false, "aTargets": ['_all']} + { "bVisible": false, "aTargets": ['_all']}, ] }); @@ -3205,5 +3205,8 @@ $(document).ready(function(){ infoListener(dataTable_vMachines,'VM.showinfo'); $('div#vms_tab div.legend_div').hide(); + + + dataTable_vMachines.fnSort( [ [1,config['user_config']['table_order']] ] ); } }) diff --git a/src/sunstone/sunstone-server.rb b/src/sunstone/sunstone-server.rb index 3889b7cca2..167bcdd30a 100755 --- a/src/sunstone/sunstone-server.rb +++ b/src/sunstone/sunstone-server.rb @@ -170,6 +170,7 @@ helpers do #Load options either from user settings or default config. # - LANG # - WSS CONECTION + # - TABLE ORDER if user['TEMPLATE/LANG'] session[:lang] = user['TEMPLATE/LANG'] @@ -186,6 +187,12 @@ helpers do "yes" : "no") end + if user['TEMPLATE/TABLE_ORDER'] + session[:table_order] = user['TEMPLATE/TABLE_ORDER'] + else + session[:table_order] = $conf[:table_order] + end + if user['TEMPLATE/DEFAULT_VIEW'] session[:default_view] = user['TEMPLATE/DEFAULT_VIEW'] else diff --git a/src/sunstone/views/index.erb b/src/sunstone/views/index.erb index c8f54f56fa..8901ce6e94 100644 --- a/src/sunstone/views/index.erb +++ b/src/sunstone/views/index.erb @@ -48,6 +48,7 @@ 'user_config' : { 'lang' : '<%= session[:lang] %>', 'vnc_wss' : '<%= session[:vnc_wss] %>', + 'table_order' : '<%= session[:table_order] %>', 'default_view' : '<%= session[:default_view] %>' }, 'system_config' : {