View | Details | Raw Unified | Return to bug 21608
Collapse All | Expand All

(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt (-8 / +43 lines)
Lines 165-185 function checkMultiHold() { Link Here
165
    });
165
    });
166
    var prev_rank_request;
166
    var prev_rank_request;
167
    $("select[name=rank-request]").on("focus", function() {
167
    $("select[name=rank-request]").on("focus", function() {
168
        prev_rank_request = $(this).val();
168
        prev_rank_request = parseInt($(this).val());
169
        if( isNaN(prev_rank_request ) ){
170
            //Here we figure out how far behind the '1st' position we are
171
            var first_priority_position = parseInt($('option[value="1"][selected="selected"]').closest('tr').attr('data-position'));
172
            prev_rank_request = parseInt( $(this).closest('tr').attr('data-position') ) - first_priority_position+1;
173
        }
169
    }).change(function() {
174
    }).change(function() {
170
        var row = $(this).parents("tr:first");
175
        if( prev_rank_request < 0 ) {
176
            //If we came from a non numeric position, we need to add an option to the priority
177
            var del_row = $(this).children('option:last');
178
            $("select[name='rank-request']").children('option[value="del"]').remove();
179
            var add_lowest_priority = parseInt($(this).children('option:last').val()) + 1;
180
            $("select[name='rank-request']").append('<option value="'+add_lowest_priority+'">'+add_lowest_priority+'</option>').append(del_row);
181
        }
182
        //Go to the table row for the select
183
        var row = $(this).closest("tr");
184
        //Get the value that was just set
171
        var value = parseInt($(this).val());
185
        var value = parseInt($(this).val());
172
        var after = row.parent().find("tr:nth-child("+(value+1)+")");
186
        console.log(value);
187
        var new_pos = parseInt(row.attr('data-position'))-(prev_rank_request-value);
188
        if ( isNaN(value) ){
189
            //if we move to a non-numeric position we need to remove and option from priority
190
            var del_row = $(this).children('option:last');
191
            $("select[name='rank-request']").children('option[value="del"]').remove();
192
            var remove_lowest_priority = parseInt($(this).children('option:last').val());
193
            $("select[name='rank-request']").children('option[value="'+remove_lowest_priority+'"]').remove();
194
            $("select[name='rank-request']").append(del_row);
195
            new_pos = 1;
196
            value = 0;
197
        }
198
            
199
        //Find the row at position of new value plus one one by going to the first row, getting the parent object (table), then the nth tr child
200
        var after = $('tr[data-position="'+new_pos+'"]');
173
201
174
        if (prev_rank_request > value) {
202
        //If our value was lowered insert before the row previously at this value
203
        if (prev_rank_request > value || prev_rank_request < 0) {
175
            row.insertBefore(after);
204
            row.insertBefore(after);
176
        } else {
205
        } else {
206
        //otherwise after the one prevously here
177
            row.insertAfter(after);
207
            row.insertAfter(after);
178
        }
208
        }
179
209
210
        //Reset all the priorities, starting at the first row with value one
180
        var next_priority = 1;
211
        var next_priority = 1;
181
        $("select[name=rank-request]").each(function () {
212
        $("select[name=rank-request]").each(function (i) {
182
            $(this).val(next_priority);
213
            $(this).closest('tr').attr('data-position',i+1);
214
            if( isNaN($(this).val()) ) { return true; }
215
            $(this).parent('tr').attr('data-position',i+i);
216
            $(this).val(next_priority)
217
            $(this).find('option[selected="selected"]').attr('selected',false);
218
            $(this).find('option[value="'+next_priority+'"]').attr('selected',true);
183
            next_priority++;
219
            next_priority++;
184
        });
220
        });
185
    });
221
    });
Lines 752-758 function checkMultiHold() { Link Here
752
    [% IF SuspendHoldsIntranet %]<th>&nbsp;</th><!-- Suspend Holds Column Header -->[% END %]
788
    [% IF SuspendHoldsIntranet %]<th>&nbsp;</th><!-- Suspend Holds Column Header -->[% END %]
753
      </tr>
789
      </tr>
754
  [% FOREACH reserveloo IN biblioloo.reserveloop %]
790
  [% FOREACH reserveloo IN biblioloo.reserveloop %]
755
        <tr>
791
        <tr data-position="[% loop.count %]">
756
        <td>
792
        <td>
757
          <input type="hidden" name="reserve_id" value="[% reserveloo.reserve_id %]" />
793
          <input type="hidden" name="reserve_id" value="[% reserveloo.reserve_id %]" />
758
          <input type="hidden" name="borrowernumber" value="[% reserveloo.borrowernumber %]" />
794
          <input type="hidden" name="borrowernumber" value="[% reserveloo.borrowernumber %]" />
Lines 765-771 function checkMultiHold() { Link Here
765
                      <option value="W" selected="selected">Waiting</option>
801
                      <option value="W" selected="selected">Waiting</option>
766
                  [% END %]
802
                  [% END %]
767
              [% END %]
803
              [% END %]
768
769
              [% IF ( CAN_user_reserveforothers_modify_holds_priority ) %]
804
              [% IF ( CAN_user_reserveforothers_modify_holds_priority ) %]
770
                  [% FOREACH optionloo IN reserveloo.optionloop %]
805
                  [% FOREACH optionloo IN reserveloo.optionloop %]
771
                      [% IF ( optionloo.selected ) %]
806
                      [% IF ( optionloo.selected ) %]
(-)a/reserve/request.pl (-2 / +2 lines)
Lines 268-275 foreach my $biblionumber (@biblionumbers) { Link Here
268
    }
268
    }
269
269
270
270
271
    my $totalcount = Koha::Holds->search( { biblionumber => $biblionumber , found => undef } )->count();
271
    my $count = Koha::Holds->search( { biblionumber => $biblionumber } )->count();
272
    my $count = Koha::Holds->search( { biblionumber => $biblionumber } )->count();
272
    my $totalcount = $count;
273
#my $totalcount = $count;
273
274
274
    # FIXME think @optionloop, is maybe obsolete, or  must be switchable by a systeme preference fixed rank or not
275
    # FIXME think @optionloop, is maybe obsolete, or  must be switchable by a systeme preference fixed rank or not
275
    # make priorities options
276
    # make priorities options
276
- 

Return to bug 21608