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;