WebV: Call Number redirect does not work
- Article Type: General
- Product: Voyager
- Product Version: 8.2.0
Symptoms
- "Could not retrieve search results" when click on Call Number redirect in a record.
- Other search redirects from record work fine
- URL created by redirect inserts call number rather than search code in searchCode= parameter
Defect status
Issue 16384-21041 is fixed in Voyager 8.2.2 and higher.
Replication steps
- On the server, edit your skin?s files to use a redirect on call number. For example:
- ... ui/<skin>/xsl/contentLayout/configs/displayHoldings.xml
<holdingsTags label="Call Number:" notFound="No call number available"> <displayTag field="852" indicator1="X" indicator2="X" subfield="khij" redirect="callNumber" redirectOn="hi" /> </holdingsTags>
- ... ui/<skin>/webvoyage.properties
holdings.redirect.callNumber.search.code=CALL+
- Search in WebVoyage using the skin from step 1.
- Click on a record in the Titles List.
- In the Holdings Information, the Call Number should be a clickable link.
- Hover over the link and note the URL your browser previews looks something like this:
http://<IP>:<port>/vwebv/search?searchArg=QL737.C424%20S65%202007&searchCode=%20QL737.C424%20S65%202007&searchType=1
Note the space after searchCode= as well as the use of the call number for searchCode= rather than the valid search code specified in your webvoyage.properties file.
- Click the link. You are returned to the search page with the message "Could not retrieve search results"
Workaround
Edit display.xsl
- Find this section:
<xsl:variable name="cleanedRedirectSearchData"> <xsl:call-template name="url-encode"> <xsl:with-param name="str" select="$redirectSearchData"/> </xsl:call-template> </xsl:variable> <xsl:variable name="linkData"> <xsl:if test="string-length($cleanedRedirectSearchData)>0"> <xsl:value-of select="$searchParameter"/> <xsl:value-of select="$searchArgParameter"/>=<xsl:value-of select="normalize-space(substring($cleanedRedirectSearchData,$redirectNonFilingIndicator))"/> <xsl:value-of select="$searchCodeParameter"/>=<xsl:value-of select="$cleanedRedirectSearchData"/> <xsl:value-of select="$searchTypeParameter"/>=<xsl:value-of select="$redirectSearchType"/>
Note the incorrect parameter:
<xsl:value-of select="$searchCodeParameter"/>=<xsl:value-of select="$cleanedRedirectSearchData"/>
- Change the following parameter:
<xsl:value-of select="$searchCodeParameter"/>=<xsl:value-of select="$cleanedRedirectSearchData"/>
to instead be this:
<xsl:value-of select="$searchCodeParameter"/>=<xsl:value-of select="$redirectSearchCode"/>
- Save change.
- Article last edited: 08-Oct-2013