From 4c8ff3825c12da6d1e9c8a36d5e4d642e1e763b6 Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Fri, 28 Dec 2018 17:01:50 +0000 Subject: [PATCH] Bug 21608: [18.05.X] disable dropdown and add revert button --- .../prog/en/modules/reserve/request.tt | 25 ++++++++++++++++------ reserve/request.pl | 8 ++++++- 2 files changed, 25 insertions(+), 8 deletions(-) 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 1badd9adab..ffbb105128 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt @@ -169,16 +169,21 @@ function checkMultiHold() { }).change(function() { var row = $(this).parents("tr:first"); var value = parseInt($(this).val()); - var after = row.parent().find("tr:nth-child("+(value+1)+")"); - - if (prev_rank_request > value) { - row.insertBefore(after); - } else { - row.insertAfter(after); + var found_holds = $("select[name='rank-request'][disabled='disabled']").length ; //Count how many are found + + if( !isNaN(value) ) { //If moved to 'del' + var after = row.parent().find("tr:nth-child("+(value+1+found_holds)+")"); + //Go to the row 1 after the new value (and skip found holds) + if (prev_rank_request > value) { + row.insertBefore(after); + } else { + row.insertAfter(after); + } } var next_priority = 1; $("select[name=rank-request]").each(function () { + if( isNaN( $(this).val() ) ){ return true; } //Don't reset found or del holds $(this).val(next_priority); next_priority++; }); @@ -757,7 +762,12 @@ function checkMultiHold() { - + [% ELSE %] + + [% END %] [% ELSE %] + [% END %] diff --git a/reserve/request.pl b/reserve/request.pl index ee1d8c4962..7f2c9f7058 100755 --- a/reserve/request.pl +++ b/reserve/request.pl @@ -87,8 +87,14 @@ $action ||= q{}; if ( $action eq 'move' ) { my $where = $input->param('where'); + my $was_found = $input->param("was_found"); my $reserve_id = $input->param('reserve_id'); - AlterPriority( $where, $reserve_id ); + my $hold_itemnumber = $input->param('itemnumber'); + if ( $was_found ){ + C4::Reserves::RevertWaitingStatus({ itemnumber => $hold_itemnumber }); + } else { + AlterPriority( $where, $reserve_id ); + } } elsif ( $action eq 'cancel' ) { my $reserve_id = $input->param('reserve_id'); my $hold = Koha::Holds->find( $reserve_id ); -- 2.11.0