From f0615326d9095c031603d0b68dc9eb4be6450fe5 Mon Sep 17 00:00:00 2001 From: Mike Rylander Date: Thu, 4 Feb 2016 17:19:03 -0500 Subject: [PATCH] LP#1549505: Add ability to set default sorter via global flag Signed-off-by: Mike Rylander Signed-off-by: Galen Charlton --- Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm | 5 +++++ Open-ILS/src/sql/Pg/950.data.seed-values.sql | 14 ++++++++++++++ .../src/sql/Pg/upgrade/XXXX.schema.statisitcal-ratings.sql | 7 +++++++ Open-ILS/src/templates/opac/parts/advanced/search.tt2 | 6 +++++- Open-ILS/src/templates/opac/parts/filtersort.tt2 | 5 +++++ Open-ILS/src/templates/opac/parts/searchbar.tt2 | 3 +++ 6 files changed, 39 insertions(+), 1 deletion(-) diff --git a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm index 66f73d1f56..473b6136be 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm @@ -256,6 +256,11 @@ sub load_common { return $self->redirect_ssl unless $self->cgi->https; } + # XXX Cache this? Makes testing difficult as apache needs a restart. + my $default_sort = $e->retrieve_config_global_flag('opac.default_sort'); + $ctx->{default_sort} = + ($default_sort && $U->is_true($default_sort->enabled)) ? $default_sort->value : ''; + $ctx->{referer} = $self->cgi->referer; $ctx->{path_info} = $self->cgi->path_info; $ctx->{full_path} = $ctx->{base_path} . $self->cgi->path_info; 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 5b8fccec6d..e7a2bfbd8c 100644 --- a/Open-ILS/src/sql/Pg/950.data.seed-values.sql +++ b/Open-ILS/src/sql/Pg/950.data.seed-values.sql @@ -10279,6 +10279,20 @@ INSERT INTO config.global_flag (name, label, value, enabled) VALUES ( TRUE ); +/* To be added when upgrade scripts are pulled into the baseline +INSERT INTO config.global_flag (name, label, value, enabled) VALUES ( + 'opac.default_sort', + oils_i18n_gettext( + 'opac.default_sort', + 'OPAC Default Sort (titlesort, authorsort, pubdate, popularity, poprel, or empty)', + 'cgf', + 'label' + ), + '', + TRUE +); +*/ + INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype) VALUES ( 'history.circ.retention_age', diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.statisitcal-ratings.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.statisitcal-ratings.sql index e35c75b339..9d668c422d 100644 --- a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.statisitcal-ratings.sql +++ b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.statisitcal-ratings.sql @@ -3,6 +3,13 @@ BEGIN; CREATE SCHEMA rating; +INSERT INTO config.global_flag (name, label, value, enabled) VALUES ( + 'opac.default_sort', + 'OPAC Default Sort (titlesort, authorsort, pubdate, popularity, poprel, or empty for relevance)', + '', + TRUE +); + CREATE TABLE rating.popularity_parameter ( id INT PRIMARY KEY, name TEXT NOT NULL UNIQUE, -- i18n diff --git a/Open-ILS/src/templates/opac/parts/advanced/search.tt2 b/Open-ILS/src/templates/opac/parts/advanced/search.tt2 index e35095b074..b745b32578 100644 --- a/Open-ILS/src/templates/opac/parts/advanced/search.tt2 +++ b/Open-ILS/src/templates/opac/parts/advanced/search.tt2 @@ -101,9 +101,13 @@ [% CASE "sort_selector"; + default_sort=ctx.default_sort; + IF CGI.param('sort'); + default_sort=CGI.param('sort'); + END; INCLUDE "opac/parts/filtersort.tt2" id=adv_chunk.id - value=CGI.param('sort') class='results_header_sel'; + value=default_sort class='results_header_sel'; %] [% IF NOT metarecords.disabled %] diff --git a/Open-ILS/src/templates/opac/parts/filtersort.tt2 b/Open-ILS/src/templates/opac/parts/filtersort.tt2 index 1907058175..5bc8ed0485 100644 --- a/Open-ILS/src/templates/opac/parts/filtersort.tt2 +++ b/Open-ILS/src/templates/opac/parts/filtersort.tt2 @@ -14,4 +14,9 @@ + + + + + diff --git a/Open-ILS/src/templates/opac/parts/searchbar.tt2 b/Open-ILS/src/templates/opac/parts/searchbar.tt2 index ac13ce0958..64cae0d926 100644 --- a/Open-ILS/src/templates/opac/parts/searchbar.tt2 +++ b/Open-ILS/src/templates/opac/parts/searchbar.tt2 @@ -100,6 +100,9 @@ [% END %] [%- END %] + [% IF NOT CGI.param('sort') %] + + [% END %] [% UNLESS took_care_of_form %][% END %] [% IF (is_advanced AND NOT is_special) AND CGI.param('qtype') %]
-- 2.11.0