On intranet results page, the callnumber of items is a search like : /cgi-bin/koha/catalogue/search.pl?idx=callnum&q=[% result.itemcallnumber |url %] The callnumber should be URI-escaped to avoid special URI characters like & , ? ... If the callnumber contains some CCL words or parenthesis, the search will fail, it should be wrapped with double-quotes.
Created attachment 28773 [details] [review] Bug 12405 - Search links on callnumber fails on intranet results page On intranet results page, the callnumber of items is a search like : /cgi-bin/koha/catalogue/search.pl?idx=callnum&q=[% result.itemcallnumber |url %] The callnumber should be URI-escaped to avoid special URI characters like & , ? ... If the callnumber contains some CCL words or parenthesis, the search will fail, it should be wrapped with double-quotes. This patch adds this to catalogue/results.pl and catalogue/shelves.pl : - uri TT filter instead of url - adds double-quotes using there URI code %22 since its in a HTML attribute using double-quotes Test plan : - Edit an item callnumber with : & ABC 123 - Index zebraqueue - Perform a search returning this item - Click on the callnumber => Without this patch you get no result, because URL parameters are : idx=callnum&q=& ABC 123 => With this patch you get results - Set syspref QueryWeightFields off (because this is no bug if on) - Edit an item callnumber with : AB(C) AND OR - Index zebraqueue - Perform a search returning this item - Click on the callnumber => Without this patch you get no result, because the search contains CCL words "OR" and "AND" => With this patch you get results
I'm not sure I'm following the test plan right, but I have queryweightfields off and when i click the call number that starts with a & I get brought to the advanced search page and when i click the one with the parens and AND OR in it I get no results found - both of these after applying the patch.
I'll take a look at this one later...
Created attachment 31496 [details] [review] Bug 12405 - Search links on callnumber fails on intranet results page On intranet results page, the callnumber of items is a search like : /cgi-bin/koha/catalogue/search.pl?idx=callnum&q=[% result.itemcallnumber |url %] The callnumber should be URI-escaped to avoid special URI characters like & , ? ... If the callnumber contains some CCL words or parenthesis, the search will fail, it should be wrapped with double-quotes. This patch adds this to catalogue/results.pl and catalogue/shelves.pl : - uri TT filter instead of url - adds double-quotes using there URI code %22 since its in a HTML attribute using double-quotes Test plan : - Edit an item callnumber with : & ABC 123 - Index zebraqueue - Perform a search returning this item - Click on the callnumber => Without this patch you get no result, because URL parameters are : idx=callnum&q=& ABC 123 => With this patch you get results - Set syspref QueryWeightFields off (because this is no bug if on) - Edit an item callnumber with : AB(C) AND OR - Index zebraqueue - Perform a search returning this item - Click on the callnumber => Without this patch you get no result, because the search contains CCL words "OR" and "AND" => With this patch you get results Signed-off-by: Liz Rea <liz@catalyst.net.nz> Tested all with and without queryweightfields - all searches from clicked call numbers for given callnumbers fail without the patch, all are successful with the patch.
*** Bug 12894 has been marked as a duplicate of this bug. ***
Created attachment 31516 [details] [review] [PASSED QA] Bug 12405 - Search links on callnumber fails on intranet results page On intranet results page, the callnumber of items is a search like : /cgi-bin/koha/catalogue/search.pl?idx=callnum&q=[% result.itemcallnumber |url %] The callnumber should be URI-escaped to avoid special URI characters like & , ? ... If the callnumber contains some CCL words or parenthesis, the search will fail, it should be wrapped with double-quotes. This patch adds this to catalogue/results.pl and catalogue/shelves.pl : - uri TT filter instead of url - adds double-quotes using there URI code %22 since its in a HTML attribute using double-quotes Test plan : - Edit an item callnumber with : & ABC 123 - Index zebraqueue - Perform a search returning this item - Click on the callnumber => Without this patch you get no result, because URL parameters are : idx=callnum&q=& ABC 123 => With this patch you get results - Set syspref QueryWeightFields off (because this is no bug if on) - Edit an item callnumber with : AB(C) AND OR - Index zebraqueue - Perform a search returning this item - Click on the callnumber => Without this patch you get no result, because the search contains CCL words "OR" and "AND" => With this patch you get results Signed-off-by: Liz Rea <liz@catalyst.net.nz> Tested all with and without queryweightfields - all searches from clicked call numbers for given callnumbers fail without the patch, all are successful with the patch. Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de> Works as described - no problems found. Passes tests and QA script.
Patch pushed to master. Thanks Fridolin!
Pushed to 3.16.x for inclusion in 3.16.4.
Pushed to 3.14.x, will be in 3.14.12.