Placing Multiple Holds in My List Leads to Error
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Evergreen |
Won't Fix
|
Medium
|
Unassigned |
Bug Description
Evergreen Version: Master as of 2017-04-28 @ 8:00 am.
Postgres Version: 9.5.6
O/S: Ubuntu 16.04.2 Xenial Xerus
When I attempted to place a hold for 2 items from My List in the above system, the hold placement worked, but the "Continue" linke took me to a non-existent URL that returned a 404 error.
In my specific case, the link is, where xenial is the hosts entry for a local test VM:
https:/
The exact steps that I followed to cause the above:
I loaded the Concerto data set on my test vm.
I logged in as patron Leon Anderson.
I did a search for Strauss.
I added the two items to a new My List named Strauss.
I went to My Account -> My Lists and expanded the Strauss list.
I checked the check box to select all items from the list.
I clicked the "Go" button with the default action of "Place Hold" selected.
I placed the hold by clicking "Submit" without changing anything from the defaults.
On the response page that indicated that the holds were placed successfully, I clicked the "Continue" link which took me to the above URL.
I repeated these steps with 3 items by Beethoven to make sure it was not just a fluke. A similar, but different URL came up that also returned a 404 error.
I have not looked into the code for the actual cause but I suspect, the list of bib records is being used directly to generate the return URL.
Changed in evergreen: | |
status: | New → Confirmed |
tags: |
added: opac removed: tpac |
tags: |
added: mylists removed: lists |
tags: |
added: circ-holds opac-lists removed: holds mylists |
The "Cancel" link (which only displays if there is an error) also breaks when placing multiple holds at once from a list. Example URLs that are generated for the links.
CANCEL: /demo.evergreen catalog. com/eg/ opac/ARRAY( 0x7fc20b49f148)
https:/
CONTINUE: /mlnc2. noblenet. org/eg/ opac/ARRAY( 0x7f55a88dcf98)
https:/
These links are generated using [% CGI.param( 'redirect_ to') || CGI.referer | html %] - it looks like CGI.param( 'redirect_ to') is what is causing the array link that doesn't work. If I delete that and just use CGI.referer, the links are valid, but they're still not ideal because they only go back to the previous page (the hold form) rather than to the list (which is two pages back).
If I replace CGI.referer with javascript: history. go(-2); then it goes two pages back and takes me to the list (this also still works when placing single holds from the search results page or record details page) as I expect it to, but that requires javascript to be enabled in the browser so it's not ideal either.