Bug 17018: Split AdvancedSearchTypes for staff and OPAC
This patch adds a new system preference, OpacAdvancedSearchTypes, as an
OPAC-specific version of the AdvancedSearchTypes preference. Values from
AdvancedSearchTypes are copied to OpacAdvancedSearchTypes so that
behavior is consistent.
The patch also alters the output of the "Most popular" page so that:
1. The page heading is correct ("Most popular titles" instead of "Top
issues").
2. The table show both item type and collection whether or not the user
has submitted query with one of those fields as a filter.
To test, apply the patch and run the database update process.
- Go to Administration -> System preferences.
- Search for AdvancedSearchTypes. You should get two results, one for
the OPAC preference and one for the staff interface.
- Check that the OpacAdvancedSearchTypes settings match the
AdvancedSearchTypes settings.
- View the advanced search pages in the staff interface and OPAC to
confirm that the tabs look correct.
- Change the OpacAdvancedSearchTypes and AdvancedSearchTypes settings to
be different and confirm that each is applied separately to each
interface.
- Enable the OpacTopissue system preference.
- View the "Most popular" page in the OPAC.
- The page heading should be correct.
- The OpacAdvancedSearchTypes settings should be reflected in the
"Refine your search" sidebar: If "Collection" is checked, a filter
for collection should appear. If "Item types" is checked, a filter
for item types should appear.
- The output of your search should include collection and item type
regardless of what filters you've submitted.
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
This commit is contained in:
parent
69b9e1ddf4
commit
c73967d87c
|
|
@ -0,0 +1,13 @@
|
|||
use Modern::Perl;
|
||||
|
||||
return {
|
||||
bug_number => "17018",
|
||||
description => "Split AdvancedSearchTypes for staff and OPAC",
|
||||
up => sub {
|
||||
my ($args) = @_;
|
||||
my $dbh = $args->{dbh};
|
||||
|
||||
$dbh->do( "INSERT IGNORE INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `type` ) SELECT 'OpacAdvancedSearchTypes', `value`, `options`, 'Select which set of fields are available as limits on the OPAC advanced search page', `type` FROM systempreferences WHERE variable = 'AdvancedSearchTypes'" );
|
||||
|
||||
},
|
||||
}
|
||||
|
|
@ -390,6 +390,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `
|
|||
('OpacAddMastheadLibraryPulldown','0','','Adds a pulldown menu to select the library to search on the opac masthead.','YesNo'),
|
||||
('OpacAdvSearchMoreOptions','pubdate,itemtype,language,subtype,sorting,location','Show search options for the expanded view (More options)','pubdate|itemtype|language|subtype|sorting|location','multiple'),
|
||||
('OpacAdvSearchOptions','pubdate,itemtype,language,sorting,location','Show search options','pubdate|itemtype|language|subtype|sorting|location','multiple'),
|
||||
('OpacAdvancedSearchTypes','itemtypes','itemtypes|ccode','Select which set of fields are available as limits on the OPAC advanced search page','Choice'),
|
||||
('OPACAllowHoldDateInFuture','0','','If set, along with the AllowHoldDateInFuture system preference, OPAC users can set the date of a hold to be in the future.','YesNo'),
|
||||
('OpacAllowPublicListCreation','1',NULL,'If set, allows opac users to create public lists','YesNo'),
|
||||
('OpacAllowSharingPrivateLists','0',NULL,'If set, allows opac users to share private lists with other patrons','YesNo'),
|
||||
|
|
|
|||
|
|
@ -871,6 +871,12 @@ OPAC:
|
|||
subtype: Subtypes
|
||||
sorting: Sorting
|
||||
location: Location and availability
|
||||
-
|
||||
- Show tabs in the OPAC advanced search for limiting searches on the
|
||||
- pref: OpacAdvancedSearchTypes
|
||||
class: long
|
||||
- "fields (separate values with |). Tabs appear in the order listed.<br/>"
|
||||
- "<em>Currently supported values</em>: Item types (<strong>itemtypes</strong>), Collection, (<strong>ccode</strong>) and Shelving Location (<strong>loc</strong>)."
|
||||
Authentication:
|
||||
-
|
||||
- pref: OPACShibOnly
|
||||
|
|
|
|||
|
|
@ -96,11 +96,11 @@ Searching:
|
|||
0: "Don't add"
|
||||
- search history of the unlogged user to the next patron logging in.
|
||||
-
|
||||
- Show tabs in the OPAC and staff interface advanced search for limiting searches on the
|
||||
- Show tabs in the staff interface advanced search for limiting searches on the
|
||||
- pref: AdvancedSearchTypes
|
||||
class: long
|
||||
- "fields (separate values with |). Tabs appear in the order listed.<br/>"
|
||||
- "<em>Currently supported values</em>: Item types (<strong>itemtypes</strong>), Collection Codes (<strong>ccode</strong>) and Shelving Location (<strong>loc</strong>)."
|
||||
- "<em>Currently supported values</em>: Item types (<strong>itemtypes</strong>), Collection, (<strong>ccode</strong>) and Shelving Location (<strong>loc</strong>)."
|
||||
-
|
||||
- Limit the languages listed in the advanced search drop-down to the
|
||||
- pref: AdvancedSearchLanguages
|
||||
|
|
|
|||
|
|
@ -25,8 +25,8 @@
|
|||
</select></li>
|
||||
[% END %]
|
||||
|
||||
[% AdvancedSearchTypes = Koha.Preference('AdvancedSearchTypes').split('\|') %]
|
||||
[% IF AdvancedSearchTypes.grep('^itemtypes$').size %]
|
||||
[% OpacAdvancedSearchTypes = Koha.Preference('OpacAdvancedSearchTypes').split('\|') %]
|
||||
[% IF OpacAdvancedSearchTypes.grep('^itemtypes$').size %]
|
||||
<li>
|
||||
<label for="itemtype">Limit to: </label>
|
||||
<select name="itemtype" id="itemtype">
|
||||
|
|
@ -44,7 +44,7 @@
|
|||
</li>
|
||||
[% END %]
|
||||
|
||||
[% IF AdvancedSearchTypes.grep('^ccode$').size %]
|
||||
[% IF OpacAdvancedSearchTypes.grep('^ccode$').size %]
|
||||
<li>
|
||||
<label for="ccode">Limit to:</label>
|
||||
<select name="ccode" id="ccode">
|
||||
|
|
|
|||
|
|
@ -65,9 +65,10 @@
|
|||
<div class="col-10 order-first order-md-first order-lg-2">
|
||||
<div id="topissues" class="maincontent">
|
||||
|
||||
<h1>Top issues</h1>
|
||||
<h1>Most popular</h1>
|
||||
|
||||
[% IF ( results ) %]
|
||||
[% OpacAdvancedSearchTypes = Koha.Preference('OpacAdvancedSearchTypes').split('\|') %]
|
||||
<table id="topissuest" class="table table-bordered table-striped">
|
||||
<caption>
|
||||
The [% limit | html %] most checked-out
|
||||
|
|
@ -87,7 +88,8 @@
|
|||
<thead>
|
||||
<tr>
|
||||
<th class="anti-the">Title</th>
|
||||
<th>[% IF ( ccodesearch ) %]Collection[% ELSE %]Item type[% END %]</th>
|
||||
<th>Item type</th>
|
||||
<th>Collection</th>
|
||||
<th>Checkouts</th>
|
||||
[% IF Koha.Preference( 'opacuserlogin' ) == 1 %]
|
||||
<th class="NoSort"> </th>
|
||||
|
|
@ -110,13 +112,12 @@
|
|||
[% IF ( result.item('size') ) %][% result.item('size') | html %][% END %]</p>
|
||||
</td>
|
||||
<td>
|
||||
[% IF Koha.Preference('AdvancedSearchTypes') == 'ccode' %]
|
||||
<span class="tdlabel">Collection</span>
|
||||
[% AuthorisedValues.GetByCode('ccode', result.ccode, 1) | html %]
|
||||
[% ELSE %]
|
||||
<span class="tdlabel">Item type</span>
|
||||
[% ItemTypes.GetDescription(result.itemtype) | html %]
|
||||
[% END %]
|
||||
<span class="tdlabel">Item type</span>
|
||||
[% ItemTypes.GetDescription(result.itemtype) | html %]
|
||||
</td>
|
||||
<td>
|
||||
<span class="tdlabel">Collection</span>
|
||||
[% AuthorisedValues.GetByCode('ccode', result.ccode, 1) | html %]
|
||||
</td>
|
||||
<td data-order="[% result.count | html %]">
|
||||
<span class="tdlabel">Checkouts: </span>
|
||||
|
|
@ -150,7 +151,7 @@
|
|||
<script>
|
||||
$(function() {
|
||||
$("#topissuest").dataTable($.extend(true, {}, dataTablesDefaults, {
|
||||
"sorting": [[2, "desc"]],
|
||||
"sorting": [[3, "desc"]],
|
||||
"columnDefs": [
|
||||
{ "sortable": false, "searchable": false, 'targets': [ 'NoSort' ] },
|
||||
{ "type": "anti-the", "targets" : [ "anti-the" ] }
|
||||
|
|
|
|||
|
|
@ -239,7 +239,7 @@ foreach my $itemtype ( keys %{$itemtypes} ) {
|
|||
my $itype_or_itemtype = (C4::Context->preference("item-level_itypes"))?'itype':'itemtype';
|
||||
my @advancedsearchesloop;
|
||||
my $cnt;
|
||||
my $advanced_search_types = C4::Context->preference("AdvancedSearchTypes") || "itemtypes";
|
||||
my $advanced_search_types = C4::Context->preference("OpacAdvancedSearchTypes") || "itemtypes";
|
||||
my @advanced_search_types = split(/\|/, $advanced_search_types);
|
||||
|
||||
my $hidingrules = C4::Context->yaml_preference('OpacHiddenItems') // {};
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ if (!$do_it && C4::Context->userenv && C4::Context->userenv->{'branch'} ) {
|
|||
}
|
||||
my $itemtype = $input->param('itemtype') || '';
|
||||
my $timeLimit = $input->param('timeLimit') || 3;
|
||||
my $advanced_search_types = C4::Context->preference('AdvancedSearchTypes');
|
||||
my $advanced_search_types = C4::Context->preference('OpacAdvancedSearchTypes');
|
||||
my @advanced_search_types = split /\|/, $advanced_search_types;
|
||||
|
||||
my $params = {
|
||||
|
|
|
|||
Loading…
Reference in New Issue