From 2964a011f4cf8fddcc9b0760d1e05a84627ea1dd Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Thu, 9 Nov 2017 11:47:39 -0300 Subject: [PATCH] Bug 7317: Fix infinite loop in OPAC Signed-off-by: Tomas Cohen Arazi --- .../bootstrap/en/modules/opac-illrequests.tt | 19 +--- opac/opac-illrequests.pl | 124 ++++++++++----------- 2 files changed, 63 insertions(+), 80 deletions(-) diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-illrequests.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-illrequests.tt index 2fe6991a94..547d4d34cf 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-illrequests.tt +++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-illrequests.tt @@ -55,24 +55,7 @@ [% IF method == 'create' %]

New Interlibrary loan request

[% INCLUDE messages %] - [% IF backends %] -
-
- - -
-
- - -
-
- [% ELSE %] - [% PROCESS $whole.opac_template %] - [% END %] + [% PROCESS $whole.opac_template %] [% ELSIF method == 'list' %]

Interlibrary loan requests

[% INCLUDE messages %] diff --git a/opac/opac-illrequests.pl b/opac/opac-illrequests.pl index 4590284184..0aa88247b2 100755 --- a/opac/opac-illrequests.pl +++ b/opac/opac-illrequests.pl @@ -52,74 +52,74 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user({ # Are we able to actually work? my $backends = Koha::Illrequest::Config->new->available_backends; my $backends_available = ( scalar @{$backends} > 0 ); -$template->param( backends_available => $backends_available ); +$template->param( + backends => $backends, + backends_available => $backends_available +); my $op = $params->{'method'} || 'list'; -if ( $op eq 'list' ) { - - my $requests = Koha::Illrequests->search( - { borrowernumber => $loggedinuser } - ); - my $req = Koha::Illrequest->new; - $template->param( - requests => $requests, - backends => $req->available_backends - ); - -} elsif ( $op eq 'view') { - my $request = Koha::Illrequests->find({ - borrowernumber => $loggedinuser, - illrequest_id => $params->{illrequest_id} - }); - $template->param( - request => $request - ); - -} elsif ( $op eq 'update') { - my $request = Koha::Illrequests->find({ - borrowernumber => $loggedinuser, - illrequest_id => $params->{illrequest_id} - }); - $request->notesopac($params->{notesopac})->store; - print $query->redirect( - '/cgi-bin/koha/opac-illrequests.pl?method=view&illrequest_id=' . - $params->{illrequest_id} . - '&message=1' - ); -} elsif ( $op eq 'cancreq') { - my $request = Koha::Illrequests->find({ - borrowernumber => $loggedinuser, - illrequest_id => $params->{illrequest_id} - }); - $request->status('CANCREQ')->store; - print $query->redirect( - '/cgi-bin/koha/opac-illrequests.pl?method=view&illrequest_id=' . - $params->{illrequest_id} . - '&message=1' - ); - -} elsif ( $op eq 'create' ) { - if (!$params->{backend}) { - my $req = Koha::Illrequest->new; +if ( $backends_available ) { + + if ( $op eq 'list' ) { + + my $requests = Koha::Illrequests->search( + { borrowernumber => $loggedinuser } + ); $template->param( - backends => $req->available_backends + requests => $requests ); - } else { - my $request = Koha::Illrequest->new - ->load_backend($params->{backend}); - $params->{cardnumber} = Koha::Patrons->find({ - borrowernumber => $loggedinuser - })->cardnumber; - my $backend_result = $request->backend_create($params); + + } elsif ( $op eq 'view') { + my $request = Koha::Illrequests->find({ + borrowernumber => $loggedinuser, + illrequest_id => $params->{illrequest_id} + }); $template->param( - media => [ "Book", "Article", "Journal" ], - branches => Koha::Libraries->search->unblessed, - whole => $backend_result, - request => $request + request => $request ); - if ($backend_result->{stage} eq 'commit') { - print $query->redirect('/cgi-bin/koha/opac-illrequests.pl?message=2'); + + } elsif ( $op eq 'update') { + my $request = Koha::Illrequests->find({ + borrowernumber => $loggedinuser, + illrequest_id => $params->{illrequest_id} + }); + $request->notesopac($params->{notesopac})->store; + print $query->redirect( + '/cgi-bin/koha/opac-illrequests.pl?method=view&illrequest_id=' . + $params->{illrequest_id} . + '&message=1' + ); + + } elsif ( $op eq 'cancreq') { + my $request = Koha::Illrequests->find({ + borrowernumber => $loggedinuser, + illrequest_id => $params->{illrequest_id} + }); + $request->status('CANCREQ')->store; + print $query->redirect( + '/cgi-bin/koha/opac-illrequests.pl?method=view&illrequest_id=' . + $params->{illrequest_id} . + '&message=1' + ); + + } elsif ( $op eq 'create' ) { + if ($params->{backend}) { + my $request = Koha::Illrequest->new + ->load_backend($params->{backend}); + $params->{cardnumber} = Koha::Patrons->find({ + borrowernumber => $loggedinuser + })->cardnumber; + my $backend_result = $request->backend_create($params); + $template->param( + media => [ "Book", "Article", "Journal" ], + branches => Koha::Libraries->search->unblessed, + whole => $backend_result, + request => $request + ); + if ($backend_result->{stage} eq 'commit') { + print $query->redirect('/cgi-bin/koha/opac-illrequests.pl?message=2'); + } } } } @@ -127,7 +127,7 @@ if ( $op eq 'list' ) { $template->param( message => $params->{message}, illrequestsview => 1, - method => $op + method => $op ); output_html_with_http_headers $query, $cookie, $template->output; -- 2.14.1