| 
      
            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> </th><!-- Suspend Holds Column Header -->[% END %]  | 
          788 | 
              [% IF SuspendHoldsIntranet %]<th> </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 ) %]  |