From 0c77b23004684e5c4caec42f6ba20a341ec4dfa7 Mon Sep 17 00:00:00 2001 From: Tino Vazquez Date: Fri, 3 Jul 2015 17:37:45 +0200 Subject: [PATCH] Feature #3268: Remember the number of items to show on datatable --- .../public/app/utils/tab-datatable.js | 29 +++++++++++++++++++ src/sunstone/sunstone-server.rb | 6 ++++ src/sunstone/views/index.erb | 9 +++--- 3 files changed, 40 insertions(+), 4 deletions(-) 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 %>