@@ -, +, @@
---
.../bootstrap/en/includes/holds-table.inc | 17 ++++++++++---
.../bootstrap/en/modules/opac-user.tt | 13 ++++++++++
opac/opac-modrequest.pl | 25 +++++++++++++++----
3 files changed, 46 insertions(+), 9 deletions(-)
--- a/koha-tmpl/opac-tmpl/bootstrap/en/includes/holds-table.inc
+++ a/koha-tmpl/opac-tmpl/bootstrap/en/includes/holds-table.inc
@@ -153,10 +153,19 @@
[% IF ( HOLD.is_cancelable_from_opac ) %]
+
+
+
+
+ [% ELSIF HOLD.cancellation_requests.count > 0 %]
+
+ [% ELSIF HOLD.is_waiting && HOLD.cancellation_requestable_from_opac %]
+
[% END %]
|
[% END # / IF onlyinfo %]
--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-user.tt
+++ a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-user.tt
@@ -1016,6 +1016,19 @@
);
});
+ $(".btn-req-delete-hold").on("click", function(e){
+ e.preventDefault();
+ var hold_title = $(this).data("title");
+ var reserve_id = $(this).data("reserve_id");
+ confirmModal( hold_title, _("Are you sure you want to request cancelling this hold?"), _("Yes"), _("No"), function( result ){
+ $("#bootstrap-confirm-box-modal").remove()
+ if( result ){
+ $("#req_cancel_hold_" + reserve_id ).submit();
+ }
+ }
+ );
+ });
+
$(".btn-delete-article-request").on("click", function(e){
e.preventDefault();
var article_request = $(this).data("title");
--- a/opac/opac-modrequest.pl
+++ a/opac/opac-modrequest.pl
@@ -26,9 +26,9 @@ use Modern::Perl;
use CGI qw ( -utf8 );
use C4::Output;
-use C4::Reserves qw( CanReserveBeCanceledFromOpac );
use C4::Auth qw( get_template_and_user );
use Koha::Holds;
+
my $query = CGI->new;
my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
@@ -40,11 +40,26 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
);
my $reserve_id = $query->param('reserve_id');
+my $cancellation_request = $query->param('cancellation_request');
+
+if ( $reserve_id && $borrowernumber ) {
+
+ my $hold = Koha::Holds->find($reserve_id);
+
+ unless ( $hold->borrowernumber == $borrowernumber ) {
-if ($reserve_id && $borrowernumber) {
- if ( CanReserveBeCanceledFromOpac($reserve_id, $borrowernumber) ) {
- my $hold = Koha::Holds->find( $reserve_id );
- $hold->cancel if $hold;
+ # whatcha tryin to do?
+ print $query->redirect('/cgi-bin/koha/errors/403.pl');
+ exit;
+ }
+
+ if ($cancellation_request) {
+ $hold->add_cancellation_request
+ if $hold->cancellation_requestable_from_opac;
+ }
+ else {
+ $hold->cancel
+ if $hold->is_cancelable_from_opac;
}
}
--