@@ -, +, @@ revert --- .../intranet-tmpl/prog/en/includes/holds_table.inc | 6 ++--- .../prog/en/modules/reserve/request.tt | 27 ++++++++++------------ reserve/request.pl | 19 +++++++++------ 3 files changed, 27 insertions(+), 25 deletions(-) --- a/koha-tmpl/intranet-tmpl/prog/en/includes/holds_table.inc +++ a/koha-tmpl/intranet-tmpl/prog/en/includes/holds_table.inc @@ -26,10 +26,10 @@ - [% IF Koha.Preference('HoldsSplitQueue') == "nothing" %] + [% IF Koha.Preference('HoldsSplitQueue') == "nothing" && !hold.found %] + + [% END %] [% END # IF SuspendHoldsIntranet %] --- a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt @@ -807,29 +807,26 @@ } }); var prev_rank_request; - var priorities; $("select[name=rank-request]").on("focus", function() { prev_rank_request = $(this).val(); var row = $(this).parents("tr:first"); - priorities = row.parent().find("select[name=rank-request]").map( function() { - return $(this).val(); - }).get(); }).change(function() { var row = $(this).parents("tr:first"); var value = parseInt($(this).val()); - var rowsCount = row.parent().children('tr').length - 1; - value = value > rowsCount ? rowsCount : value; - 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 = 0; - row.parent().find("select[name=rank-request]").each(function () { - $(this).val(priorities[next_priority]); + 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++; }); }); --- a/reserve/request.pl +++ a/reserve/request.pl @@ -86,13 +86,18 @@ my $action = $input->param('action'); $action ||= q{}; if ( $action eq 'move' ) { - my $where = $input->param('where'); - my $reserve_id = $input->param('reserve_id'); - my $prev_priority = $input->param('prev_priority'); - my $next_priority = $input->param('next_priority'); - my $first_priority = $input->param('first_priority'); - my $last_priority = $input->param('last_priority'); - AlterPriority( $where, $reserve_id, $prev_priority, $next_priority, $first_priority, $last_priority ); + my $where = $input->param('where'); + my $reserve_id = $input->param('reserve_id'); + my $prev_priority = $input->param('prev_priority'); + my $next_priority = $input->param('next_priority'); + my $first_priority = $input->param('first_priority'); + my $last_priority = $input->param('last_priority'); + my $hold_itemnumber = $input->param('itemnumber'); + if ( $prev_priority == 0 && $next_priority == 1 ){ + C4::Reserves::RevertWaitingStatus({ itemnumber => $hold_itemnumber }); + } else { + AlterPriority( $where, $reserve_id, $prev_priority, $next_priority, $first_priority, $last_priority ); + } } elsif ( $action eq 'cancel' ) { my $reserve_id = $input->param('reserve_id'); my $hold = Koha::Holds->find( $reserve_id ); --