Bug 14310 [QA Followup] - Deal with error conditions
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> Signed-off-by: Brendan A Gallagher <brendan@bywatersolutions.com>
This commit is contained in:
parent
ed3c44b627
commit
0b60dcbeac
|
|
@ -35,5 +35,8 @@
|
|||
var SUSPEND = _("Suspend");
|
||||
var SUSPEND_HOLD_ON = _("Suspend hold on");
|
||||
var CLEAR_DATE_TO_SUSPEND_INDEFINITELY = _("Clear date to suspend indefinitely");
|
||||
var SUSPEND_HOLD_ERROR_DATE = _("Unable to suspend hold, invalid date");
|
||||
var SUSPEND_HOLD_ERROR_NOT_FOUND = _("Unable to suspend hold, hold not found");
|
||||
var RESUME_HOLD_ERROR_NOT_FOUND = _("Unable to resume, hold not found");
|
||||
//]]>
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -162,7 +162,14 @@ $(document).ready(function() {
|
|||
var id = $(this).attr("id").replace("resume", "");
|
||||
var hold = holds[id];
|
||||
$.post('/cgi-bin/koha/svc/hold/resume', { "reserve_id": hold.reserve_id }, function( data ){
|
||||
holdsTable.api().ajax.reload();
|
||||
if ( data.success ) {
|
||||
holdsTable.api().ajax.reload();
|
||||
} else {
|
||||
if ( data.error == "HOLD_NOT_FOUND" ) {
|
||||
alert ( RESUME_HOLD_ERROR_NOT_FOUND );
|
||||
holdsTable.api().ajax.reload();
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
@ -209,7 +216,17 @@ $(document).ready(function() {
|
|||
e.preventDefault();
|
||||
$.post('/cgi-bin/koha/svc/hold/suspend', $('#suspend-modal-form').serialize(), function( data ){
|
||||
$('#suspend-modal').modal('hide');
|
||||
holdsTable.api().ajax.reload();
|
||||
if ( data.success ) {
|
||||
holdsTable.api().ajax.reload();
|
||||
} else {
|
||||
if ( data.error == "INVALID_DATE" ) {
|
||||
alert( SUSPEND_HOLD_ERROR_DATE );
|
||||
}
|
||||
else if ( data.error == "HOLD_NOT_FOUND" ) {
|
||||
alert ( SUSPEND_HOLD_ERROR_NOT_FOUND );
|
||||
holdsTable.api().ajax.reload();
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -38,11 +38,17 @@ if ( $auth_status ne "ok" ) {
|
|||
}
|
||||
|
||||
binmode STDOUT, ":encoding(UTF-8)";
|
||||
print $input->header( -type => 'text/plain', -charset => 'UTF-8' );
|
||||
print $input->header( -type => 'text/json', -charset => 'UTF-8' );
|
||||
|
||||
my $reserve_id = $input->param('reserve_id');
|
||||
|
||||
my $hold = Koha::Holds->find( $reserve_id );
|
||||
|
||||
unless ( $hold ) {
|
||||
print to_json( { success => 0, error => "HOLD_NOT_FOUND" } );
|
||||
exit;
|
||||
}
|
||||
|
||||
$hold->resume();
|
||||
|
||||
print to_json( { success => !$hold->suspend() } );
|
||||
|
|
|
|||
|
|
@ -30,22 +30,33 @@ use Koha::Holds;
|
|||
my $input = new CGI;
|
||||
|
||||
my ( $auth_status, $sessionID ) =
|
||||
check_cookie_auth( $input->cookie('CGISESSID'),
|
||||
{ circulate => 'circulate_remaining_permissions' } );
|
||||
check_cookie_auth( $input->cookie('CGISESSID'), { circulate => 'circulate_remaining_permissions' } );
|
||||
|
||||
if ( $auth_status ne "ok" ) {
|
||||
exit 0;
|
||||
}
|
||||
|
||||
binmode STDOUT, ":encoding(UTF-8)";
|
||||
print $input->header( -type => 'text/plain', -charset => 'UTF-8' );
|
||||
print $input->header( -type => 'text/json', -charset => 'UTF-8' );
|
||||
|
||||
my $reserve_id = $input->param('reserve_id');
|
||||
|
||||
my $suspend_until = $input->param('suspend_until') || undef;
|
||||
$suspend_until = dt_from_string( $suspend_until ) if $suspend_until;
|
||||
if ($suspend_until) {
|
||||
eval { $suspend_until = dt_from_string($suspend_until) };
|
||||
|
||||
my $hold = Koha::Holds->find( $reserve_id );
|
||||
$hold->suspend_hold( $suspend_until );
|
||||
if ($@) {
|
||||
print to_json( { success => 0, error => 'INVALID_DATE' } );
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
my $hold = Koha::Holds->find($reserve_id);
|
||||
unless ($hold) {
|
||||
print to_json( { success => 0, error => 'HOLD_NOT_FOUND' } );
|
||||
exit;
|
||||
}
|
||||
|
||||
$hold->suspend_hold($suspend_until);
|
||||
|
||||
print to_json( { success => $hold->suspend() } );
|
||||
|
|
|
|||
Loading…
Reference in New Issue