From fb1aca1dbff5228579d7140dbb46009264cf6315 Mon Sep 17 00:00:00 2001 From: Owen Leonard Date: Fri, 28 Jan 2022 17:14:15 +0000 Subject: [PATCH] Bug 29971: Remember selections across patron search pages This patch modifies the patron search results page to enable checkbox selections to be remembered in the browser's localStorage. This allows checkbox selections to persist while navigating through multiple pages of search results or even across multiple different searches. Once selected, these values can be added to a patron list or submitted for merging. Selections can be cleared manually and will be automatically be removed upon logout. To test, apply the patch and rebuild the staff interface CSS (https://wiki.koha-community.org/wiki/Working_with_SCSS_in_the_OPAC_and_staff_client). - In the staff interface perform a patron search in the Patrons module which will return multiple pages of results.. - Check checkboxes next to several patrons. - After one checkbox is checked the "Add to patron list" button should be enabled. - After more than one checkbox is checked the "Merge selected patrons" button should be enabled. - A box should appear in the toolbar above the search results, "Patrons selected: X" - Navigate to another page of results. Check more checkboxes. The "Patrons selected" information should be updated. - Return to the first page of results. Your original selections should still be checked. - Test that the correct set of patrons is used when clicking "Merge selected patrons" or when using "Add to patron list." - Click the "Clear" button in the selections information box. Checkboxes should be cleared on every page of results you previously checked. - The "Add to patron list" and "Merge selected patrons" buttons should become disabled. - After making several selections, log out of the staff interface and log back in, returning to the same patron search. Your selections should have been forgotten. --- .../prog/css/src/staff-global.scss | 20 +++ .../prog/en/includes/patron-search.inc | 5 +- .../prog/en/modules/members/member.tt | 128 +++++++++++++----- .../intranet-tmpl/prog/js/staff-global.js | 1 + 4 files changed, 117 insertions(+), 37 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/css/src/staff-global.scss b/koha-tmpl/intranet-tmpl/prog/css/src/staff-global.scss index 49a5ce8767..4d086e4e53 100644 --- a/koha-tmpl/intranet-tmpl/prog/css/src/staff-global.scss +++ b/koha-tmpl/intranet-tmpl/prog/css/src/staff-global.scss @@ -2213,6 +2213,26 @@ li { } } +#patron_search_selected { + background-color: #F9FEFF; + border: 1px solid #B9D8D9; + border-color: #A2CBCC #CEE0E3 #CEE0E3 #A2CBCC; + border-radius: 3px; + color: #333; + display: inline-block; + font-size: 11px; + line-height: 1.5; + padding: 5px 10px; + text-align: center; + vertical-align: middle; + white-space: nowrap; +} + +#clear-patron-selection { + display: inline-block; + margin-left: 1em; +} + #search-facets { border: 1px solid #B9D8D9; border-radius: 5px 5px 0 0; diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/patron-search.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/patron-search.inc index 7dddb52339..bc86dbbbaa 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/patron-search.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/patron-search.inc @@ -369,7 +369,7 @@ return json.data; } }, - [% IF open_on_row_click OR preview_on_name_click %] + [% IF open_on_row_click OR preview_on_name_click OR remember_selections %] "drawCallback": function( settings ) { var api = this.api(); var data = api.data(); @@ -389,6 +389,9 @@ $(tr).find("a.patron_name").addClass("patron_preview"); }); [% END %] + [% IF remember_selections %] + prepSelections(); + [% END %] }, [% END %] "iDeferLoading": defer_loading, diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/member.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/member.tt index 7c523061e3..b91b527582 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/member.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/member.tt @@ -95,6 +95,10 @@ [% IF CAN_user_borrowers_edit_borrowers %] [% END %] + [% END %] @@ -147,15 +151,38 @@ [% INCLUDE 'str/members-menu.inc' %] [% Asset.js("js/members-menu.js") | $raw %]