Changeset 33592
- Timestamp:
- 2019-10-22T13:51:02+13:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone3/web/interfaces/default/transform/pages/query.xsl
r33492 r33592 1 1 <?xml version="1.0" encoding="ISO-8859-1"?> 2 2 <xsl:stylesheet version="1.0" 3 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"4 xmlns:java="http://xml.apache.org/xslt/java"5 xmlns:util="xalan://org.greenstone.gsdl3.util.XSLTUtil"6 xmlns:gslib="http://www.greenstone.org/skinning"7 xmlns:gsvar="http://www.greenstone.org/skinning-var"8 xmlns:gsf="http://www.greenstone.org/greenstone3/schema/ConfigFormat"9 extension-element-prefixes="java util"10 exclude-result-prefixes="java util gsf">11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 3 xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 4 xmlns:java="http://xml.apache.org/xslt/java" 5 xmlns:util="xalan://org.greenstone.gsdl3.util.XSLTUtil" 6 xmlns:gslib="http://www.greenstone.org/skinning" 7 xmlns:gsvar="http://www.greenstone.org/skinning-var" 8 xmlns:gsf="http://www.greenstone.org/greenstone3/schema/ConfigFormat" 9 extension-element-prefixes="java util" 10 exclude-result-prefixes="java util gsf"> 11 12 <!-- use the 'main' layout --> 13 <xsl:import href="layouts/main.xsl"/> 14 <xsl:import href="map-tools.xsl"/> 15 <xsl:import href="panorama-viewer-tools.xsl"/> 16 17 <!-- set page title --> 18 <xsl:template name="pageTitle"> 19 <gslib:serviceName/> 20 </xsl:template> 21 22 <!-- set page breadcrumbs --> 23 <xsl:template name="breadcrumbs"> 24 <gslib:siteLink/> 25 <gslib:rightArrow/> 26 <xsl:if test="/page/pageResponse/collection"> 27 <gslib:collectionNameLinked/> 28 <gslib:rightArrow/> 29 </xsl:if> 30 </xsl:template> 31 32 <!-- do we display the line 'displaying 0 to 20 of 40 documents'--> 33 <!-- on by default. To turn off, add the following in <search> element in collectionConfig.xml: 34 <gsf:option name="hideStatus" value="true"/> --> 35 <xsl:variable name="display_status_bar"> 36 <xsl:if test="/page/pageResponse/format[@type='search']/gsf:option[@name='hideStatus']/@value='true'">false</xsl:if></xsl:variable> 37 <!-- the page content --> 38 <xsl:template match="/page"> 39 <xsl:if test="not(/page/pageRequest/paramList/param[@name = 'qs']) or /page/pageRequest/paramList/param[@name = 'qs']/@value = ''"> 40 <xsl:call-template name="queryPage"/> 41 </xsl:if> 42 42 <xsl:if test="contains(/page/pageRequest/paramList/param[@name='rt']/@value, 'r')"> 43 <xsl:call-template name="resultsPage"/> 44 </xsl:if> 45 </xsl:template> 46 47 <xsl:template name="resultsPage"> 48 <xsl:call-template name="resultsPagePre"/> 49 <xsl:call-template name="displayMatchDocs"/> 50 <xsl:call-template name="displayTermInfo"/> 51 <xsl:call-template name="displayBaskets"/> 52 <xsl:call-template name="displayResults"/> 53 <xsl:call-template name="resultsPagePost"/> 54 </xsl:template> 55 56 <!-- optional cgi-params for links to document pages --> 57 <xsl:variable name="opt-doc-link-args">p.s=<gsvar:this-service/><xsl:if test="/page/pageRequest/paramList/param[@name ='s1.collection']">&ck=TextQuery</xsl:if> 58 </xsl:variable> 59 60 <xsl:template name="displayBaskets"> 61 <xsl:if test="$berryBasketOn or $favouriteBasketOn or ($documentBasketOn and (util:contains(/page/pageRequest/userInformation/@groups, 'administrator') or util:contains(/page/pageRequest/userInformation/@groups, 'all-collections-editor') or util:contains(/page/pageRequest/userInformation/@groups, $thisCollectionEditor)))"> 62 <div id="rightSidebar"> 63 <xsl:if test="$berryBasketOn"> 64 <!-- show the berry basket if it's turned on --> 65 <gslib:berryBasket/> 66 <xsl:text> </xsl:text> 43 <xsl:call-template name="resultsPage"/> 44 </xsl:if> 45 </xsl:template> 46 47 <xsl:template name="resultsPage"> 48 <xsl:call-template name="resultsPagePre"/> 49 <xsl:call-template name="displayMatchDocs"/> 50 <xsl:call-template name="displayTermInfo"/> 51 <xsl:call-template name="displayBaskets"/> 52 <xsl:call-template name="displayResults"/> 53 <xsl:call-template name="resultsPagePost"/> 54 </xsl:template> 55 56 <!-- optional cgi-params for links to document pages --> 57 <xsl:variable name="opt-doc-link-args">p.s=<gsvar:this-service/><xsl:if test="/page/pageRequest/paramList/param[@name ='s1.collection']">&ck=TextQuery</xsl:if> 58 </xsl:variable> 59 60 <xsl:template name="displayBaskets"> 61 <xsl:if test="$berryBasketOn or $favouriteBasketOn or ($documentBasketOn and (util:contains(/page/pageRequest/userInformation/@groups, 'administrator') or util:contains(/page/pageRequest/userInformation/@groups, 'all-collections-editor') or util:contains(/page/pageRequest/userInformation/@groups, $thisCollectionEditor)))"> 62 <div id="rightSidebar"> 63 <xsl:if test="$berryBasketOn"> 64 <!-- show the berry basket if it's turned on --> 65 <gslib:berryBasket/> 66 <xsl:text> </xsl:text> 67 </xsl:if> 68 69 <xsl:if test="$favouriteBasketOn"> 70 <!-- show the favourites 'basket' if it's turned on --> 71 <gslib:gotoFavourites/> 72 <xsl:text> </xsl:text> 73 </xsl:if> 74 75 <xsl:if test="$documentBasketOn and (util:contains(/page/pageRequest/userInformation/@groups, 'administrator') or util:contains(/page/pageRequest/userInformation/@groups, 'all-collections-editor') or util:contains(/page/pageRequest/userInformation/@groups, $thisCollectionEditor))"> 76 <gslib:documentBasket/> 77 <xsl:text> </xsl:text> 78 </xsl:if> 79 </div> 80 </xsl:if> 81 </xsl:template> 82 83 <xsl:template name="displayResults"> 84 <xsl:if test="/page/pageResponse/facetList/facet"> 85 <xsl:call-template name="displayFacets"/> 86 </xsl:if> 87 <div id="resultsArea"> 88 <xsl:attribute name="class"> 89 <xsl:if test="/page/pageResponse/facetList/facet">facetedResults</xsl:if> 90 </xsl:attribute> 91 <table id="resultsTable"> 92 <xsl:for-each select="pageResponse/documentNodeList/documentNode"> 93 <tr id="div{@nodeID}" class="document"> 94 <xsl:apply-templates select="."/> 95 <!-- The berry/favourite (optional) --> 96 <td valign="top"> 97 <xsl:if test="/page/pageResponse/interfaceOptions/option[@name = 'berryBasket']/@value = 'true'"> 98 <xsl:call-template name="documentBerryForClassifierOrSearchPage"/> 67 99 </xsl:if> 68 69 <xsl:if test="$favouriteBasketOn"> 70 <!-- show the favourites 'basket' if it's turned on --> 71 <gslib:gotoFavourites/> 72 <xsl:text> </xsl:text> 100 <xsl:if test="/page/pageResponse/interfaceOptions/option[@name = 'favouriteBasket']/@value = 'true'"> 101 <xsl:call-template name="documentFavouriteForClassifierOrSearchPage"/> 73 102 </xsl:if> 74 75 <xsl:if test="$documentBasketOn and (util:contains(/page/pageRequest/userInformation/@groups, 'administrator') or util:contains(/page/pageRequest/userInformation/@groups, 'all-collections-editor') or util:contains(/page/pageRequest/userInformation/@groups, $thisCollectionEditor))"> 76 <gslib:documentBasket/> 77 <xsl:text> </xsl:text> 78 </xsl:if> 103 </td> 104 <xsl:call-template name="highlightSnippet"> 105 <xsl:with-param name="nodeHASH"> 106 <xsl:value-of select="@nodeID"/> 107 </xsl:with-param> 108 <xsl:with-param name="collection" select="@collection"/> 109 <!--<xsl:choose> <xsl:when test="@collection"><xsl:value-of select="@collection"/></xsl:with-param>--> 110 </xsl:call-template> 111 <xsl:call-template name="documentNodePost"/> 112 </tr> 113 </xsl:for-each> 114 <br/> 115 </table> 116 117 <!-- Previous/Next buttons--> 118 <xsl:call-template name="prevNextButtons"/> 119 </div> 120 <xsl:if test="/page/pageResponse/facetList/facet"> 121 <div style="clear:both;"> 122 <xsl:text> </xsl:text> 123 </div> 124 </xsl:if> 125 </xsl:template> 126 127 <xsl:template name="displayFacets"> 128 <script type="text/javascript" src="interfaces/{$interface_name}/js/utility_scripts.js"><xsl:text> </xsl:text></script> 129 <script type="text/javascript" src="interfaces/{$interface_name}/js/facet-scripts.js"> 130 <xsl:text> </xsl:text> 131 </script> 132 <div id="facetSelector"> 133 <xsl:for-each select="/page/pageResponse/facetList/facet"> 134 <xsl:if test="count(count) > 0"> 135 <ul class="facetTable ui-widget-content" indexName="{@name}"> 136 <xsl:variable name="serviceName"> 137 <xsl:value-of select="/page/pageRequest/paramList/param[@name = 's']/@value"/> 138 </xsl:variable> 139 <xsl:variable name="indexShortName"> 140 <xsl:value-of select="@name"/> 141 </xsl:variable> 142 <xsl:variable name="countSize"> 143 <xsl:choose> 144 <xsl:when test="/page/pageResponse/format[@type='search']/gsf:option[@name='facetTableRows']"> 145 <xsl:value-of select="/page/pageResponse/format[@type='search']/gsf:option[@name='facetTableRows']/@value"/> 146 </xsl:when> 147 <xsl:otherwise>8</xsl:otherwise> 148 </xsl:choose> 149 </xsl:variable> 150 151 <li class="ui-widget-header" style="text-transform:capitalize; text-align:center;"> 152 <xsl:value-of select="displayItem[@name='name']"/> 153 </li> 154 <xsl:for-each select="count"> 155 <li> 156 <xsl:attribute name="style"> 157 <xsl:if test="position() > $countSize">display:none;<xsl:value-of select="$indexShortName"/> 158 </xsl:if> 159 </xsl:attribute> 160 <input type="checkbox" onclick="performRefinedSearch();"/> 161 <span> 162 <xsl:value-of select="@name"/> 163 </span>(<xsl:value-of select="."/>) 164 </li> 165 </xsl:for-each> 166 <xsl:if test="count(count) > $countSize"> 167 <li class="expandFacetList{$indexShortName}"> 168 <a class="expandFacetListLink{$indexShortName}" href="javascript:expandFacetList('{$indexShortName}', {$countSize});"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.facet.more')"/></a> 169 </li> 170 <li class="collapseFacetList{$indexShortName}" style="display: none;"> 171 <a class="collapseFacetListLink{$indexShortName}" href="javascript:collapseFacetList('{$indexShortName}', {$countSize});"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.facet.less')"/></a> 172 </li> 173 </xsl:if> 174 </ul> 175 </xsl:if> 176 </xsl:for-each> 177 </div> 178 179 </xsl:template> 180 <!-- this usually gets overriden in collectionConfig.xml --> 181 <gsf:template match="documentNode"> 182 <td valign="top"> 183 <gsf:link type="document"> 184 <gsf:icon type="document"/> 185 </gsf:link> 186 </td> 187 <td> 188 <gsf:link type="document"> 189 <xsl:call-template name="choose-title"/> 190 </gsf:link> 191 </td> 192 </gsf:template> 193 194 <xsl:template name="highlightSnippet"> 195 <xsl:param name="nodeHASH"/> 196 <xsl:param name="collection"/> 197 <xsl:for-each select="/page/pageResponse/highlightSnippetList/highlightSnippet[@nodeID = $nodeHASH]"> 198 <xsl:if test="not($collection) or $collection = @collection"> 199 <tr> 200 <td> 201 </td> 202 <td> 203 <div class="HighlightSnippet"> 204 <xsl:value-of select="." disable-output-escaping="yes"/> 79 205 </div> 206 </td> 207 </tr> 208 </xsl:if> 209 </xsl:for-each> 210 </xsl:template> 211 212 <xsl:template name="queryPage"> 213 <xsl:for-each select="pageResponse/service"> 214 <xsl:variable name="form_action"><xsl:value-of select="$library_name"/>/<xsl:if test="$collName">collection/<xsl:value-of select="$collName"/>/</xsl:if>search/<xsl:value-of select="@name"/></xsl:variable> 215 <form name="QueryForm" method="get" action="{$form_action}"> 216 <div> 217 <input type="hidden" name="a" value="q"/> 218 <input type="hidden" name="sa"> 219 <xsl:attribute name="value"> 220 <xsl:value-of select="/page/pageRequest/@subaction"/> 221 </xsl:attribute> 222 </input> 223 <input type="hidden" name="rt" value="rd"/> 224 225 <xsl:variable name="ns">s1.</xsl:variable> 226 <xsl:choose> 227 <xsl:when test="/page/pageResponse/hierarchy and paramList/param[@name ='collection']"> 228 <xsl:call-template name="CCSParams"> <!-- cross coll search --> 229 <xsl:with-param name="ns" select="$ns" /> 230 </xsl:call-template> 231 </xsl:when> 232 <xsl:otherwise> 233 <xsl:for-each select="paramList/param"> 234 <xsl:choose> 235 <xsl:when test="@type='multi'"> 236 <xsl:apply-templates select="."> 237 <xsl:with-param name="ns" select="$ns"/> 238 </xsl:apply-templates> 239 </xsl:when> 240 <xsl:otherwise> 241 <xsl:call-template name="param-display"> 242 <xsl:with-param name="ns" select="$ns"/> 243 </xsl:call-template> 244 </xsl:otherwise> 245 </xsl:choose> 246 </xsl:for-each> 247 </xsl:otherwise> 248 </xsl:choose> 249 <br/> 250 <input type="submit"> 251 <xsl:attribute name="value"> 252 <xsl:value-of select="displayItem[@name='submit']"/> 253 </xsl:attribute> 254 </input> 255 </div> 256 </form> 257 </xsl:for-each> 258 </xsl:template> 259 260 <xsl:template name="CCSParams"> 261 <xsl:param name="ns" /> 262 <xsl:variable name="currentSelection"><xsl:value-of select="util:getFormattedCCSSelection(/page/pageRequest/paramList/param[@name='s1.collection']/@value,/page/pageRequest/paramList/param[@name='s1.group']/@value)"/></xsl:variable> 263 <!-- display the collection param --> 264 <div class="paramLabel"> 265 <xsl:value-of select="paramList/param[@name='collection']/displayItem[@name='name']/text()" /> 266 </div> 267 <div class="paramValue"> 268 <select multiple="" size='10'> 269 <xsl:attribute name="name"> 270 <xsl:value-of select="$ns"></xsl:value-of> 271 <xsl:text>collection</xsl:text> 272 </xsl:attribute> 273 <xsl:for-each select="/page/pageResponse/hierarchy/*"> 274 <xsl:call-template name="hierarchy-display"> 275 <xsl:with-param name="padding">0</xsl:with-param> 276 <xsl:with-param name="currentSelection" select="$currentSelection"/> 277 </xsl:call-template> 278 </xsl:for-each> 279 </select> 280 </div> 281 <br class="clear" /> 282 <!-- display all the other params --> 283 <xsl:for-each select="paramList/param[@name !='collection']"> 284 <xsl:choose> 285 <xsl:when test="@type='multi'"> 286 <xsl:apply-templates select="."> 287 <xsl:with-param name="ns" select="$ns"/> 288 </xsl:apply-templates> 289 </xsl:when> 290 <xsl:otherwise> 291 <xsl:call-template name="param-display"> 292 <xsl:with-param name="ns" select="$ns"/> 293 </xsl:call-template> 294 </xsl:otherwise> 295 </xsl:choose> 296 </xsl:for-each> 297 </xsl:template> 298 299 <xsl:template name="hierarchy-display"> 300 <xsl:param name="padding" /> 301 <xsl:param name="path" /> 302 <xsl:param name="currentSelection"/> 303 <xsl:choose> 304 <xsl:when test="name(.) = 'group'"> 305 <xsl:variable name="group-name">group.<xsl:if test="$path"><xsl:value-of select="$path" />.</xsl:if><xsl:value-of select="@name" /></xsl:variable> 306 <option> 307 <xsl:attribute name="style"> 308 <xsl:text>padding-left: </xsl:text> 309 <xsl:value-of select="concat($padding,'px')" /> 310 </xsl:attribute> 311 <xsl:attribute name="value"><xsl:value-of select="$group-name"/></xsl:attribute> 312 <xsl:if test="util:csvContains($currentSelection, $group-name)"> 313 <xsl:attribute name="selected">selected</xsl:attribute> 80 314 </xsl:if> 81 </xsl:template> 82 83 <xsl:template name="displayResults"> 84 <xsl:if test="/page/pageResponse/facetList/facet"> 85 <xsl:call-template name="displayFacets"/> 315 <xsl:value-of select="@title"></xsl:value-of> 316 <xsl:for-each select="./*"> 317 <xsl:call-template name="hierarchy-display"> 318 <xsl:with-param name="padding"> 319 <xsl:value-of select="$padding + 20" /> 320 </xsl:with-param> 321 <xsl:with-param name="path"><xsl:if test="$path"><xsl:value-of select="$path" />.</xsl:if><xsl:value-of select="../@name" /></xsl:with-param> 322 <xsl:with-param name="currentSelection" select="$currentSelection"/> 323 </xsl:call-template> 324 </xsl:for-each> 325 </option> 326 </xsl:when> 327 <xsl:otherwise> 328 <option> 329 <xsl:attribute name="style"> 330 <xsl:text>padding-left: </xsl:text> 331 <xsl:value-of select="$padding" /> 332 <xsl:text>px</xsl:text> 333 </xsl:attribute> 334 <xsl:if test="util:csvContains($currentSelection, @name)"> 335 <xsl:attribute name="selected">selected</xsl:attribute> 86 336 </xsl:if> 87 <div id="resultsArea"> 88 <xsl:attribute name="class"> 89 <xsl:if test="/page/pageResponse/facetList/facet">facetedResults</xsl:if> 90 </xsl:attribute> 91 <table id="resultsTable"> 92 <xsl:for-each select="pageResponse/documentNodeList/documentNode"> 93 <tr id="div{@nodeID}" class="document"> 94 <xsl:apply-templates select="."/> 95 <!-- The berry/favourite (optional) --> 96 <td valign="top"> 97 <xsl:if test="/page/pageResponse/interfaceOptions/option[@name = 'berryBasket']/@value = 'true'"> 98 <xsl:call-template name="documentBerryForClassifierOrSearchPage"/> 99 </xsl:if> 100 <xsl:if test="/page/pageResponse/interfaceOptions/option[@name = 'favouriteBasket']/@value = 'true'"> 101 <xsl:call-template name="documentFavouriteForClassifierOrSearchPage"/> 102 </xsl:if> 103 </td> 104 <xsl:call-template name="highlightSnippet"> 105 <xsl:with-param name="nodeHASH"> 106 <xsl:value-of select="@nodeID"/> 107 </xsl:with-param> 108 <xsl:with-param name="collection" select="@collection"/> 109 <!--<xsl:choose> <xsl:when test="@collection"><xsl:value-of select="@collection"/></xsl:with-param>--> 110 </xsl:call-template> 111 <xsl:call-template name="documentNodePost"/> 112 </tr> 113 </xsl:for-each> 114 <br/> 115 </table> 116 117 <!-- Previous/Next buttons--> 118 <xsl:call-template name="prevNextButtons"/> 119 </div> 120 <xsl:if test="/page/pageResponse/facetList/facet"> 121 <div style="clear:both;"> 122 <xsl:text> </xsl:text> 123 </div> 124 </xsl:if> 125 </xsl:template> 126 127 <xsl:template name="displayFacets"> 128 <script type="text/javascript" src="interfaces/{$interface_name}/js/utility_scripts.js"><xsl:text> </xsl:text></script> 129 <script type="text/javascript" src="interfaces/{$interface_name}/js/facet-scripts.js"> 130 <xsl:text> </xsl:text> 131 </script> 132 <div id="facetSelector"> 133 <xsl:for-each select="/page/pageResponse/facetList/facet"> 134 <xsl:if test="count(count) > 0"> 135 <ul class="facetTable ui-widget-content" indexName="{@name}"> 136 <xsl:variable name="serviceName"> 137 <xsl:value-of select="/page/pageRequest/paramList/param[@name = 's']/@value"/> 138 </xsl:variable> 139 <xsl:variable name="indexShortName"> 140 <xsl:value-of select="@name"/> 141 </xsl:variable> 142 <xsl:variable name="countSize"> 143 <xsl:choose> 144 <xsl:when test="/page/pageResponse/format[@type='search']/gsf:option[@name='facetTableRows']"> 145 <xsl:value-of select="/page/pageResponse/format[@type='search']/gsf:option[@name='facetTableRows']/@value"/> 146 </xsl:when> 147 <xsl:otherwise>8</xsl:otherwise> 148 </xsl:choose> 149 </xsl:variable> 150 151 <li class="ui-widget-header" style="text-transform:capitalize; text-align:center;"> 152 <xsl:value-of select="displayItem[@name='name']"/> 153 </li> 154 <xsl:for-each select="count"> 155 <li> 156 <xsl:attribute name="style"> 157 <xsl:if test="position() > $countSize">display:none;<xsl:value-of select="$indexShortName"/> 158 </xsl:if> 159 </xsl:attribute> 160 <input type="checkbox" onclick="performRefinedSearch();"/> 161 <span> 162 <xsl:value-of select="@name"/> 163 </span>(<xsl:value-of select="."/>) 164 </li> 165 </xsl:for-each> 166 <xsl:if test="count(count) > $countSize"> 167 <li class="expandFacetList{$indexShortName}"> 168 <a class="expandFacetListLink{$indexShortName}" href="javascript:expandFacetList('{$indexShortName}', {$countSize});"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.facet.more')"/></a> 169 </li> 170 <li class="collapseFacetList{$indexShortName}" style="display: none;"> 171 <a class="collapseFacetListLink{$indexShortName}" href="javascript:collapseFacetList('{$indexShortName}', {$countSize});"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.facet.less')"/></a> 172 </li> 173 </xsl:if> 174 </ul> 175 </xsl:if> 176 </xsl:for-each> 177 </div> 178 179 </xsl:template> 180 <!-- this usually gets overriden in collectionConfig.xml --> 181 <gsf:template match="documentNode"> 182 <td valign="top"> 183 <gsf:link type="document"> 184 <gsf:icon type="document"/> 185 </gsf:link> 337 <xsl:attribute name="value"> 338 <xsl:value-of select="current()/@name"></xsl:value-of> 339 </xsl:attribute> 340 <xsl:value-of 341 select="/page/pageResponse/service[@name = 'TextQuery']/paramList/param[@name = 'collection']/option[@name = current()/@name]/displayItem[@name = 'name']/text()"></xsl:value-of> 342 </option> 343 </xsl:otherwise> 344 </xsl:choose> 345 </xsl:template> 346 347 <xsl:template name="displayMatchDocs"> 348 <div id="matchdocs"> 349 <xsl:variable name="numDocsMatched" select="/page/pageResponse/metadataList/metadata[@name='numDocsMatched']"/> 350 <xsl:variable name="numDocsReturned" select="/page/pageResponse/metadataList/metadata[@name='numDocsReturned']"/> 351 <xsl:variable name="docLevel"> 352 <xsl:call-template name="documentLevel"/> 353 </xsl:variable> 354 <xsl:variable name="docLevelText"> 355 <xsl:call-template name="documentLevelText"> 356 <xsl:with-param name="numDocsMatched" select="$numDocsMatched"/> 357 <xsl:with-param name="level" select="$docLevel"/> 358 </xsl:call-template> 359 </xsl:variable> 360 <xsl:choose> 361 <xsl:when test="$numDocsMatched='0' or $numDocsReturned='0'"> 362 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.nodocsmatch', $docLevelText)"/> 363 </xsl:when> 364 <xsl:when test="$numDocsMatched='1' or $numDocsReturned='1'"> 365 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.onedocsmatch', $docLevelText)"/> 366 </xsl:when> 367 <xsl:when test="$numDocsMatched"> 368 <xsl:variable name="gitArgs1" select="concat($numDocsMatched, ';', $docLevelText)"/> 369 <xsl:variable name="gitArgs2" select="concat($numDocsReturned, ';', $docLevelText)"/> 370 371 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.manydocsmatch', $gitArgs1)"/> 372 <xsl:if test="$numDocsReturned and not($numDocsMatched=$numDocsReturned)"> (<xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.docsreturned', $gitArgs2)"/>)</xsl:if> 373 </xsl:when> 374 <xsl:when test="$numDocsReturned"> 375 <xsl:variable name="gitArgs" select="concat($numDocsReturned, ';', $docLevelText)"/> 376 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.atleastdocsmatch', $gitArgs)"/> 377 </xsl:when> 378 </xsl:choose> 379 </div> 380 381 </xsl:template> 382 383 <xsl:template name="documentLevel"> 384 <xsl:choose> 385 <xsl:when test="/page/pageRequest/paramList/param[@name='level']"> 386 <xsl:value-of select="/page/pageRequest/paramList/param[@name='level']/@value" /> 387 </xsl:when> 388 <xsl:when test="/page/pageRequest/paramList/param[@name='s1.level']"> 389 <xsl:value-of select="/page/pageRequest/paramList/param[@name='s1.level']/@value" /> 390 </xsl:when> 391 <xsl:otherwise>Doc</xsl:otherwise> 392 </xsl:choose> 393 </xsl:template> 394 395 <xsl:template name="documentLevelText"> 396 <xsl:param name="numDocsMatched">0</xsl:param> 397 <xsl:param name="level">Doc</xsl:param> 398 <xsl:choose> 399 <xsl:when test="$numDocsMatched = 1"> 400 <xsl:choose> 401 <xsl:when test="$level = 'Doc'"> 402 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.document')"/> 403 </xsl:when> 404 <xsl:otherwise> 405 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.section')"/> 406 </xsl:otherwise> 407 </xsl:choose> 408 </xsl:when> 409 <!-- 0 or more than one use plural. is that the case for all langs??--> 410 <xsl:otherwise> 411 <xsl:choose> 412 <xsl:when test="$level = 'Doc'"> 413 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.document_plural')"/> 414 </xsl:when> 415 <xsl:otherwise> 416 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.section_plural')"/> 417 </xsl:otherwise> 418 </xsl:choose> 419 </xsl:otherwise> 420 </xsl:choose> 421 </xsl:template> 422 423 <xsl:template name="displayTermInfo"> 424 425 <!-- Find the number of documents displayed per page --> 426 <xsl:variable name="level"> 427 <xsl:call-template name="documentLevel"/> 428 </xsl:variable> 429 430 <!-- The list of search terms with their frequency and document count --> 431 <p class="termList"> 432 <xsl:if test="count(/page/pageResponse/termList/stopword) > 0"> 433 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.common')"/> 434 <xsl:text> </xsl:text> 435 <xsl:for-each select="/page/pageResponse/termList/stopword"> 436 <span style="font-style:italic;"> 437 <xsl:value-of select="@name"/> 438 </span> 439 <xsl:text> </xsl:text> 440 </xsl:for-each> 441 <br /> 442 <br /> 443 </xsl:if> 444 445 <!-- If there is only one or two search terms then show the expanded information --> 446 <xsl:choose> 447 <xsl:when test="count(/page/pageResponse/termList/term) < 3"> 448 449 <xsl:for-each select="/page/pageResponse/termList/term"> 450 <xsl:variable name="levelText"> 451 <!-- this gets document, section, documents, sections, depending on level and number --> 452 <xsl:call-template name="documentLevelText"> 453 <xsl:with-param name="level" select="$level"/> 454 <xsl:with-param name="numDocsMatched" select="@numDocsMatch"/> 455 </xsl:call-template> 456 </xsl:variable> 457 <span class="termInfo"> 458 459 <!-- For solr and mg collections, display: 460 term x occured y times 461 term a occured b times 462 For collections using all other indexers, display: 463 term x occurred y times in n sections/documents 464 term a occurred b times in m sections/docs 465 --> 466 <!-- not all these args are used in every case --> 467 <xsl:variable name="args" select="concat(@name,';', @freq, ';', @numDocsMatch,';', $levelText)"/> 468 <xsl:choose> 469 <xsl:when test="@freq = 0"> 470 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.termoccurs.0',$args)"/> 471 </xsl:when> 472 <xsl:when test="@freq = 1"> 473 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.termoccurs.1',$args)"/> 474 </xsl:when> 475 <xsl:otherwise> <!-- more than one occurrance --> 476 <xsl:choose> 477 <xsl:when test="/page/pageResponse/collection[@type = 'solr'] or /page/pageResponse/collection[@type = 'mg']"> 478 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.termoccurs.x',$args)"/> 479 </xsl:when> 480 <xsl:when test="@numDocsMatch = 1"> 481 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.termoccurs.x.1',$args)"/> 482 </xsl:when> 483 <xsl:otherwise> 484 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.termoccurs.x.x',$args)"/> 485 </xsl:otherwise> 486 </xsl:choose> 487 </xsl:otherwise> 488 </xsl:choose> 489 490 </span> 491 <br/> 492 </xsl:for-each> 493 </xsl:when> 494 <xsl:otherwise> 495 <xsl:for-each select="/page/pageResponse/termList/term"> 496 <span style="font-style:italic;"> 497 <xsl:value-of select="@name"/> 498 </span> (<xsl:value-of select="@freq"/>) 499 </xsl:for-each> 500 </xsl:otherwise> 501 </xsl:choose> 502 </p> 503 </xsl:template> 504 505 <xsl:template name="prevNextButtons"> 506 <!-- Current page --> 507 <xsl:variable name="currentPage"> 508 <xsl:choose> 509 <xsl:when test="/page/pageRequest/paramList/param[@name='s1.startPage']/@value"> 510 <xsl:value-of select="/page/pageRequest/paramList/param[@name='s1.startPage']/@value" /> 511 </xsl:when> 512 <xsl:when test="/page/pageRequest/paramList/param[@name='startPage']/@value"> 513 <xsl:value-of select="/page/pageRequest/paramList/param[@name='startPage']/@value" /> 514 </xsl:when> 515 <xsl:otherwise>1</xsl:otherwise> 516 </xsl:choose> 517 </xsl:variable> 518 <xsl:variable name="usesS1"> 519 <xsl:choose> 520 <xsl:when test="/page/pageResponse/service/paramList/param[@name='startPage']">true</xsl:when> 521 <xsl:otherwise>false</xsl:otherwise> 522 </xsl:choose> 523 </xsl:variable> 524 <!-- Find the total number of documents returned/matched --> 525 <xsl:variable name="docMax"> 526 <xsl:choose> 527 <xsl:when test="/page/pageResponse/metadataList/metadata[@name = 'numDocsReturned']"> 528 <xsl:value-of select="/page/pageResponse/metadataList/metadata[@name = 'numDocsReturned']"/> 529 </xsl:when> 530 <xsl:when test="/page/pageResponse/metadataList/metadata[@name = 'numDocsMatched']"> 531 <xsl:value-of select="/page/pageResponse/metadataList/metadata[@name = 'numDocsMatched']"/> 532 </xsl:when> 533 <xsl:otherwise> 534 <xsl:value-of select="count(/page/pageResponse/documentNodeList/documentNode)"/> 535 </xsl:otherwise> 536 </xsl:choose> 537 </xsl:variable> 538 <!-- Find the number of documents displayed per page --> 539 <xsl:variable name="docsPerPage"> 540 <xsl:choose> 541 <xsl:when test="/page/pageRequest/paramList/param[@name='s1.hitsPerPage']"> 542 <xsl:value-of select="/page/pageRequest/paramList/param[@name='s1.hitsPerPage']/@value" /> 543 </xsl:when> 544 <xsl:when test="/page/pageResponse/service/paramList/param[@name='hitsPerPage']"> 545 <xsl:value-of select="/page/pageResponse/service/paramList/param[@name='hitsPerPage']/@default" /> 546 </xsl:when> 547 <xsl:otherwise><xsl:value-of select="count(/page/pageResponse/documentNodeList/documentNode)"/></xsl:otherwise> 548 </xsl:choose> 549 </xsl:variable> 550 <!-- Find the level --> 551 <xsl:variable name="level"> 552 <xsl:call-template name="documentLevel"/> 553 </xsl:variable> 554 <!-- we only need this if number of docs > docsperpage --> 555 <xsl:if test="$docMax > $docsPerPage"> 556 <table id="searchResultNavTable"> 557 <tr> 558 <xsl:variable name="startPageName"> 559 <xsl:if test="$usesS1 = 'true'">s1.</xsl:if>startPage</xsl:variable> 560 561 <!-- Previous button --> 562 <td id="prevArrowTD"> 563 <xsl:if test="$currentPage != 1"> 564 <a href="{$library_name}?a=q&sa={/page/pageRequest/@subaction}&c={$collName}&s={/page/pageResponse/service/@name}&rt=rd&{$startPageName}={$currentPage - 1}&qs={/page/pageRequest/paramList/param[@name='qs']/@value}"> 565 <xsl:call-template name="previousArrowImage"/> 566 </a> 567 </xsl:if> 186 568 </td> 187 <td >188 < gsf:link type="document">189 < xsl:call-template name="choose-title"/>190 </ gsf:link>569 <td id="prevTD"> 570 <xsl:if test="$currentPage != 1"> 571 <a href="{$library_name}?a=q&sa={/page/pageRequest/@subaction}&c={$collName}&s={/page/pageResponse/service/@name}&rt=rd&{$startPageName}={$currentPage - 1}&qs={/page/pageRequest/paramList/param[@name='qs']/@value}"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.results.previous')"/></a> 572 </xsl:if> 191 573 </td> 192 </gsf:template> 193 194 <xsl:template name="highlightSnippet"> 195 <xsl:param name="nodeHASH"/> 196 <xsl:param name="collection"/> 197 <xsl:for-each select="/page/pageResponse/highlightSnippetList/highlightSnippet[@nodeID = $nodeHASH]"> 198 <xsl:if test="not($collection) or $collection = @collection"> 199 <tr> 200 <td> 201 </td> 202 <td> 203 <div class="HighlightSnippet"> 204 <xsl:value-of select="." disable-output-escaping="yes"/> 205 </div> 206 </td> 207 </tr> 208 </xsl:if> 209 </xsl:for-each> 210 </xsl:template> 211 212 <xsl:template name="queryPage"> 213 <xsl:for-each select="pageResponse/service"> 214 <xsl:variable name="form_action"><xsl:value-of select="$library_name"/>/<xsl:if test="$collName">collection/<xsl:value-of select="$collName"/>/</xsl:if>search/<xsl:value-of select="@name"/></xsl:variable> 215 <form name="QueryForm" method="get" action="{$form_action}"> 216 <div> 217 <input type="hidden" name="a" value="q"/> 218 <input type="hidden" name="sa"> 219 <xsl:attribute name="value"> 220 <xsl:value-of select="/page/pageRequest/@subaction"/> 221 </xsl:attribute> 222 </input> 223 <input type="hidden" name="rt" value="rd"/> 224 225 <xsl:variable name="ns">s1.</xsl:variable> 226 <xsl:choose> 227 <xsl:when test="/page/pageResponse/hierarchy and paramList/param[@name ='collection']"> 228 <xsl:call-template name="CCSParams"> <!-- cross coll search --> 229 <xsl:with-param name="ns" select="$ns" /> 230 </xsl:call-template> 231 </xsl:when> 232 <xsl:otherwise> 233 <xsl:for-each select="paramList/param"> 234 <xsl:choose> 235 <xsl:when test="@type='multi'"> 236 <xsl:apply-templates select="."> 237 <xsl:with-param name="ns" select="$ns"/> 238 </xsl:apply-templates> 239 </xsl:when> 240 <xsl:otherwise> 241 <xsl:call-template name="param-display"> 242 <xsl:with-param name="ns" select="$ns"/> 243 </xsl:call-template> 244 </xsl:otherwise> 245 </xsl:choose> 246 </xsl:for-each> 247 </xsl:otherwise> 248 </xsl:choose> 249 <br/> 250 <input type="submit"> 251 <xsl:attribute name="value"> 252 <xsl:value-of select="displayItem[@name='submit']"/> 253 </xsl:attribute> 254 </input> 255 </div> 256 </form> 257 </xsl:for-each> 258 </xsl:template> 259 260 <xsl:template name="CCSParams"> 261 <xsl:param name="ns" /> 262 <xsl:variable name="currentSelection"><xsl:value-of select="util:getFormattedCCSSelection(/page/pageRequest/paramList/param[@name='s1.collection']/@value,/page/pageRequest/paramList/param[@name='s1.group']/@value)"/></xsl:variable> 263 <!-- display the collection param --> 264 <div class="paramLabel"> 265 <xsl:value-of select="paramList/param[@name='collection']/displayItem[@name='name']/text()" /> 266 </div> 267 <div class="paramValue"> 268 <select multiple="" size='10'> 269 <xsl:attribute name="name"> 270 <xsl:value-of select="$ns"></xsl:value-of> 271 <xsl:text>collection</xsl:text> 272 </xsl:attribute> 273 <xsl:for-each select="/page/pageResponse/hierarchy/*"> 274 <xsl:call-template name="hierarchy-display"> 275 <xsl:with-param name="padding">0</xsl:with-param> 276 <xsl:with-param name="currentSelection" select="$currentSelection"/> 277 </xsl:call-template> 278 </xsl:for-each> 279 </select> 280 </div> 281 <br class="clear" /> 282 <!-- display all the other params --> 283 <xsl:for-each select="paramList/param[@name !='collection']"> 284 <xsl:choose> 285 <xsl:when test="@type='multi'"> 286 <xsl:apply-templates select="."> 287 <xsl:with-param name="ns" select="$ns"/> 288 </xsl:apply-templates> 289 </xsl:when> 290 <xsl:otherwise> 291 <xsl:call-template name="param-display"> 292 <xsl:with-param name="ns" select="$ns"/> 293 </xsl:call-template> 294 </xsl:otherwise> 295 </xsl:choose> 296 </xsl:for-each> 297 </xsl:template> 298 299 <xsl:template name="hierarchy-display"> 300 <xsl:param name="padding" /> 301 <xsl:param name="path" /> 302 <xsl:param name="currentSelection"/> 574 575 <xsl:if test="$display_status_bar != 'false'"> 576 <!-- Search result status bar (in english it reads "Displaying X to Y of Z documents") --> 577 <xsl:if test="$docsPerPage > 0"> 578 <xsl:variable name="startdoc" select="($currentPage - 1) * $docsPerPage + 1"/> 579 <xsl:variable name="enddoc"> 303 580 <xsl:choose> 304 <xsl:when test="name(.) = 'group'"> 305 <xsl:variable name="group-name">group.<xsl:if test="$path"><xsl:value-of select="$path" />.</xsl:if><xsl:value-of select="@name" /></xsl:variable> 306 <option> 307 <xsl:attribute name="style"> 308 <xsl:text>padding-left: </xsl:text> 309 <xsl:value-of select="concat($padding,'px')" /> 310 </xsl:attribute> 311 <xsl:attribute name="value"><xsl:value-of select="$group-name"/></xsl:attribute> 312 <xsl:if test="util:csvContains($currentSelection, $group-name)"> 313 <xsl:attribute name="selected">selected</xsl:attribute> 314 </xsl:if> 315 <xsl:value-of select="@title"></xsl:value-of> 316 <xsl:for-each select="./*"> 317 <xsl:call-template name="hierarchy-display"> 318 <xsl:with-param name="padding"> 319 <xsl:value-of select="$padding + 20" /> 320 </xsl:with-param> 321 <xsl:with-param name="path"><xsl:if test="$path"><xsl:value-of select="$path" />.</xsl:if><xsl:value-of select="../@name" /></xsl:with-param> 322 <xsl:with-param name="currentSelection" select="$currentSelection"/> 323 </xsl:call-template> 324 </xsl:for-each> 325 </option> 326 </xsl:when> 327 <xsl:otherwise> 328 <option> 329 <xsl:attribute name="style"> 330 <xsl:text>padding-left: </xsl:text> 331 <xsl:value-of select="$padding" /> 332 <xsl:text>px</xsl:text> 333 </xsl:attribute> 334 <xsl:if test="util:csvContains($currentSelection, @name)"> 335 <xsl:attribute name="selected">selected</xsl:attribute> 336 </xsl:if> 337 <xsl:attribute name="value"> 338 <xsl:value-of select="current()/@name"></xsl:value-of> 339 </xsl:attribute> 340 <xsl:value-of 341 select="/page/pageResponse/service[@name = 'TextQuery']/paramList/param[@name = 'collection']/option[@name = current()/@name]/displayItem[@name = 'name']/text()"></xsl:value-of> 342 </option> 343 </xsl:otherwise> 581 <xsl:when test="($currentPage * $docsPerPage + 1) > $docMax"> 582 <xsl:value-of select="$docMax"/> 583 </xsl:when> 584 <xsl:otherwise> 585 <xsl:value-of select="$currentPage * $docsPerPage"/> 586 </xsl:otherwise> 344 587 </xsl:choose> 345 </xsl:template> 346 347 <xsl:template name="displayMatchDocs"> 348 <div id="matchdocs"> 349 <xsl:variable name="numDocsMatched" select="/page/pageResponse/metadataList/metadata[@name='numDocsMatched']"/> 350 <xsl:variable name="numDocsReturned" select="/page/pageResponse/metadataList/metadata[@name='numDocsReturned']"/> 351 <xsl:variable name="docLevel"> 352 <xsl:call-template name="documentLevel"/> 353 </xsl:variable> 354 <xsl:variable name="docLevelText"> 355 <xsl:call-template name="documentLevelText"> 356 <xsl:with-param name="numDocsMatched" select="$numDocsMatched"/> 357 <xsl:with-param name="level" select="$docLevel"/> 358 </xsl:call-template> 359 </xsl:variable> 360 <xsl:choose> 361 <xsl:when test="$numDocsMatched='0' or $numDocsReturned='0'"> 362 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.nodocsmatch', $docLevelText)"/> 363 </xsl:when> 364 <xsl:when test="$numDocsMatched='1' or $numDocsReturned='1'"> 365 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.onedocsmatch', $docLevelText)"/> 366 </xsl:when> 367 <xsl:when test="$numDocsMatched"> 368 <xsl:variable name="gitArgs1" select="concat($numDocsMatched, ';', $docLevelText)"/> 369 <xsl:variable name="gitArgs2" select="concat($numDocsReturned, ';', $docLevelText)"/> 370 371 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.manydocsmatch', $gitArgs1)"/> 372 <xsl:if test="$numDocsReturned and not($numDocsMatched=$numDocsReturned)"> (<xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.docsreturned', $gitArgs2)"/>)</xsl:if> 373 </xsl:when> 374 <xsl:when test="$numDocsReturned"> 375 <xsl:variable name="gitArgs" select="concat($numDocsReturned, ';', $docLevelText)"/> 376 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.atleastdocsmatch', $gitArgs)"/> 377 </xsl:when> 378 </xsl:choose> 379 </div> 380 381 </xsl:template> 382 383 <xsl:template name="documentLevel"> 588 </xsl:variable> 589 <xsl:variable name="levelString"> 384 590 <xsl:choose> 385 <xsl:when test="/page/pageRequest/paramList/param[@name='level']"> 386 <xsl:value-of select="/page/pageRequest/paramList/param[@name='level']/@value" /> 387 </xsl:when> 388 <xsl:when test="/page/pageRequest/paramList/param[@name='s1.level']"> 389 <xsl:value-of select="/page/pageRequest/paramList/param[@name='s1.level']/@value" /> 390 </xsl:when> 391 <xsl:otherwise>Doc</xsl:otherwise> 591 <xsl:when test="$level = 'Doc'"> 592 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.document_plural')"/> 593 </xsl:when> 594 <xsl:otherwise> 595 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.section_plural')"/> 596 </xsl:otherwise> 392 597 </xsl:choose> 393 </xsl:template> 394 395 <xsl:template name="documentLevelText"> 396 <xsl:param name="numDocsMatched">0</xsl:param> 397 <xsl:param name="level">Doc</xsl:param> 398 <xsl:choose> 399 <xsl:when test="$numDocsMatched = 1"> 400 <xsl:choose> 401 <xsl:when test="$level = 'Doc'"> 402 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.document')"/> 403 </xsl:when> 404 <xsl:otherwise> 405 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.section')"/> 406 </xsl:otherwise> 407 </xsl:choose> 408 </xsl:when> 409 <!-- 0 or more than one use plural. is that the case for all langs??--> 410 <xsl:otherwise> 411 <xsl:choose> 412 <xsl:when test="$level = 'Doc'"> 413 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.document_plural')"/> 414 </xsl:when> 415 <xsl:otherwise> 416 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.section_plural')"/> 417 </xsl:otherwise> 418 </xsl:choose> 419 </xsl:otherwise> 420 </xsl:choose> 421 </xsl:template> 422 423 <xsl:template name="displayTermInfo"> 424 425 <!-- Find the number of documents displayed per page --> 426 <xsl:variable name="level"> 427 <xsl:call-template name="documentLevel"/> 428 </xsl:variable> 429 430 <!-- The list of search terms with their frequency and document count --> 431 <p class="termList"> 432 <xsl:if test="count(/page/pageResponse/termList/stopword) > 0"> 433 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.common')"/> 434 <xsl:text> </xsl:text> 435 <xsl:for-each select="/page/pageResponse/termList/stopword"> 436 <span style="font-style:italic;"> 437 <xsl:value-of select="@name"/> 438 </span> 439 <xsl:text> </xsl:text> 440 </xsl:for-each> 441 <br /> 442 <br /> 443 </xsl:if> 444 445 <!-- If there is only one or two search terms then show the expanded information --> 446 <xsl:choose> 447 <xsl:when test="count(/page/pageResponse/termList/term) < 3"> 448 449 <xsl:for-each select="/page/pageResponse/termList/term"> 450 <xsl:variable name="levelText"> 451 <!-- this gets document, section, documents, sections, depending on level and number --> 452 <xsl:call-template name="documentLevelText"> 453 <xsl:with-param name="level" select="$level"/> 454 <xsl:with-param name="numDocsMatched" select="@numDocsMatch"/> 455 </xsl:call-template> 456 </xsl:variable> 457 <span class="termInfo"> 458 459 <!-- For solr and mg collections, display: 460 term x occured y times 461 term a occured b times 462 For collections using all other indexers, display: 463 term x occurred y times in n sections/documents 464 term a occurred b times in m sections/docs 465 --> 466 <!-- not all these args are used in every case --> 467 <xsl:variable name="args" select="concat(@name,';', @freq, ';', @numDocsMatch,';', $levelText)"/> 468 <xsl:choose> 469 <xsl:when test="@freq = 0"> 470 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.termoccurs.0',$args)"/> 471 </xsl:when> 472 <xsl:when test="@freq = 1"> 473 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.termoccurs.1',$args)"/> 474 </xsl:when> 475 <xsl:otherwise> <!-- more than one occurrance --> 476 <xsl:choose> 477 <xsl:when test="/page/pageResponse/collection[@type = 'solr'] or /page/pageResponse/collection[@type = 'mg']"> 478 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.termoccurs.x',$args)"/> 479 </xsl:when> 480 <xsl:when test="@numDocsMatch = 1"> 481 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.termoccurs.x.1',$args)"/> 482 </xsl:when> 483 <xsl:otherwise> 484 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.termoccurs.x.x',$args)"/> 485 </xsl:otherwise> 486 </xsl:choose> 487 </xsl:otherwise> 488 </xsl:choose> 489 490 </span> 491 <br/> 492 </xsl:for-each> 493 </xsl:when> 494 <xsl:otherwise> 495 <xsl:for-each select="/page/pageResponse/termList/term"> 496 <span style="font-style:italic;"> 497 <xsl:value-of select="@name"/> 498 </span> (<xsl:value-of select="@freq"/>) 499 </xsl:for-each> 500 </xsl:otherwise> 501 </xsl:choose> 502 </p> 503 </xsl:template> 504 505 <xsl:template name="prevNextButtons"> 506 <!-- Current page --> 507 <xsl:variable name="currentPage"> 508 <xsl:choose> 509 <xsl:when test="/page/pageRequest/paramList/param[@name='s1.startPage']/@value"> 510 <xsl:value-of select="/page/pageRequest/paramList/param[@name='s1.startPage']/@value" /> 511 </xsl:when> 512 <xsl:when test="/page/pageRequest/paramList/param[@name='startPage']/@value"> 513 <xsl:value-of select="/page/pageRequest/paramList/param[@name='startPage']/@value" /> 514 </xsl:when> 515 <xsl:otherwise>1</xsl:otherwise> 516 </xsl:choose> 517 </xsl:variable> 518 <xsl:variable name="usesS1"> 519 <xsl:choose> 520 <xsl:when test="/page/pageResponse/service/paramList/param[@name='startPage']">true</xsl:when> 521 <xsl:otherwise>false</xsl:otherwise> 522 </xsl:choose> 523 </xsl:variable> 524 <!-- Find the total number of documents returned/matched --> 525 <xsl:variable name="docMax"> 526 <xsl:choose> 527 <xsl:when test="/page/pageResponse/metadataList/metadata[@name = 'numDocsReturned']"> 528 <xsl:value-of select="/page/pageResponse/metadataList/metadata[@name = 'numDocsReturned']"/> 529 </xsl:when> 530 <xsl:when test="/page/pageResponse/metadataList/metadata[@name = 'numDocsMatched']"> 531 <xsl:value-of select="/page/pageResponse/metadataList/metadata[@name = 'numDocsMatched']"/> 532 </xsl:when> 533 <xsl:otherwise> 534 <xsl:value-of select="count(/page/pageResponse/documentNodeList/documentNode)"/> 535 </xsl:otherwise> 536 </xsl:choose> 537 </xsl:variable> 538 <!-- Find the number of documents displayed per page --> 539 <xsl:variable name="docsPerPage"> 540 <xsl:choose> 541 <xsl:when test="/page/pageRequest/paramList/param[@name='s1.hitsPerPage']"> 542 <xsl:value-of select="/page/pageRequest/paramList/param[@name='s1.hitsPerPage']/@value" /> 543 </xsl:when> 544 <xsl:when test="/page/pageResponse/service/paramList/param[@name='hitsPerPage']"> 545 <xsl:value-of select="/page/pageResponse/service/paramList/param[@name='hitsPerPage']/@default" /> 546 </xsl:when> 547 <xsl:otherwise><xsl:value-of select="count(/page/pageResponse/documentNodeList/documentNode)"/></xsl:otherwise> 548 </xsl:choose> 549 </xsl:variable> 550 <!-- Find the level --> 551 <xsl:variable name="level"> 552 <xsl:call-template name="documentLevel"/> 553 </xsl:variable> 554 <!-- we only need this if number of docs > docsperpage --> 555 <xsl:if test="$docMax > $docsPerPage"> 556 <table id="searchResultNavTable"> 557 <tr> 558 <xsl:variable name="startPageName"> 559 <xsl:if test="$usesS1 = 'true'">s1.</xsl:if>startPage</xsl:variable> 560 561 <!-- Previous button --> 562 <td id="prevArrowTD"> 563 <xsl:if test="$currentPage != 1"> 564 <a href="{$library_name}?a=q&sa={/page/pageRequest/@subaction}&c={$collName}&s={/page/pageResponse/service/@name}&rt=rd&{$startPageName}={$currentPage - 1}&qs={/page/pageRequest/paramList/param[@name='qs']/@value}"> 565 <xsl:call-template name="previousArrowImage"/> 566 </a> 567 </xsl:if> 568 </td> 569 <td id="prevTD"> 570 <xsl:if test="$currentPage != 1"> 571 <a href="{$library_name}?a=q&sa={/page/pageRequest/@subaction}&c={$collName}&s={/page/pageResponse/service/@name}&rt=rd&{$startPageName}={$currentPage - 1}&qs={/page/pageRequest/paramList/param[@name='qs']/@value}"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.results.previous')"/></a> 572 </xsl:if> 573 </td> 574 575 <xsl:if test="$display_status_bar != 'false'"> 576 <!-- Search result status bar (in english it reads "Displaying X to Y of Z documents") --> 577 <xsl:if test="$docsPerPage > 0"> 578 <xsl:variable name="startdoc" select="($currentPage - 1) * $docsPerPage + 1"/> 579 <xsl:variable name="enddoc"> 580 <xsl:choose> 581 <xsl:when test="($currentPage * $docsPerPage + 1) > $docMax"> 582 <xsl:value-of select="$docMax"/> 583 </xsl:when> 584 <xsl:otherwise> 585 <xsl:value-of select="$currentPage * $docsPerPage"/> 586 </xsl:otherwise> 587 </xsl:choose> 588 </xsl:variable> 589 <xsl:variable name="levelString"> 590 <xsl:choose> 591 <xsl:when test="$level = 'Doc'"> 592 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.document_plural')"/> 593 </xsl:when> 594 <xsl:otherwise> 595 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.section_plural')"/> 596 </xsl:otherwise> 597 </xsl:choose> 598 </xsl:variable> 599 <td id="searchResultsStatusBar"> 600 <xsl:variable name="gitArgs" select="concat($startdoc,';', $enddoc, ';', $docMax, ';', $levelString)"/> 601 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.displayingnumdocs', $gitArgs)"/> 602 </td> 603 </xsl:if> 604 </xsl:if> 605 <!-- Next button --> 606 <td id="nextTD"> 607 <xsl:if test="$docsPerPage > 0 and ($currentPage * $docsPerPage) < $docMax"> 608 <a href="{$library_name}?a=q&sa={/page/pageRequest/paramList/param[@name = 'sa']/@value}&c={$collName}&s={/page/pageResponse/service/@name}&rt=rd&{$startPageName}={$currentPage + 1}&qs={/page/pageRequest/paramList/param[@name='qs']/@value}"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.results.next')"/></a> 609 </xsl:if> 610 </td> 611 <td id="nextArrowTD"> 612 <xsl:if test="$docsPerPage > 0 and ($currentPage * $docsPerPage) < $docMax"> 613 <a href="{$library_name}?a=q&sa={/page/pageRequest/paramList/param[@name = 'sa']/@value}&c={$collName}&s={/page/pageResponse/service/@name}&rt=rd&{$startPageName}={$currentPage + 1}&qs={/page/pageRequest/paramList/param[@name='qs']/@value}"> 614 <xsl:call-template name="nextArrowImage"/> 615 </a> 616 </xsl:if> 617 </td> 618 </tr> 619 </table> 620 </xsl:if> 621 </xsl:template> 622 623 <xsl:template name="previousArrowImage"> 624 <img src="interfaces/{$interface_name}/images/previous.png"/> 625 </xsl:template> 626 <xsl:template name="nextArrowImage"> 627 <img src="interfaces/{$interface_name}/images/next.png"/> 628 </xsl:template> 629 <!-- puts all the params into a=p&p=h type form - need to change this if use 630 multi params --> 631 <xsl:template match="paramList" mode="cgi"> 632 <xsl:param name="ns">s1.</xsl:param> 633 <xsl:for-each select="param"> 634 <xsl:variable name='pname' select="@name"/> 635 <xsl:text>&</xsl:text> 636 <xsl:value-of select="$ns"/> 637 <xsl:value-of select="@name"/>=<xsl:apply-templates select="." mode="calculate-default"> 638 <xsl:with-param name='ns' select='$ns'/> 639 </xsl:apply-templates> 640 </xsl:for-each> 641 </xsl:template> 642 643 <xsl:template name="resultsPagePre"> 644 <!-- OVERWRITE TO INSERT CONTENT BEFORE THE RESULTS PAGE --> 645 <xsl:if test="/page/pageResponse/format[@type='display' or @type='browse' or @type='search']/gsf:option[@name='mapEnabled']/@value = 'true'"> 646 <xsl:call-template name="mapFeaturesJSONNodes"/> 647 <xsl:call-template name="mapFeaturesMap"/> 648 </xsl:if> 649 </xsl:template> 650 651 <xsl:template name="resultsPagePost"> 652 <!-- OVERWRITE TO INSERT CONTENT AFTER THE RESULTS PAGE --> 653 </xsl:template> 654 655 <xsl:template name="documentNodePre"> 656 <!-- OVERWRITE TO INSERT CONTENT BEFORE EVERY DOCUMENT NODE --> 657 </xsl:template> 658 659 <xsl:template name="documentNodePost"> 660 <!-- OVERWRITE TO INSERT CONTENT AFTER EVERY DOCUMENT NODE --> 661 <xsl:if test="/page/pageResponse/format[@type='display' or @type='browse' or @type='search']/gsf:option[@name='mapEnabled']/@value = 'true'"> 662 <xsl:call-template name="mapFeaturesIcon"/> 663 </xsl:if> 664 665 <xsl:if test="/page/pageResponse/format/gsf:option[@name='panoramaViewerEnabled']/@value = 'true'"> 666 <xsl:if test=" metadataList/metadata[@name = 'Coordinate'] or ( metadataList/metadata[@name = 'Latitude'] and metadataList/metadata[@name = 'Longitude'])"> 667 <xsl:call-template name="panoramaViewerFeaturesIcon"/> 668 </xsl:if> 669 </xsl:if> 670 671 </xsl:template> 598 </xsl:variable> 599 <td id="searchResultsStatusBar"> 600 <xsl:variable name="gitArgs" select="concat($startdoc,';', $enddoc, ';', $docMax, ';', $levelString)"/> 601 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.displayingnumdocs', $gitArgs)"/> 602 </td> 603 </xsl:if> 604 </xsl:if> 605 <!-- Next button --> 606 <td id="nextTD"> 607 <xsl:if test="$docsPerPage > 0 and ($currentPage * $docsPerPage) < $docMax"> 608 <a href="{$library_name}?a=q&sa={/page/pageRequest/paramList/param[@name = 'sa']/@value}&c={$collName}&s={/page/pageResponse/service/@name}&rt=rd&{$startPageName}={$currentPage + 1}&qs={/page/pageRequest/paramList/param[@name='qs']/@value}"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.results.next')"/></a> 609 </xsl:if> 610 </td> 611 <td id="nextArrowTD"> 612 <xsl:if test="$docsPerPage > 0 and ($currentPage * $docsPerPage) < $docMax"> 613 <a href="{$library_name}?a=q&sa={/page/pageRequest/paramList/param[@name = 'sa']/@value}&c={$collName}&s={/page/pageResponse/service/@name}&rt=rd&{$startPageName}={$currentPage + 1}&qs={/page/pageRequest/paramList/param[@name='qs']/@value}"> 614 <xsl:call-template name="nextArrowImage"/> 615 </a> 616 </xsl:if> 617 </td> 618 </tr> 619 </table> 620 </xsl:if> 621 </xsl:template> 622 623 <xsl:template name="previousArrowImage"> 624 <img src="interfaces/{$interface_name}/images/previous.png"/> 625 </xsl:template> 626 <xsl:template name="nextArrowImage"> 627 <img src="interfaces/{$interface_name}/images/next.png"/> 628 </xsl:template> 629 <!-- puts all the params into a=p&p=h type form - need to change this if use 630 multi params --> 631 <xsl:template match="paramList" mode="cgi"> 632 <xsl:param name="ns">s1.</xsl:param> 633 <xsl:for-each select="param"> 634 <xsl:variable name='pname' select="@name"/> 635 <xsl:text>&</xsl:text> 636 <xsl:value-of select="$ns"/> 637 <xsl:value-of select="@name"/>=<xsl:apply-templates select="." mode="calculate-default"> 638 <xsl:with-param name='ns' select='$ns'/> 639 </xsl:apply-templates> 640 </xsl:for-each> 641 </xsl:template> 642 643 <xsl:template name="resultsPagePre"> 644 <!-- OVERWRITE TO INSERT CONTENT BEFORE THE RESULTS PAGE --> 645 <xsl:if test="/page/pageResponse/format[@type='display' or @type='browse' or @type='search']/gsf:option[@name='mapEnabled']/@value = 'true'"> 646 <xsl:call-template name="mapFeaturesJSONNodes"/> 647 <xsl:call-template name="mapFeaturesMap"/> 648 </xsl:if> 649 </xsl:template> 650 651 <xsl:template name="resultsPagePost"> 652 <!-- OVERWRITE TO INSERT CONTENT AFTER THE RESULTS PAGE --> 653 </xsl:template> 654 655 <xsl:template name="documentNodePre"> 656 <!-- OVERWRITE TO INSERT CONTENT BEFORE EVERY DOCUMENT NODE --> 657 </xsl:template> 658 659 <xsl:template name="documentNodePost"> 660 <!-- OVERWRITE TO INSERT CONTENT AFTER EVERY DOCUMENT NODE --> 661 <xsl:if test="/page/pageResponse/format[@type='display' or @type='browse' or @type='search']/gsf:option[@name='mapEnabled']/@value = 'true'"> 662 <xsl:call-template name="mapFeaturesIcon"/> 663 </xsl:if> 664 665 <xsl:if test="/page/pageResponse/format/gsf:option[@name='panoramaViewerEnabled']/@value = 'true'"> 666 <xsl:if test=" metadataList/metadata[@name = 'Coordinate'] or ( metadataList/metadata[@name = 'Latitude'] and metadataList/metadata[@name = 'Longitude'])"> 667 <xsl:call-template name="panoramaViewerFeaturesIcon"/> 668 </xsl:if> 669 </xsl:if> 670 671 </xsl:template> 672 672 673 673
Note:
See TracChangeset
for help on using the changeset viewer.