diff --git a/src/sunstone/public/app/utils/tab-datatable.js b/src/sunstone/public/app/utils/tab-datatable.js
index 2505db7e3b..c22d43d4d0 100644
--- a/src/sunstone/public/app/utils/tab-datatable.js
+++ b/src/sunstone/public/app/utils/tab-datatable.js
@@ -11,6 +11,7 @@ define(function(require) {
var Tips = require('utils/tips');
var OpenNebula = require('opennebula');
var Notifier = require('utils/notifier');
+ var OpenNebulaUser = require('opennebula/user');
/*
TEMPLATES
@@ -152,10 +153,38 @@ define(function(require) {
}
this.initSelectResourceTableSelect();
+ } else {
+ this.dataTableOptions.pageLength = config['page_length'];
}
this.dataTable = $('#' + this.dataTableId).dataTable(this.dataTableOptions);
+ // Remember page length only for non selectable datatables
+ if (!this.conf.select) {
+ this.dataTable.on( 'length.dt', function ( e, settings, len ) {
+
+ config['page_length'] = len;
+
+ OpenNebulaUser.show({
+ data : {
+ id: config['user_id']
+ },
+ success: function(request, response) {
+ var template = response.USER.TEMPLATE;
+
+ template["TABLE_DEFAULT_PAGE_LENGTH"] = len;
+
+ template_str = "";
+ $.each(template, function(key, value) {
+ template_str += (key + '=' + '"' + value + '"\n');
+ });
+
+ Sunstone.runAction("User.update_template", config['user_id'], template_str);
+ }
+ });
+ });
+ }
+
var that = this;
$('#' + this.dataTableId + 'Search').keyup(function() {
that.dataTable.fnFilter($(this).val());
diff --git a/src/sunstone/sunstone-server.rb b/src/sunstone/sunstone-server.rb
index 51ebd8cfe7..9e2b344bc1 100755
--- a/src/sunstone/sunstone-server.rb
+++ b/src/sunstone/sunstone-server.rb
@@ -229,6 +229,12 @@ helpers do
session[:lang] = $conf[:lang]
end
+ if user['TEMPLATE/TABLE_DEFAULT_PAGE_LENGTH']
+ session[:page_length] = user['TEMPLATE/TABLE_DEFAULT_PAGE_LENGTH']
+ else
+ session[:page_length] = DEFAULT_PAGE_LENGTH
+ end
+
wss = $conf[:vnc_proxy_support_wss]
#limit to yes,no options
session[:vnc_wss] = (wss == true || wss == "yes" || wss == "only" ?
diff --git a/src/sunstone/views/index.erb b/src/sunstone/views/index.erb
index fed17f11b6..877671dae5 100644
--- a/src/sunstone/views/index.erb
+++ b/src/sunstone/views/index.erb
@@ -9,7 +9,7 @@
<% if session[:lang] %>
<% end %>
-
+
<% view = $views_config.view(session[:user], session[:user_gname], session[:default_view]) %>
@@ -87,9 +88,9 @@
<% if $conf[:env] == 'dev' %>
-
+
<% else %>
-
+
<% end %>