| 
      
            Lines 624-629
          
      
      
        Link Here
      
     | 
  
        
          | 624 | 
                                                                                  Only pickup locations within the same hold group are allowed  | 
          624 | 
                                                                                  Only pickup locations within the same hold group are allowed  | 
        
        
          | 625 | 
                                                                              [% ELSIF itemloo.not_holdable == 'noReservesAllowed' %]  | 
          625 | 
                                                                              [% ELSIF itemloo.not_holdable == 'noReservesAllowed' %]  | 
        
        
          | 626 | 
                                                                                  No reserves are allowed on this item  | 
          626 | 
                                                                                  No reserves are allowed on this item  | 
        
            
               | 
               | 
              627 | 
                                                                                  [% ELSIF itemloo.not_holdable == 'no_valid_pickup_location' %]  | 
            
            
              | 628 | 
                                                                                      No valid pickup location  | 
            
        
          | 627 | 
                                                                              [% ELSE %]  | 
          629 | 
                                                                              [% ELSE %]  | 
        
        
          | 628 | 
                                                                                  [% itemloo.not_holdable | html %]  | 
          630 | 
                                                                                  [% itemloo.not_holdable | html %]  | 
        
        
          | 629 | 
                                                                              [% END %]  | 
          631 | 
                                                                              [% END %]  | 
        
  
    | 
      
            Lines 721-730
          
      
      
        Link Here
      
     | 
  
        
          | 721 | 
                                                                  [% END %]  | 
          723 | 
                                                                  [% END %]  | 
        
        
          | 722 | 
                                                              </td>  | 
          724 | 
                                                              </td>  | 
        
        
          | 723 | 
                                                              <td>  | 
          725 | 
                                                              <td>  | 
        
          
            
              | 724 | 
                                                                  [% IF itemloo.any_pickup_location %]  | 
              726 | 
                                                                  [% IF (itemloo.pickup_locations_count > 0) %]  | 
            
            
              | 725 | 
                                                                      Any library  | 
              727 | 
                                                                      <select name="item_pickup" class="pickup_locations"  | 
            
            
              | 726 | 
                                                                  [% ELSE %]  | 
              728 | 
                                                                              data-item-id="[% itemloo.itemnumber | html %]"  | 
            
            
              | 727 | 
                                                                      [% itemloo.pickup_locations | html %]  | 
              729 | 
                                                                              data-patron-id="[% patron.borrowernumber | html %]"></select>  | 
            
        
          | 728 | 
                                                              [% END %]  | 
          730 | 
                                                              [% END %]  | 
        
        
          | 729 | 
                                                              </td>  | 
          731 | 
                                                              </td>  | 
        
        
          | 730 | 
                                                          </tr>  | 
          732 | 
                                                          </tr>  | 
        
  
    | 
      
            Lines 1187-1193
          
      
      
        Link Here
      
     | 
  
        
          | 1187 | 
           | 
          1189 | 
           | 
        
        
          | 1188 | 
                      [% UNLESS ( multi_hold ) %]  | 
          1190 | 
                      [% UNLESS ( multi_hold ) %]  | 
        
        
          | 1189 | 
                          $("#hold-request-form").on("submit", function(){ | 
          1191 | 
                          $("#hold-request-form").on("submit", function(){ | 
        
          
            
              | 1190 | 
                                  return check();  | 
              1192 | 
                                  return check($(this));  | 
            
        
          | 1191 | 
                          });  | 
          1193 | 
                          });  | 
        
        
          | 1192 | 
                      [% ELSE %]  | 
          1194 | 
                      [% ELSE %]  | 
        
        
          | 1193 | 
                          $("#hold-request-form").on("submit", function(){ | 
          1195 | 
                          $("#hold-request-form").on("submit", function(){ | 
        
  
    | 
      
            Lines 1288-1322
          
      
      
        Link Here
      
     | 
  
        
          | 1288 | 
                              templateResult: display_pickup_location  | 
          1290 | 
                              templateResult: display_pickup_location  | 
        
        
          | 1289 | 
                          });  | 
          1291 | 
                          });  | 
        
        
          | 1290 | 
                      });  | 
          1292 | 
                      });  | 
        
            
               | 
               | 
              1293 | 
                          $(".pickup_locations").each( function () { | 
            
            
              | 1294 | 
                              var this_dropdown = $(this);  | 
            
            
              | 1295 | 
                              var patron_id = $(this).data('patron-id'); | 
            
            
              | 1296 | 
                              var item_id   = $(this).data('item-id'); | 
            
            
              | 1297 | 
               | 
            
            
              | 1298 | 
                              this_dropdown.select2({ | 
            
            
              | 1299 | 
                                  allowClear: true,  | 
            
            
              | 1300 | 
                                  ajax: { | 
            
            
              | 1301 | 
                                      url: '/api/v1/items/' + encodeURIComponent(item_id) + '/pickup_locations',  | 
            
            
              | 1302 | 
                                      delay: 300, // wait 300 milliseconds before triggering the request  | 
            
            
              | 1303 | 
                                      dataType: 'json',  | 
            
            
              | 1304 | 
                                      data: function (params) { | 
            
            
              | 1305 | 
                                          var search_term = (params.term === undefined) ? '' : params.term;  | 
            
            
              | 1306 | 
                                          var query = { | 
            
            
              | 1307 | 
                                              "q": JSON.stringify({"name":{"-like":search_term+'%'}}), | 
            
            
              | 1308 | 
                                              "_order_by": "name",  | 
            
            
              | 1309 | 
                                              "patron_id": patron_id  | 
            
            
              | 1310 | 
                                          };  | 
            
            
              | 1311 | 
                                          return query;  | 
            
            
              | 1312 | 
                                      },  | 
            
            
              | 1313 | 
                                      processResults: function (data) { | 
            
            
              | 1314 | 
                                          var results = [];  | 
            
            
              | 1315 | 
                                          data.forEach( function ( pickup_location ) { | 
            
            
              | 1316 | 
                                              results.push(  | 
            
            
              | 1317 | 
                                                  { | 
            
            
              | 1318 | 
                                                      "id": pickup_location.library_id.escapeHtml(),  | 
            
            
              | 1319 | 
                                                      "text": pickup_location.name.escapeHtml(),  | 
            
            
              | 1320 | 
                                                      "needs_override": pickup_location.needs_override  | 
            
            
              | 1321 | 
                                                  }  | 
            
            
              | 1322 | 
                                              );  | 
            
            
              | 1323 | 
                                          });  | 
            
            
              | 1324 | 
                                          return { "results": results }; | 
            
            
              | 1325 | 
                                      }  | 
            
            
              | 1326 | 
                                  },  | 
            
            
              | 1327 | 
                                  templateResult: display_pickup_location  | 
            
            
              | 1328 | 
                              });  | 
            
            
              | 1329 | 
                          });  | 
            
        
          | 1291 | 
                  });  | 
          1330 | 
                  });  | 
        
        
          | 1292 | 
           | 
          1331 | 
           | 
        
          
            
              | 1293 | 
                      function check() { | 
              1332 | 
                      function check( table ) { | 
            
            
               | 
               | 
              1333 | 
               | 
            
        
          | 1294 | 
                      var msg = "";  | 
          1334 | 
                      var msg = "";  | 
        
            
              | 1295 | 
                          var count_reserv = 0;  | 
               | 
               | 
            
        
          | 1296 | 
           | 
          1335 | 
           | 
        
          
            
              | 1297 | 
                          // check if we have checkitem form  | 
              1336 | 
                          if ( $("#requestany").attr("checked") !== "checked" ) { | 
            
            
              | 1298 | 
                          if (document.form.checkitem){ | 
              1337 | 
                              // requestany not selected, go through the item-specific cases  | 
            
            
              | 1299 | 
                              for (i=0;i<document.form.checkitem.length;i++){ | 
              1338 | 
                              if ( $('input[type="radio"]:checked').length > 0 ) { | 
            
            
              | 1300 | 
                                  if (document.form.checkitem[i].checked == true) { | 
              1339 | 
                                  // got item-specific hold requests in the form!  | 
            
            
              | 1301 | 
                                      count_reserv++ ;  | 
              1340 | 
                                  // verify they have a pickup location selected  | 
            
            
               | 
               | 
              1341 | 
               | 
            
            
              | 1342 | 
                                  if (table.find('input[type="radio"]:checked') | 
            
            
              | 1343 | 
                                              .closest('tr') | 
            
            
              | 1344 | 
                                              .find(".pickup_locations").val() === null) { | 
            
            
              | 1345 | 
               | 
            
            
              | 1346 | 
                                      msg = _("- Please select a pickup location for the item" + "\n") | 
            
        
          | 1302 | 
                              }  | 
          1347 | 
                              }  | 
        
        
          | 1303 | 
                          }  | 
          1348 | 
                          }  | 
        
          
            
              | 1304 | 
                              // for only one item, check the checkitem without consider the loop checkitem  | 
              1349 | 
                              else { | 
            
            
              | 1305 | 
                              if (i==0){ | 
              1350 | 
                                  msg = (_("- Please select an item to place a hold") + "\n"); | 
            
            
              | 1306 | 
                                  if (document.form.checkitem.checked == true) { | 
               | 
               | 
            
            
              | 1307 | 
                                      count_reserv++;  | 
            
            
              | 1308 | 
                                  }  | 
            
        
          | 1309 | 
                          }  | 
          1351 | 
                          }  | 
        
        
          | 1310 | 
                      }  | 
          1352 | 
                      }  | 
        
        
          | 1311 | 
           | 
          1353 | 
           | 
        
            
              | 1312 | 
                          if (document.form.requestany.checked == true){ | 
               | 
               | 
            
            
              | 1313 | 
                              count_reserv++ ;  | 
            
            
              | 1314 | 
                          }  | 
            
            
              | 1315 | 
               | 
            
            
              | 1316 | 
                          if (count_reserv == "0"){ | 
            
            
              | 1317 | 
                              msg += (_("- Please select an item to place a hold") + "\n"); | 
            
            
              | 1318 | 
                          }  | 
            
            
              | 1319 | 
               | 
            
        
          | 1320 | 
                      if (msg == "") { | 
          1354 | 
                      if (msg == "") { | 
        
        
          | 1321 | 
                          $('#hold-request-form').preventDoubleFormSubmit(); | 
          1355 | 
                          $('#hold-request-form').preventDoubleFormSubmit(); | 
        
        
          | 1322 | 
                          return(true);  | 
          1356 | 
                          return(true);  |