From c7915683549fe9cb69d604dfdaa374872ca2ee7d Mon Sep 17 00:00:00 2001 From: Fridolin Somers Date: Wed, 11 Jun 2014 12:25:19 +0200 Subject: [PATCH] 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 --- koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/results.tt | 8 ++++---- koha-tmpl/intranet-tmpl/prog/en/modules/virtualshelves/shelves.tt | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/results.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/results.tt index 21c2866..556afbf 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/results.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/results.tt @@ -505,7 +505,7 @@ var holdForPatron = function () { [% IF ( SEARCH_RESULT.size ) %] ; [% SEARCH_RESULT.size %][% END %] [% IF ( SEARCH_RESULT.isbn ) %]ISBN: [% SEARCH_RESULT.isbn | replace('\s\|', ', ')%][% END %] [% SEARCH_RESULT.description %] [% IF ( SEARCH_RESULT.timestamp ) %] (modified on [% SEARCH_RESULT.timestamp %])[% END %] - [% IF ( SEARCH_RESULT.cn_class ) %][[% SEARCH_RESULT.cn_class %]][% END %] + [% IF ( SEARCH_RESULT.cn_class ) %][[% SEARCH_RESULT.cn_class %]][% END %]

[% IF ( SEARCH_RESULT.searchhighlightblob ) %]

[% SEARCH_RESULT.searchhighlightblob %]

[% END %] @@ -549,7 +549,7 @@ var holdForPatron = function () { [% END %] [% IF ( available_items_loo.branchname ) %][% available_items_loo.branchname %][% END %] [% IF ( available_items_loo.location ) %][% available_items_loo.location %][% END %] - [% IF ( available_items_loo.itemcallnumber ) %][[% available_items_loo.itemcallnumber %]][% END %] + [% IF ( available_items_loo.itemcallnumber ) %][[% available_items_loo.itemcallnumber %]][% END %] ([% available_items_loo.count %]) [% IF item_level_itypes && available_items_loo.description %]
[% available_items_loo.description %] @@ -571,7 +571,7 @@ var holdForPatron = function () { [% END %] [% IF ( onloan_items_loo.branchname ) %][% onloan_items_loo.branchname %][% END %] [% IF ( onloan_items_loo.location ) %][% onloan_items_loo.location %][% END %] - [% IF ( onloan_items_loo.itemcallnumber ) %][[% onloan_items_loo.itemcallnumber %]][% END %] + [% IF ( onloan_items_loo.itemcallnumber ) %][[% onloan_items_loo.itemcallnumber %]][% END %] ([% onloan_items_loo.count %][% IF ( onloan_items_loo.longoverdue ) %], [% onloan_items_loo.longoverdue %] long overdue[% END %]) date due: [% onloan_items_loo.due_date %] [% IF item_level_itypes && onloan_items_loo.description %]
[% onloan_items_loo.description %] @@ -593,7 +593,7 @@ var holdForPatron = function () { [% END %] [% IF ( other_items_loo.branchname ) %][% other_items_loo.branchname %][% END %] [% IF ( other_items_loo.location ) %][% other_items_loo.location %][% END %] - [% IF ( other_items_loo.itemcallnumber ) %][[% other_items_loo.itemcallnumber %]][% END %] + [% IF ( other_items_loo.itemcallnumber ) %][[% other_items_loo.itemcallnumber %]][% END %] [% IF ( other_items_loo.withdrawn ) %](Withdrawn)[% END %] [% IF ( other_items_loo.itemlost ) %](Lost)[% END %] [% IF ( other_items_loo.damaged ) %](Damaged)[% END %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/virtualshelves/shelves.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/virtualshelves/shelves.tt index 23d815f..3fefac0 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/virtualshelves/shelves.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/virtualshelves/shelves.tt @@ -379,7 +379,7 @@ function placeHold () { [% FOREACH result IN itemsloo.ITEM_RESULTS %]
  • [% result.holdingbranch %] [% IF ( result.location_intranet ) %] ([% result.location_intranet %]) [% END %] [% IF ( result.itemcallnumber ) %] - [[% result.itemcallnumber %]] + [[% result.itemcallnumber %]] [% END %]
  • [% END %] -- 1.9.1