At the moment, you can send biblionumbers to opac-reserve.pl either as multiple "biblionumbers" arguments or as a single compacted string like "1/2/3". It seems silly to me to have all this code for handling these different scenarios. We should just harmonize the callers.
These appear to be the templates that reference opac-reserve.pl using the concatenated "biblionumbers" syntax: 1. koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-reserve.tt 2. koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-shelves.tt 3. koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-results.tt 4. koha-tmpl/opac-tmpl/bootstrap/js/basket.js Test plan: _Search Results_ (opac-results.tt) 1. Go to http://localhost:8080/cgi-bin/koha/opac-search.pl?idx=&q=test&weight_search=1 2. Checkbox # 1 and # 2 3. Click "Place hold" _Cart_ (basket.js) 1. Go to http://localhost:8080/cgi-bin/koha/opac-search.pl?idx=&q=test&weight_search=1 2. Checkbox # 1 and # 2 3. Add to cart 4. Click on "Cart" 5. Click "Select all" 6. Click "Place hold" _Detail page_ TBC
Using jQuery, it's fairly trivial to build a querystring of "biblionumber=1&biblionumber=2&biblionumber=3".
Created attachment 114661 [details] [review] Bug 27301: Pass biblionumbers to opac-reserve.pl in one style only This patch forces biblionumbers to be passed to opac-reserve.pl as individual "biblionumber" parameters instead of sending a concatenated string as a "biblionumbers" parameter. Test plan: _Search Results_ 1. Go to http://localhost:8080/cgi-bin/koha/opac-search.pl?idx=&q=test&weight_search=1 2. Checkbox # 1 and # 2 3. Click "Place hold" 4. Click "Confirm hold" 5. Note that holds are made 6. Cancel holds to prepare for next test... _Cart_ 1. Go to http://localhost:8080/cgi-bin/koha/opac-search.pl?idx=&q=test&weight_search=1 2. Checkbox # 1 and # 2 3. Add to cart 4. Click on "Cart" 5. Click "Select all" 6. Click "Place hold" 7. Click "Confirm hold" 8. Note that holds are made 9. Cancel holds to prepare for next test... _List_ 1. Go to http://localhost:8080/cgi-bin/koha/opac-search.pl?idx=&q=test&weight_search=1 2. Checkbox # 1 and # 2 3. Add to new list 4. Click on list 5. Click "Select all" 6. Click "Place hold" 7. Click "Confirm hold" 8. Note that holds are made 9. Cancel holds to prepare for next test... _Detail page_ 1. Go to http://localhost:8080/cgi-bin/koha/opac-detail.pl?biblionumber=29 2. Click "Place hold" 3. Click "Confirm hold" 4. Note that holds are made 5. Cancel hold (because you may as well at this point)
Received error "Sorry, you cannot place holds. ERROR: No record id specified." as I tried to place a hold through the cart (Step 6 of _Cart_)
It looks like we already made this change in the staff interface: http://localhost:8081/cgi-bin/koha/reserve/request.pl?findborrower=&club=&biblionumber=262&biblionumber=5&biblionumber=13&biblionumber=146&biblionumber=191&biblionumber=11&biblionumber=126&biblionumber=139&biblionumber=165&biblionumber=255&biblionumber=115