Bugzilla – Attachment 189794 Details for
Bug 34069
Add ability to restore a recently deleted borrower from deletedborrowers
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 34069: Allow for multiselection of branch and category
Bug-34069-Allow-for-multiselection-of-branch-and-c.patch (text/plain), 6.18 KB, created by
Lucas Gass (lukeg)
on 2025-11-20 14:42:54 UTC
(
hide
)
Description:
Bug 34069: Allow for multiselection of branch and category
Filename:
MIME Type:
Creator:
Lucas Gass (lukeg)
Created:
2025-11-20 14:42:54 UTC
Size:
6.18 KB
patch
obsolete
>From d1ea1872d3dd08e4446b08653af6104fe3b69579 Mon Sep 17 00:00:00 2001 >From: Lucas Gass <lucas@bywatersolutions.com> >Date: Thu, 20 Nov 2025 14:38:01 +0000 >Subject: [PATCH] Bug 34069: Allow for multiselection of branch and category > >--- > .../tools/restore_deleted_borrowers.tt | 40 +++++++++++++++++-- > tools/restore_deleted_borrowers.pl | 18 ++++++--- > 2 files changed, 48 insertions(+), 10 deletions(-) > >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/restore_deleted_borrowers.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/restore_deleted_borrowers.tt >index 184647b4233..6b904274504 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/restore_deleted_borrowers.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/restore_deleted_borrowers.tt >@@ -11,6 +11,11 @@ > <title>[% t("Restore deleted patrons") | html %] › [% t("Tools") | html %] › [% t("Koha") | html %]</title> > [% END %] > [% INCLUDE 'doc-head-close.inc' %] >+<style> >+ #search_form input[type="text"] { >+ width: 30%; >+ } >+</style> > </head> > > <body id="tools_restore_deleted_borrowers" class="tools"> >@@ -127,7 +132,7 @@ > </li> > <li> > <label for="categorycode">Patron category:</label> >- <select name="categorycode" id="categorycode"> >+ <select name="categorycode" id="categorycode" multiple="multiple"> > <option value="">All categories</option> > [% FOREACH cat IN Categories.all() %] > <option value="[% cat.categorycode | html %]"> [% cat.description | html %] </option> >@@ -136,7 +141,7 @@ > </li> > <li> > <label for="branchcode">Library:</label> >- <select name="branchcode" id="branchcode"> >+ <select name="branchcode" id="branchcode" multiple="multiple"> > [% IF can_view_all_libraries %] > <option value="">All libraries</option> > [% END %] >@@ -284,11 +289,38 @@ > [% INCLUDE 'calendar.inc' %] > [% Asset.js("js/tools-menu.js") | $raw %] > [% INCLUDE 'datatables.inc' %] >+ [% INCLUDE 'select2.inc' %] > <script> > $(document).ready(function() { >+ let selectFields = document.querySelectorAll('select[multiple]'); >+ selectFields.forEach((selectField) => { >+ $(selectField).select2({ >+ width: "30%", >+ allowClear: true, >+ }); >+ }); >+ >+ $('#search_form').on('submit', function(e) { >+ //check regular fields for values before submission >+ var fields = ['#cardnumber', '#borrowernumber', '#firstname', '#surname', '#deleted_from', '#deleted_to']; >+ var hasValue = fields.some(function(field) { >+ var val = $(field).val(); >+ return val !== '' && val !== null; >+ }); >+ >+ //if no values yet, check select2 fields >+ if (!hasValue) { >+ var branchcodeData = $('#branchcode').select2('data'); >+ if (branchcodeData && branchcodeData.length > 0 && branchcodeData[0].id) { >+ hasValue = true; >+ } >+ var catergoycodeData = $('#categorycode').select2('data'); >+ if (catergoycodeData && catergoycodeData.length > 0 && catergoycodeData[0].id) { >+ hasValue = true; >+ } >+ } > >- $('#search_form').on('submit' , function(e) { >- if ( $('#cardnumber').val() == '' && $('#borrowernumber').val() == '' && $('#firstname').val() == '' && $('#surname').val() == '' && $('#categorycode').val() == '' && $('#branchcode').val() == '' && $('#deleted_from').val() == '' && $('#deleted_to').val() == '' ) { >+ if (!hasValue) { > e.preventDefault(); > alert('Please fill out at least one search field.'); > return false; >diff --git a/tools/restore_deleted_borrowers.pl b/tools/restore_deleted_borrowers.pl >index 30b59c4cc39..c637e08ede4 100755 >--- a/tools/restore_deleted_borrowers.pl >+++ b/tools/restore_deleted_borrowers.pl >@@ -76,8 +76,8 @@ if ( $op eq 'search' ) { > my $surname = $input->param('surname'); > my $firstname = $input->param('firstname'); > my $email = $input->param('email'); >- my $categorycode = $input->param('categorycode'); >- my $branchcode = $input->param('branchcode'); >+ my @categorycodes = $input->multi_param('categorycode'); >+ my @branchcodes = $input->multi_param('branchcode'); > my $deleted_from = $input->param('deleted_from'); > my $deleted_to = $input->param('deleted_to'); > >@@ -87,8 +87,8 @@ if ( $op eq 'search' ) { > || $surname > || $firstname > || $email >- || $categorycode >- || $branchcode >+ || @categorycodes >+ || @branchcodes > || $deleted_from > || $deleted_to ) > { >@@ -99,8 +99,14 @@ if ( $op eq 'search' ) { > # these params should be exact matches > $search_params{cardnumber} = $cardnumber if $cardnumber; > $search_params{borrowernumber} = $borrowernumber if $borrowernumber; >- $search_params{categorycode} = $categorycode if $categorycode; >- $search_params{branchcode} = $branchcode if $branchcode; >+ >+ #multiselect params >+ if (@categorycodes) { >+ $search_params{categorycode} = { -in => \@categorycodes }; >+ } >+ if (@branchcodes) { >+ $search_params{branchcode} = { -in => \@branchcodes }; >+ } > > # these params don't necessarily have to be exact matches > $search_params{surname} = { 'like' => "%$surname%" } if $surname; >-- >2.39.5
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 34069
:
188299
|
188302
|
188988
|
188989
|
188990
|
189027
|
189028
|
189029
|
189030
|
189037
|
189066
|
189067
|
189370
|
189371
|
189372
|
189373
|
189374
|
189375
|
189376
|
189377
|
189642
|
189645
|
189718
|
189773
|
189774
|
189779
|
189780
|
189781
|
189782
|
189783
|
189784
|
189785
|
189786
|
189787
|
189788
|
189789
|
189790
|
189791
|
189792
|
189793
|
189794
|
189795
|
189940
|
189941
|
189942
|
189943
|
189944
|
189945
|
189946
|
189947
|
189948
|
189949
|
189950
|
189951
|
189952
|
189953
|
189954