From a027cffcf40bbac85d84e92e8316ffa121da7fa6 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. Signed-off-by: David Nind Signed-off-by: Jonathan Druart Signed-off-by: Tomas Cohen Arazi --- .../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 214a4434d2..23726640d8 100644 --- a/koha-tmpl/intranet-tmpl/prog/css/src/staff-global.scss +++ b/koha-tmpl/intranet-tmpl/prog/css/src/staff-global.scss @@ -2223,6 +2223,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 52f9da0105..9f2d98a972 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/patron-search.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/patron-search.inc @@ -368,7 +368,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(); @@ -388,6 +388,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 03c2fe768d..747920f760 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 %]