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' : {