From 7cc0745a6b263de15fab08fa56d21befe4f27f8c Mon Sep 17 00:00:00 2001 From: Owen Leonard Date: Fri, 8 Jan 2021 20:06:45 +0000 Subject: [PATCH] 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. --- ...ma-with-pipe-in-OPACSuggestion-preferences.perl | 16 +++++++++++++ .../prog/en/modules/admin/preferences/opac.pref | 28 ++++------------------ .../en/modules/admin/preferences/suggestions.json | 13 ++++++++++ .../bootstrap/en/modules/opac-suggestions.tt | 2 +- opac/opac-suggestions.pl | 4 ++-- 5 files changed, 36 insertions(+), 27 deletions(-) create mode 100644 installer/data/mysql/atomicupdate/bug_26296-Replace-comma-with-pipe-in-OPACSuggestion-preferences.perl create mode 100644 koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/suggestions.json diff --git a/installer/data/mysql/atomicupdate/bug_26296-Replace-comma-with-pipe-in-OPACSuggestion-preferences.perl b/installer/data/mysql/atomicupdate/bug_26296-Replace-comma-with-pipe-in-OPACSuggestion-preferences.perl new file mode 100644 index 0000000000..b1e7343454 --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug_26296-Replace-comma-with-pipe-in-OPACSuggestion-preferences.perl @@ -0,0 +1,16 @@ +$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"); +} + diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref index 3434bbdc48..2715da26cf 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref @@ -613,34 +613,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 - "
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 - '
Note: Do not make OPACSuggestionMandatoryFields unwanted fields ' - - pref: OpacHiddenItems diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/suggestions.json b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/suggestions.json new file mode 100644 index 0000000000..e351df2155 --- /dev/null +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/suggestions.json @@ -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" +} diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-suggestions.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-suggestions.tt index c5d8ef650d..89ae92d576 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-suggestions.tt +++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-suggestions.tt @@ -174,7 +174,7 @@ [% END %] [% END %] - [% UNLESS ( branch_hidden )%] + [% UNLESS ( branchcode_hidden )%]
  • [% IF ( branchcode_required ) %] diff --git a/opac/opac-suggestions.pl b/opac/opac-suggestions.pl index 77e0fcedb8..a1305798d4 100755 --- a/opac/opac-suggestions.pl +++ b/opac/opac-suggestions.pl @@ -223,7 +223,7 @@ my @mandatoryfields; { last unless ($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); } @@ -246,7 +246,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); } -- 2.11.0