From cd9b2cd8b9d53ba0929791e9ffe8fae5950b3a72 Mon Sep 17 00:00:00 2001 From: Bill Erickson <berick@esilibrary.com> Date: Thu, 9 Jun 2011 16:39:03 -0400 Subject: [PATCH] honor hit count user pref on results page Signed-off-by: Bill Erickson <berick@esilibrary.com> --- .../perlmods/lib/OpenILS/WWW/EGCatLoader/Search.pm | 22 +++++++++++++++++++++- .../templates/default/opac/parts/result/table.tt2 | 2 +- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Search.pm b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Search.pm index 50a09f1c79..787228c906 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Search.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Search.pm @@ -5,6 +5,7 @@ use OpenSRF::Utils::Logger qw/$logger/; use OpenILS::Utils::CStoreEditor qw/:funcs/; use OpenILS::Utils::Fieldmapper; use OpenILS::Application::AppUtils; +use OpenSRF::Utils::JSON; my $U = 'OpenILS::Application::AppUtils'; @@ -101,6 +102,25 @@ sub _prepare_biblio_search { return ($query, $site, $depth); } +sub _get_search_limit { + my $self = shift; + + # param takes precedence + my $limit = $self->cgi->param('limit'); + return $limit if $limit; + + if($self->editor->requestor) { + # See if the user has a hit count preference + my $lset = $self->editor->search_actor_user_setting({ + usr => $self->editor->requestor->id, + name => 'opac.hits_per_page' + })->[0]; + return OpenSRF::Utils::JSON->JSON2perl($lset->value) if $lset; + } + + return 10; # default +} + # context additions: # page_size # hit_count @@ -114,7 +134,7 @@ sub load_rresults { $ctx->{page} = 'rresult'; my $page = $cgi->param('page') || 0; my $facet = $cgi->param('facet'); - my $limit = $cgi->param('limit') || 10; # TODO user settings + my $limit = $self->_get_search_limit; my $loc = $cgi->param('loc'); my $offset = $page * $limit; diff --git a/Open-ILS/web/templates/default/opac/parts/result/table.tt2 b/Open-ILS/web/templates/default/opac/parts/result/table.tt2 index 83da3d8d8b..ba326e9c29 100644 --- a/Open-ILS/web/templates/default/opac/parts/result/table.tt2 +++ b/Open-ILS/web/templates/default/opac/parts/result/table.tt2 @@ -1,7 +1,7 @@ [% PROCESS "default/opac/parts/misc_util.tt2"; ctx.result_start = 1 + ctx.page_size * page; - ctx.result_stop = 1 + ctx.page_size * (page + 1); + ctx.result_stop = ctx.page_size * (page + 1); IF ctx.result_stop > ctx.hit_count; ctx.result_stop = ctx.hit_count; END; result_count = ctx.result_start; -- 2.11.0