diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt index 25b9b2c9e7..52439a2169 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt @@ -286,7 +286,6 @@ [% END %] - [% UNLESS ( multi_hold ) %]

Place hold on [% INCLUDE 'biblio-title.inc' link = 1 %] [% IF biblio.author %]by [% biblio.author | html %][% END %]

@@ -1564,6 +1563,12 @@ [% INCLUDE 'datatables.inc' %] [% INCLUDE 'calendar.inc' %] [% INCLUDE 'select2.inc' %] + + [% Asset.js("js/holds.js") | $raw %] + [% Asset.js("js/hold-group.js") | $raw %] + [% Asset.js("js/basket.js") | $raw %] [% SET url_biblio_params = (supplyill ? "supplyill=" _ supplyill _ "&" : "") _ "biblionumber=" _ biblionumbers.join("&biblionumber=") %] [% IF multi_hold %] @@ -2028,6 +2033,12 @@ if (!localStorage.selectedHolds || document.referrer.replace(/\?.*/, "") !== document.location.origin + document.location.pathname) { localStorage.selectedHolds = []; } + [% IF successful_holds && Koha.Preference('AutoDeleteFromCartWhenHoldPlaced').grep('staff').size %] + [% FOREACH success IN successful_holds.split('\|') %] + delSingleRecord('[% success | html %]'); + [% END %] + [% END %] + }); [% UNLESS patron %] diff --git a/reserve/placerequest.pl b/reserve/placerequest.pl index d0c5b4d036..3903546be8 100755 --- a/reserve/placerequest.pl +++ b/reserve/placerequest.pl @@ -81,6 +81,7 @@ if ( $op eq 'cud-placerequest' && $patron ) { my %failed_holds; my @successful_hold_ids; + my @successful_biblionumbers; foreach my $biblionumber ( keys %bibinfos ) { my $can_override = C4::Context->preference('AllowHoldPolicyOverride'); @@ -121,6 +122,7 @@ if ( $op eq 'cud-placerequest' && $patron ) { iso18626_payload => \%iso18626_payload, } ); + push @successful_biblionumbers, $biblionumber; push @successful_hold_ids, $reserve_id; $hold_priority++; @@ -154,6 +156,7 @@ if ( $op eq 'cud-placerequest' && $patron ) { } ); push @successful_hold_ids, $reserve_id; + push @successful_biblionumbers, $biblionumber; } } else { @@ -180,6 +183,7 @@ if ( $op eq 'cud-placerequest' && $patron ) { } ); push @successful_hold_ids, $reserve_id; + push @successful_biblionumbers, $biblionumber; } } } @@ -195,6 +199,7 @@ if ( $op eq 'cud-placerequest' && $patron ) { push( @failed_hold_msgs, $msg ); } $redirect_url->query_form( biblionumber => [@biblionumbers], failed_holds => \@failed_hold_msgs ); + $redirect_url .= "&successful_holds=" . join( '|', @successful_biblionumbers ); print $input->redirect($redirect_url); } elsif ( $borrowernumber eq '' ) { print $input->header(); diff --git a/reserve/request.pl b/reserve/request.pl index 4eabdb6e08..6c269d648c 100755 --- a/reserve/request.pl +++ b/reserve/request.pl @@ -92,7 +92,8 @@ my $exceeded_holds_per_record; my @failed_holds = $input->multi_param('failed_holds'); my $form_submitted = $input->param('form_submitted'); -my $op = $input->param('op') || q{}; +my @successful_holds = $input->multi_param('successful_holds'); +my $op = $input->param('op') || q{}; if ( $op eq 'cud-move' ) { my $where = $input->param('where'); @@ -803,8 +804,7 @@ $template->param( biblionumbers => \@biblionumbers ); $template->param( pickup => $pickup || C4::Context->userenv->{branch} ); $template->param( borrowernumber => $borrowernumber_hold ); - -$template->param( failed_holds => \@failed_holds ); +$template->param( failed_holds => \@failed_holds, successful_holds => @successful_holds ); # printout the page output_html_with_http_headers $input, $cookie, $template->output;