Bug 26296: Use new table column selection modal for OPAC suggestion fields

This patch builds on the change introduced by Bug 22844, changing the
selection mode for the OPACSuggestionMandatoryFields and
OPACSuggestionUnwantedFields preferences to a modal.

This patch includes a database update for converting the format of the
saved values in these preferences. Previously the suggestions table
fields would be separated by a comma. Now they should be separated by a
pipe.

To test, apply the patch run the database update.

 - Go to Administration -> System preferences.
 - Search for 'OPACSuggestion.'
 - The input fields for OPACSuggestionUnwantedFields and
   OPACSuggestionMandatoryFields should appear as "locked" (read-only)
   inputs.
 - Clicking either input field should trigger a modal window with
   checkboxes for each available column in the suggestions table.
 - Test that the "select all" and "clear all" links work correctly.
 - Test that the "cancel" link closes the modal without saving your
   selections.
 - Test that the "Save" button closes the modal, copies your
   selections to the form field, and triggers the preference-saving
   function.
 - Test that changes to both preferences are correctly reflected in the
   OPAC suggestion form.

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
This commit is contained in:
Owen Leonard 2021-01-08 20:06:45 +00:00 committed by Fridolin Somers
parent 895fc88605
commit fe46f077a7
5 changed files with 35 additions and 27 deletions

View File

@ -0,0 +1,15 @@
$DBversion = 'XXX'; # will be replaced by the RM
if( CheckVersion( $DBversion ) ) {
# you can use $dbh here like:
# $dbh->do( "ALTER TABLE biblio ADD COLUMN badtaste int" );
# or perform some test and warn
# if( !column_exists( 'biblio', 'biblionumber' ) ) {
# warn "There is something wrong";
# }
$dbh->do("UPDATE systempreferences SET value = REPLACE(value, ',', '|') WHERE variable IN ('OPACSuggestionMandatoryFields','OPACSuggestionUnwantedFields')");
# Always end with this (adjust the bug info)
NewVersion( $DBversion, 26296, "Replace comma with pipe in OPACSuggestion field preferences");
}

View File

@ -607,34 +607,14 @@ OPAC:
-
- "Fields that should be mandatory for patron purchase suggestions:"
- pref: OPACSuggestionMandatoryFields
multiple:
title: Title
author: Author
copyrightdate: Copyright or publication date
isbn: ISBN, ISSN or other standard number
publishercode: Publisher name
collectiontitle: Collection title
place: Publication place
itemtype: Item type
branch: Library or branch
patronreason: Patron reason
note: Note
type: modalselect
source: suggestions
- "<br />Note: if none of the above options are selected, 'Title' field would be mandatory anyway, by default."
-
- "Fields that should be hidden for patron purchase suggestions:"
- pref: OPACSuggestionUnwantedFields
multiple:
author: Author
copyrightdate: Copyright or publication date
isbn: ISBN, ISSN or other standard number
publishercode: Publisher name
collectiontitle: Collection title
place: Publication place
itemtype: Item type
quantity: Quantity
branch: Library or branch
patronreason: Patron reason
note: Note
type: modalselect
source: suggestions
- '<br />Note: Do not make <a href="/cgi-bin/koha/admin/preferences.pl?op=search&searchfield=OPACSuggestionMandatoryFields">OPACSuggestionMandatoryFields</a> unwanted fields '
-
- pref: OpacHiddenItems

View File

@ -0,0 +1,13 @@
{
"author": "author",
"copyrightdate": "copyrightdate",
"isbn": "isbn",
"publishercode": "publishercode",
"collectiontitle": "collectiontitle",
"place": "place",
"quantity": "quantity",
"itemtype": "itemtype",
"branchcode": "branchcode",
"patronreason": "patronreason",
"note": "note"
}

View File

@ -183,7 +183,7 @@
[% END %]
</li>
[% END %]
[% UNLESS ( branch_hidden )%]
[% UNLESS ( branchcode_hidden )%]
<li>
[% IF ( branchcode_required ) %]
<label for="branch" class="required">Library:</label>

View File

@ -248,7 +248,7 @@ my $patron_reason_loop = GetAuthorisedValues("OPAC_SUG", "opac");
my @mandatoryfields;
if ( $op eq 'add' ) {
my $fldsreq_sp = C4::Context->preference("OPACSuggestionMandatoryFields") || 'title';
@mandatoryfields = sort split(/\s*\,\s*/, $fldsreq_sp);
@mandatoryfields = sort split(/\s*\|\s*/, $fldsreq_sp);
foreach (@mandatoryfields) {
$template->param( $_."_required" => 1);
}
@ -271,7 +271,7 @@ my @unwantedfields;
{
last unless ($op eq 'add');
my $fldsreq_sp = C4::Context->preference("OPACSuggestionUnwantedFields");
@unwantedfields = sort split(/\s*\,\s*/, $fldsreq_sp);
@unwantedfields = sort split(/\s*\|\s*/, $fldsreq_sp);
foreach (@unwantedfields) {
$template->param( $_."_hidden" => 1);
}