From: Kyle Tomita Date: Thu, 4 Apr 2013 00:07:51 +0000 (-0700) Subject: LP1164197 - Add page number navigation to my lists and setting for number of lists... X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=5e7bb3f525a47f785202eb8325a8fe5fe3903be0;p=working%2FEvergreen.git LP1164197 - Add page number navigation to my lists and setting for number of lists per page Added a user setting for the number of lists per page. Signed-off-by: Kyle Tomita --- diff --git a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm index 0838a29eb5..38cbbbd0e9 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm @@ -191,6 +191,7 @@ sub load { return $self->load_myopac_hold_history if $path =~ m|opac/myopac/hold_history|; return $self->load_myopac_prefs_notify if $path =~ m|opac/myopac/prefs_notify|; return $self->load_myopac_prefs_settings if $path =~ m|opac/myopac/prefs_settings|; + return $self->load_myopac_prefs_my_lists if $path =~ m|opac/myopac/prefs_my_lists|; return $self->load_myopac_prefs if $path =~ m|opac/myopac/prefs|; return $self->load_sms_cn if $path =~ m|opac/sms_cn|; diff --git a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Account.pm b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Account.pm index ec7bb9658a..00c8eae765 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Account.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Account.pm @@ -437,6 +437,42 @@ sub load_myopac_prefs_settings { return $self->_load_user_with_prefs || Apache2::Const::OK; } +sub load_myopac_prefs_my_lists { + my $self = shift; + + my @user_prefs = qw/ + opac.lists_per_page + /; + + my $stat = $self->_load_user_with_prefs; + return $stat if $stat; + + return Apache2::Const::OK + unless $self->cgi->request_method eq 'POST'; + + # some setting values from the form don't match the + # required value/format for the db, so they have to be + # individually translated. + + my %settings; + my $set_map = $self->ctx->{user_setting_map}; + + foreach my $key (@user_prefs) { + my $val = $self->cgi->param($key); + $settings{$key}= $val unless $$set_map{$key} eq $val; + } + + # Send the modified settings off to be saved + $U->simplereq( + 'open-ils.actor', + 'open-ils.actor.patron.settings.update', + $self->editor->authtoken, undef, \%settings); + + # re-fetch user prefs + $self->ctx->{updated_user_settings} = \%settings; + return $self->_load_user_with_prefs || Apache2::Const::OK; +} + sub fetch_user_holds { my $self = shift; my $hold_ids = shift; @@ -1676,11 +1712,27 @@ sub _update_bookbag_metadata { return 0; } +sub _get_lists_per_page { + my $self = shift; + + if($self->editor->requestor) { + $self->timelog("Checking for opac.lists_per_page preference"); + # See if the user has a lists per page preference + my $ipp = $self->editor->search_actor_user_setting({ + usr => $self->editor->requestor->id, + name => 'opac.lists_per_page' + })->[0]; + $self->timelog("Got opac.lists_per_page preference"); + return OpenSRF::Utils::JSON->JSON2perl($ipp->value) if $ipp; + } + return 10; # default +} + sub load_myopac_bookbags { my $self = shift; my $e = $self->editor; my $ctx = $self->ctx; - my $limit = $self->cgi->param('limit') || 10; + my $limit = $self->_get_lists_per_page || 10; my $offset = $self->cgi->param('offset') || 0; $ctx->{bookbags_limit} = $limit; diff --git a/Open-ILS/src/sql/Pg/950.data.seed-values.sql b/Open-ILS/src/sql/Pg/950.data.seed-values.sql index d693e6ce37..454357b6bf 100644 --- a/Open-ILS/src/sql/Pg/950.data.seed-values.sql +++ b/Open-ILS/src/sql/Pg/950.data.seed-values.sql @@ -2481,6 +2481,25 @@ INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatyp VALUES ('opac.hits_per_page', TRUE, 'Hits per Page', 'Hits per Page', 'string'); INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype) + VALUES ( + 'opac.lists_per_page', + TRUE, + oils_i18n_gettext( + 'opac.lists_per_page', + 'Lists per Page', + 'cust', + 'label' + ), + oils_i18n_gettext( + 'opac.lists_per_page', + 'A number designating the amount of lists displayed per page.', + 'cust', + 'description' + ), + 'string' + ); + +INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype) VALUES ('opac.hold_notify', TRUE, 'Hold Notification Format', 'Hold Notification Format', 'string'); INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype) diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.add_setting_for_selecting_lists_per_page_for_my_list.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.add_setting_for_selecting_lists_per_page_for_my_list.sql new file mode 100644 index 0000000000..3af2a1210e --- /dev/null +++ b/Open-ILS/src/sql/Pg/upgrade/XXXX.add_setting_for_selecting_lists_per_page_for_my_list.sql @@ -0,0 +1,29 @@ +-- Evergreen DB patch XXXX.add_setting_for_selecting_lists_per_page_for_my_list.sql +-- +-- Adds a setting for selecting the number of lists per page for my list. +-- +BEGIN; + +-- check whether patch can be applied +SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version); + +INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype) + VALUES ( + 'opac.lists_per_page', + TRUE, + oils_i18n_gettext( + 'opac.lists_per_page', + 'Lists per Page', + 'cust', + 'label' + ), + oils_i18n_gettext( + 'opac.lists_per_page', + 'A number designating the amount of lists displayed per page.', + 'cust', + 'description' + ), + 'string' + ); + +COMMIT; diff --git a/Open-ILS/src/templates/opac/myopac/lists.tt2 b/Open-ILS/src/templates/opac/myopac/lists.tt2 index 0b2977dc93..5f7dc2dd29 100644 --- a/Open-ILS/src/templates/opac/myopac/lists.tt2 +++ b/Open-ILS/src/templates/opac/myopac/lists.tt2 @@ -67,12 +67,12 @@ [%- IF offset > 0 -%] limit, offset => (offset - limit) + offset => (offset - limit) }) %]'>[% l('Previous') %] [%- END; -%] [%- IF (ctx.bookbag_count - offset) > limit; -%] limit, offset => (offset + limit) + offset => (offset + limit) }) %]'>[% l('Next') %] [%- END; -%] diff --git a/Open-ILS/src/templates/opac/myopac/prefs_my_lists.tt2 b/Open-ILS/src/templates/opac/myopac/prefs_my_lists.tt2 new file mode 100644 index 0000000000..3e92a523b0 --- /dev/null +++ b/Open-ILS/src/templates/opac/myopac/prefs_my_lists.tt2 @@ -0,0 +1,45 @@ +[% PROCESS "opac/parts/header.tt2"; + WRAPPER "opac/parts/myopac/prefs_base.tt2"; + myopac_page = "prefs"; + prefs_page = 'my_lists' %] + + +
+ + + + + [% IF ctx.updated_user_settings %] + + [% END %] + + [%- setting = 'opac.lists_per_page' -%] + + + + + +
+
+ [% l('Account Successfully Updated') %] +
+
+ + [% l('List Items Help') %] +
+ +
+ [% INCLUDE "opac/parts/myopac/prefs_hints.tt2" %] +[% END %] \ No newline at end of file diff --git a/Open-ILS/src/templates/opac/myopac/prefs_settings.tt2 b/Open-ILS/src/templates/opac/myopac/prefs_settings.tt2 index 7f682a29c7..7b27be7fe9 100644 --- a/Open-ILS/src/templates/opac/myopac/prefs_settings.tt2 +++ b/Open-ILS/src/templates/opac/myopac/prefs_settings.tt2 @@ -20,7 +20,7 @@ [%- setting = 'opac.hits_per_page' -%] - +