source: main/trunk/greenstone3/web/interfaces/default/transform/pages/query.xsl@ 29553

Last change on this file since 29553 was 29553, checked in by kjdon, 9 years ago

tidying up paging of query results. max docs and hits per page are now displayed here if they are part of the service. tidy up of how the 'displaying 1 to 20 of 58 sections' string is formed.

File size: 23.4 KB
RevLine 
[19856]1<?xml version="1.0" encoding="ISO-8859-1"?>
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"
[25882]7 xmlns:gsvar="http://www.greenstone.org/skinning-var"
[24998]8 xmlns:gsf="http://www.greenstone.org/greenstone3/schema/ConfigFormat"
[19856]9 extension-element-prefixes="java util"
[24998]10 exclude-result-prefixes="java util gsf">
[26455]11
[19988]12 <!-- use the 'main' layout -->
[24998]13 <xsl:import href="layouts/main.xsl"/>
[19856]14
[26455]15 <xsl:include href="query-common.xsl"/>
[19988]16 <!-- set page title -->
[26455]17 <xsl:template name="pageTitle">
18 <gslib:serviceName/>
19 </xsl:template>
[19856]20
[19988]21 <!-- set page breadcrumbs -->
[26455]22 <xsl:template name="breadcrumbs">
23 <gslib:siteLink/>
24 <gslib:rightArrow/>
25 <xsl:if test="/page/pageResponse/collection">
26 <gslib:collectionNameLinked/>
27 <gslib:rightArrow/>
28 </xsl:if>
29 </xsl:template>
[19856]30
[19988]31 <!-- the page content -->
32 <xsl:template match="/page">
[26084]33 <xsl:if test="not(/page/pageRequest/paramList/param[@name = 'qs']) or /page/pageRequest/paramList/param[@name = 'qs']/@value = ''">
34 <xsl:call-template name="queryPage"/>
35 </xsl:if>
[26477]36 <xsl:if test="contains(/page/pageRequest/paramList/param[@name='rt']/@value, 'r')">
[25736]37 <xsl:call-template name="resultsPage"/>
[26477]38 </xsl:if>
[24998]39 </xsl:template>
[26455]40
[24998]41 <xsl:template name="resultsPage">
42 <xsl:call-template name="resultsPagePre"/>
[26455]43 <xsl:call-template name="displayMatchDocs"/>
[24998]44 <xsl:call-template name="displayTermInfo"/>
[29278]45 <xsl:call-template name="displayBaskets"/>
[24998]46 <xsl:call-template name="displayResults"/>
47 <xsl:call-template name="resultsPagePost"/>
48 </xsl:template>
[25882]49
[26455]50 <!-- optional cgi-params for links to document pages -->
51 <xsl:variable name="opt-doc-link-args">p.s=<gsvar:this-service/>
52 </xsl:variable>
53
[29278]54 <xsl:template name="displayBaskets">
[29323]55 <xsl:if test="$berryBasketOn 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)))">
[29278]56 <div id="rightSidebar">
57 <xsl:if test="$berryBasketOn">
58 <!-- show the berry basket if it's turned on -->
59 <gslib:berryBasket/>
60 <xsl:text> </xsl:text>
61 </xsl:if>
[29342]62 <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))">
[29323]63 <gslib:documentBasket/>
64 <xsl:text> </xsl:text>
65 </xsl:if>
[29278]66 </div>
67 </xsl:if>
68 </xsl:template>
69
[24998]70 <xsl:template name="displayResults">
[25832]71 <xsl:if test="/page/pageResponse/facetList/facet">
[26455]72 <script type="text/javascript" src="interfaces/{$interface_name}/js/facet-scripts.js">
[26639]73 <xsl:text> </xsl:text>
[26455]74 </script>
[25832]75 <div id="facetSelector">
76 <xsl:for-each select="/page/pageResponse/facetList/facet">
77 <xsl:if test="count(count) > 0">
78 <ul class="facetTable ui-widget-content" indexName="{@name}">
[26455]79 <xsl:variable name="serviceName">
80 <xsl:value-of select="/page/pageRequest/paramList/param[@name = 's']/@value"/>
81 </xsl:variable>
82 <xsl:variable name="indexShortName">
83 <xsl:value-of select="@name"/>
84 </xsl:variable>
[25832]85 <xsl:variable name="countSize">
86 <xsl:choose>
87 <xsl:when test="/page/pageResponse/format[@type='search']/gsf:option[@name='facetTableRows']">
88 <xsl:value-of select="/page/pageResponse/format[@type='search']/gsf:option[@name='facetTableRows']/@value"/>
89 </xsl:when>
90 <xsl:otherwise>8</xsl:otherwise>
91 </xsl:choose>
92 </xsl:variable>
[26455]93
[25832]94 <li class="ui-widget-header" style="text-transform:capitalize; text-align:center;">
95 <xsl:choose>
96 <xsl:when test="/page/pageResponse/collection/serviceList/service[@name = $serviceName]/paramList/param[@name = 'index']">
97 <xsl:value-of select="/page/pageResponse/collection/serviceList/service[@name = $serviceName]/paramList/param[@name = 'index']/option[@name = $indexShortName]/displayItem"/>
98 </xsl:when>
99 <xsl:when test="/page/pageResponse/collection/serviceList/service[@name = $serviceName]/paramList/param[@name = 'complexField']/param[@name = 'fqf']">
100 <xsl:value-of select="/page/pageResponse/collection/serviceList/service[@name = $serviceName]/paramList/param[@name = 'complexField']/param[@name = 'fqf']/option[@name = $indexShortName]/displayItem"/>
101 </xsl:when>
102 </xsl:choose>
103 </li>
104 <xsl:for-each select="count">
105 <li>
106 <xsl:attribute name="style">
[26455]107 <xsl:if test="position() > $countSize">display:none;<xsl:value-of select="$indexShortName"/>
108 </xsl:if>
[25832]109 </xsl:attribute>
[26455]110 <input type="checkbox" onclick="performRefinedSearch();"/>
111 <span>
112 <xsl:value-of select="@name"/>
113 </span>(<xsl:value-of select="."/>)
[25832]114 </li>
115 </xsl:for-each>
116 <xsl:if test="count(count) > $countSize">
[26455]117 <li class="expandCollapseFacetList{$indexShortName}">
118 <a class="expandCollapseFacetListLink{$indexShortName}" href="javascript:expandFacetList('{$indexShortName}', {$countSize});">See more...</a>
119 </li>
[25832]120 </xsl:if>
121 </ul>
122 </xsl:if>
123 </xsl:for-each>
124 </div>
125 </xsl:if>
126 <div id="resultsArea">
127 <xsl:attribute name="class">
128 <xsl:if test="/page/pageResponse/facetList/facet">facetedResults</xsl:if>
129 </xsl:attribute>
130 <table id="resultsTable">
131 <xsl:for-each select="pageResponse/documentNodeList/documentNode">
[26159]132 <tr id="div{@nodeID}" class="document">
[25832]133 <xsl:apply-templates select="."/>
[29278]134 <!-- The berry (optional) -->
135 <td>
136 <xsl:call-template name="documentBerryForClassifierOrSearchPage"/>
137 </td>
138
[25832]139 <xsl:call-template name="documentNodePost"/>
140 </tr>
141 </xsl:for-each>
142 <br/>
143 </table>
[26455]144
[25832]145 <!-- Previous/Next buttons-->
146 <xsl:call-template name="prevNextButtons"/>
147 </div>
148 <xsl:if test="/page/pageResponse/facetList/facet">
[26455]149 <div style="clear:both;">
[26639]150 <xsl:text> </xsl:text>
[26455]151 </div>
[25832]152 </xsl:if>
[24998]153 </xsl:template>
[26119]154
[24998]155 <xsl:template name="queryPage">
156 <xsl:for-each select="pageResponse/service">
[25434]157 <form name="QueryForm" method="get" action="{$library_name}/collection/{$collName}/search/{@name}">
[24998]158 <div>
159 <input type="hidden" name="a" value="q"/>
[26455]160 <input type="hidden" name="sa">
161 <xsl:attribute name="value">
162 <xsl:value-of select="/page/pageRequest/@subaction"/>
163 </xsl:attribute>
164 </input>
[24998]165 <input type="hidden" name="rt" value="rd"/>
166
167 <xsl:variable name="ns">s1.</xsl:variable>
168 <xsl:for-each select="paramList/param">
[24025]169 <xsl:choose>
[24998]170 <xsl:when test="@type='multi'">
[26455]171 <xsl:apply-templates select=".">
172 <xsl:with-param name="ns" select="$ns"/>
173 </xsl:apply-templates>
[24998]174 </xsl:when>
[24025]175 <xsl:otherwise>
[26455]176 <xsl:call-template name="param-display">
177 <xsl:with-param name="ns" select="$ns"/>
178 </xsl:call-template>
[24025]179 </xsl:otherwise>
180 </xsl:choose>
181 </xsl:for-each>
[24009]182 <br/>
[26455]183 <input type="submit">
184 <xsl:attribute name="value">
185 <xsl:value-of select="displayItem[@name='submit']"/>
186 </xsl:attribute>
187 </input>
[24998]188 </div>
189 </form>
190 </xsl:for-each>
[19856]191 </xsl:template>
[26400]192
[26372]193 <xsl:template name="displayMatchDocs">
[26455]194 <div id="matchdocs">
195 <xsl:variable name="numDocsMatched" select="/page/pageResponse/metadataList/metadata[@name='numDocsMatched']"/>
[29553]196 <xsl:variable name="numDocsReturned" select="/page/pageResponse/metadataList/metadata[@name='numDocsReturned']"/>
[26455]197 <xsl:variable name="docLevel">
198 <xsl:call-template name="documentLevel"/>
199 </xsl:variable>
200 <xsl:variable name="docLevelText">
201 <xsl:call-template name="documentLevelText">
202 <xsl:with-param name="numDocsMatched" select="$numDocsMatched"/>
203 <xsl:with-param name="level" select="$docLevelText"/>
204 </xsl:call-template>
205 </xsl:variable>
206 <xsl:choose>
207 <xsl:when test="$numDocsMatched='0' or $numDocsReturned='0'">
208 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.nodocsmatch', $docLevelText)"/>
209 </xsl:when>
210 <xsl:when test="$numDocsMatched='1' or $numDocsReturned='1'">
211 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.onedocsmatch', $docLevelText)"/>
212 </xsl:when>
213 <xsl:when test="$numDocsMatched">
214 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.manydocsmatch', concat($numDocsMatched, ';', $docLevelText))"/>
215 <xsl:if test="$numDocsReturned and not($numDocsMatched=$numDocsReturned)"> (<xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.docsreturned', concat($numDocsReturned, ';', $docLevelText))"/>)</xsl:if>
216 </xsl:when>
217 <xsl:when test="$numDocsReturned">
218 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.atleastdocsmatch', concat($numDocsReturned, ';', $docLevelText))"/>
219 </xsl:when>
220 </xsl:choose>
221 </div>
[26372]222
[26455]223 </xsl:template>
[26400]224
[26455]225 <xsl:template name="documentLevel">
226 <xsl:choose>
227 <xsl:when test="/page/pageRequest/paramList/param[@name='level']">
228 <xsl:value-of select="/page/pageRequest/paramList/param[@name='level']/@value" />
229 </xsl:when>
230 <xsl:when test="/page/pageRequest/paramList/param[@name='s1.level']">
231 <xsl:value-of select="/page/pageRequest/paramList/param[@name='s1.level']/@value" />
232 </xsl:when>
233 <xsl:otherwise>Doc</xsl:otherwise>
234 </xsl:choose>
235 </xsl:template>
[26400]236
[26455]237 <xsl:template name="documentLevelText">
238 <xsl:param name="numDocsMatched">0</xsl:param>
239 <xsl:param name="level">Doc</xsl:param>
240 <xsl:choose>
241 <xsl:when test="$numDocsMatched = 1">
242 <xsl:choose>
243 <xsl:when test="$level = 'Doc'">
244 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.document')"/>
245 </xsl:when>
246 <xsl:otherwise>
247 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.section')"/>
248 </xsl:otherwise>
249 </xsl:choose>
250 </xsl:when>
251 <!-- 0 or more than one use plural. is that the case for all langs??-->
252 <xsl:otherwise>
253 <xsl:choose>
254 <xsl:when test="$level = 'Doc'">
255 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.document_plural')"/>
256 </xsl:when>
257 <xsl:otherwise>
258 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.section_plural')"/>
259 </xsl:otherwise>
260 </xsl:choose>
261 </xsl:otherwise>
262 </xsl:choose>
263 </xsl:template>
264
[26119]265 <xsl:template name="displayTermInfo">
[26455]266
[26119]267 <!-- Find the number of documents displayed per page -->
[26455]268 <xsl:variable name="level">
269 <xsl:call-template name="documentLevel"/>
270 </xsl:variable>
271
[26119]272 <!-- The list of search terms with their frequency and document count -->
[26455]273 <p class="termList">
274 <xsl:if test="count(/page/pageResponse/termList/stopword) &gt; 0">
275 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.common')"/>
[26639]276 <xsl:text> </xsl:text>
[26455]277 <xsl:for-each select="/page/pageResponse/termList/stopword">
278 <span style="font-style:italic;">
279 <xsl:value-of select="@name"/>
280 </span>
[26639]281 <xsl:text> </xsl:text>
[26455]282 </xsl:for-each>
283 <br />
284 <br />
285 </xsl:if>
286
287 <!-- If there is only one or two search terms then show the expanded information -->
288 <xsl:choose>
289 <xsl:when test="count(/page/pageResponse/termList/term) &lt; 3">
290 <xsl:for-each select="/page/pageResponse/termList/term">
291 <xsl:variable name="occursTextKey">
292 <xsl:choose>
293 <xsl:when test="@freq = 1">query.termoccurs.1.1</xsl:when>
294 <xsl:when test="@numDocsMatch = 1">query.termoccurs.x.1</xsl:when>
295 <xsl:otherwise>query.termoccurs.x.x</xsl:otherwise>
296 </xsl:choose>
297 </xsl:variable>
298 <xsl:variable name="levelText">
299 <xsl:call-template name="documentLevelText">
300 <xsl:with-param name="level" select="$level"/>
301 <xsl:with-param name="numDocsMatched" select="@numDocsMatch"/>
302 </xsl:call-template>
303 </xsl:variable>
304 <span class="termInfo">
[29275]305 <!--<xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, $occursTextKey, concat(@name,';', @freq,';', @numDocsMatch,';', $levelText))"/>-->
306 <!-- For solr collections, display:
307 term x occured y times
308 term a occured b times
309 For collections using all other indexers, display:
310 term x occurred y times in n sections/documents
311 term a occurred b times in m sections/docs
312 -->
313 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, $occursTextKey, concat(@name,';', @freq))"/>
314 <xsl:choose>
315 <xsl:when test="/page/pageResponse/collection[@type != 'solr']">
316 <xsl:text> </xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.termSectionFreq', concat(@numDocsMatch,';', $levelText))"/>
317 </xsl:when>
318 </xsl:choose>
[26455]319 </span>
320 <br/>
321 </xsl:for-each>
322 </xsl:when>
323 <xsl:otherwise>
324 <xsl:for-each select="/page/pageResponse/termList/term">
325 <span style="font-style:italic;">
326 <xsl:value-of select="@name"/>
327 </span> (<xsl:value-of select="@freq"/>)
328 </xsl:for-each>
329 </xsl:otherwise>
330 </xsl:choose>
331 </p>
[26119]332 </xsl:template>
[26455]333
[24009]334 <xsl:template name="prevNextButtons">
335 <!-- Current page -->
336 <xsl:variable name="currentPage">
337 <xsl:choose>
[25736]338 <xsl:when test="/page/pageRequest/paramList/param[@name='s1.startPage']/@value">
339 <xsl:value-of select="/page/pageRequest/paramList/param[@name='s1.startPage']/@value" />
340 </xsl:when>
[24009]341 <xsl:when test="/page/pageRequest/paramList/param[@name='startPage']/@value">
342 <xsl:value-of select="/page/pageRequest/paramList/param[@name='startPage']/@value" />
343 </xsl:when>
344 <xsl:otherwise>1</xsl:otherwise>
345 </xsl:choose>
346 </xsl:variable>
[25485]347 <xsl:variable name="usesS1">
348 <xsl:choose>
[25736]349 <xsl:when test="/page/pageResponse/service/paramList/param[@name='startPage']">true</xsl:when>
[25485]350 <xsl:otherwise>false</xsl:otherwise>
351 </xsl:choose>
352 </xsl:variable>
[29553]353 <!-- Find the total number of documents returned/matched -->
[24009]354 <xsl:variable name="docMax">
355 <xsl:choose>
356 <xsl:when test="/page/pageResponse/metadataList/metadata[@name = 'numDocsReturned']">
357 <xsl:value-of select="/page/pageResponse/metadataList/metadata[@name = 'numDocsReturned']"/>
358 </xsl:when>
359 <xsl:when test="/page/pageResponse/metadataList/metadata[@name = 'numDocsMatched']">
360 <xsl:value-of select="/page/pageResponse/metadataList/metadata[@name = 'numDocsMatched']"/>
361 </xsl:when>
[29553]362 <xsl:otherwise>
363 <xsl:value-of select="count(/page/pageResponse/documentNodeList/documentNode)"/>
[26455]364 </xsl:otherwise>
[24009]365 </xsl:choose>
366 </xsl:variable>
367 <!-- Find the number of documents displayed per page -->
368 <xsl:variable name="docsPerPage">
369 <xsl:choose>
370 <xsl:when test="/page/pageRequest/paramList/param[@name='s1.hitsPerPage']">
371 <xsl:value-of select="/page/pageRequest/paramList/param[@name='s1.hitsPerPage']/@value" />
372 </xsl:when>
[29553]373 <xsl:when test="$usesS1 = 'true' and /page/pageResponse/service/paramList/param[@name='hitsPerPage']">
374 <xsl:value-of select="/page/pageResponse/service/paramList/param[@name='hitsPerPage']/@default" />
375 </xsl:when>
376 <xsl:otherwise><xsl:value-of select="count(/page/pageResponse/documentNodeList/documentNode)"/></xsl:otherwise>
[24009]377 </xsl:choose>
378 </xsl:variable>
[29553]379 <!-- Find the level -->
[25485]380 <xsl:variable name="level">
[29553]381 <xsl:call-template name="documentLevel"/>
[25485]382 </xsl:variable>
[26455]383
384 <table id="searchResultNavTable">
385 <tr>
386 <xsl:variable name="startPageName">
387 <xsl:if test="$usesS1 = 'true'">s1.</xsl:if>startPage</xsl:variable>
388
389 <!-- Previous button -->
390 <td id="prevArrowTD">
391 <xsl:if test="$currentPage != 1">
392 <a href="{$library_name}?a=q&amp;sa={/page/pageRequest/@subaction}&amp;c={$collName}&amp;s={/page/pageResponse/service/@name}&amp;rt=rd&amp;{$startPageName}={$currentPage - 1}&amp;qs={/page/pageRequest/paramList/param[@name='qs']/@value}">
393 <img src="interfaces/default/images/previous.png"/>
394 </a>
395 </xsl:if>
396 </td>
397 <td id="prevTD">
398 <xsl:if test="$currentPage != 1">
399 <a href="{$library_name}?a=q&amp;sa={/page/pageRequest/@subaction}&amp;c={$collName}&amp;s={/page/pageResponse/service/@name}&amp;rt=rd&amp;{$startPageName}={$currentPage - 1}&amp;qs={/page/pageRequest/paramList/param[@name='qs']/@value}">Previous</a>
400 </xsl:if>
401 </td>
402
403 <!-- Search result status bar (in english it reads "Displaying X to Y of Z documents") -->
[29553]404 <xsl:if test="$docsPerPage &gt; 0">
[26455]405 <xsl:variable name="startdoc" select="($currentPage - 1) * $docsPerPage + 1"/>
406 <xsl:variable name="enddoc">
407 <xsl:choose>
408 <xsl:when test="($currentPage * $docsPerPage + 1) &gt; $docMax">
409 <xsl:value-of select="$docMax"/>
410 </xsl:when>
411 <xsl:otherwise>
412 <xsl:value-of select="$currentPage * $docsPerPage"/>
413 </xsl:otherwise>
414 </xsl:choose>
415 </xsl:variable>
[26456]416 <xsl:variable name="levelString">
[26455]417 <xsl:choose>
418 <xsl:when test="$docMax = 1">
[26639]419 <xsl:text> </xsl:text>
[26455]420 <xsl:choose>
421 <xsl:when test="$level = 'Doc'">
422 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.document')"/>
423 </xsl:when>
424 <xsl:otherwise>
425 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.section')"/>
426 </xsl:otherwise>
427 </xsl:choose>
428 </xsl:when>
429 <xsl:otherwise>
[26639]430 <xsl:text> </xsl:text>
[26455]431 <xsl:choose>
432 <xsl:when test="$level = 'Doc'">
433 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.document_plural')"/>
434 </xsl:when>
435 <xsl:otherwise>
436 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.section_plural')"/>
437 </xsl:otherwise>
438 </xsl:choose>
439 </xsl:otherwise>
440 </xsl:choose>
441 </xsl:variable>
442 <td id="searchResultsStatusBar">
[26456]443 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.displayingnumdocs', concat($startdoc,';', $enddoc, ';', $docMax, ';', $levelString))"/>
[26455]444 </td>
[24025]445 </xsl:if>
[26455]446
447 <!-- Next button -->
448 <td id="nextTD">
[29553]449 <xsl:if test="$docsPerPage &gt; 0 and ($currentPage * $docsPerPage + 1) &lt; $docMax">
[26455]450 <a href="{$library_name}?a=q&amp;sa={/page/pageRequest/paramList/param[@name = 'sa']/@value}&amp;c={$collName}&amp;s={/page/pageResponse/service/@name}&amp;rt=rd&amp;{$startPageName}={$currentPage + 1}&amp;qs={/page/pageRequest/paramList/param[@name='qs']/@value}">Next</a>
451 </xsl:if>
452 </td>
453 <td id="nextArrowTD">
[29553]454 <xsl:if test="$docsPerPage &gt; 0 and ($currentPage * $docsPerPage + 1) &lt; $docMax">
[26455]455 <a href="{$library_name}?a=q&amp;sa={/page/pageRequest/paramList/param[@name = 'sa']/@value}&amp;c={$collName}&amp;s={/page/pageResponse/service/@name}&amp;rt=rd&amp;{$startPageName}={$currentPage + 1}&amp;qs={/page/pageRequest/paramList/param[@name='qs']/@value}">
456 <img src="interfaces/default/images/next.png"/>
457 </a>
458 </xsl:if>
459 </td>
460 </tr>
461 </table>
[24009]462 </xsl:template>
[19856]463
[19988]464 <!-- puts all the params into a=p&p=h type form - need to change this if use
465 multi params -->
466 <xsl:template match="paramList" mode="cgi">
467 <xsl:param name="ns">s1.</xsl:param>
468 <xsl:for-each select="param">
469 <xsl:variable name='pname' select="@name"/>
[26455]470 <xsl:text>&amp;</xsl:text>
471 <xsl:value-of select="$ns"/>
472 <xsl:value-of select="@name"/>=<xsl:apply-templates select="." mode="calculate-default">
473 <xsl:with-param name='ns' select='$ns'/>
474 </xsl:apply-templates>
[19988]475 </xsl:for-each>
476 </xsl:template>
[19856]477
[24998]478 <xsl:template name="resultsPagePre">
479 <!-- OVERWRITE TO INSERT CONTENT BEFORE THE RESULTS PAGE -->
480 <xsl:if test="/page/pageResponse/format[@type='display' or @type='browse' or @type='search']/gsf:option[@name='mapEnabled']/@value = 'true'">
481 <xsl:call-template name="mapFeaturesJSONNodes"/>
482 </xsl:if>
483 </xsl:template>
[26455]484
[24998]485 <xsl:template name="resultsPagePost">
486 <!-- OVERWRITE TO INSERT CONTENT AFTER THE RESULTS PAGE -->
487 </xsl:template>
[26455]488
[24998]489 <xsl:template name="documentNodePre">
490 <!-- OVERWRITE TO INSERT CONTENT BEFORE EVERY DOCUMENT NODE -->
491 </xsl:template>
[26455]492
[24998]493 <xsl:template name="documentNodePost">
494 <!-- OVERWRITE TO INSERT CONTENT AFTER EVERY DOCUMENT NODE -->
495 <xsl:if test="/page/pageResponse/format[@type='display' or @type='browse' or @type='search']/gsf:option[@name='mapEnabled']/@value = 'true'">
496 <xsl:call-template name="mapFeaturesIcon"/>
497 </xsl:if>
[26871]498
499 <xsl:if test="/page/pageResponse/format/gsf:option[@name='panoramaViewerEnabled']/@value = 'true'">
500 <xsl:if test=" metadataList/metadata[@name = 'Latitude'] and metadataList/metadata[@name = 'Longitude']">
501 <xsl:call-template name="panoramaViewerFeaturesIcon"/>
502 </xsl:if>
503 </xsl:if>
504
[24998]505 </xsl:template>
[26455]506
[24998]507 <xsl:template name="mapFeaturesJSONNodes">
508 <div id="jsonNodes" style="display:none;">
509 <xsl:text>[</xsl:text>
510 <xsl:for-each select="//documentNode">
511 <xsl:if test="metadataList/metadata[@name = 'Latitude'] and metadataList/metadata[@name = 'Longitude']">
512 <xsl:text>{</xsl:text>
[26455]513 <xsl:text disable-output-escaping="yes">"nodeID":"</xsl:text>
514 <xsl:value-of select="@nodeID"/>
515 <xsl:text disable-output-escaping="yes">",</xsl:text>
516 <xsl:text disable-output-escaping="yes">"title":"</xsl:text>
517 <xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name = 'Title']"/>
518 <xsl:text disable-output-escaping="yes">",</xsl:text>
519 <xsl:text disable-output-escaping="yes">"lat":</xsl:text>
520 <xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name = 'Latitude']"/>
521 <xsl:text>,</xsl:text>
522 <xsl:text disable-output-escaping="yes">"lng":</xsl:text>
523 <xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name = 'Longitude']"/>
[24998]524 <xsl:text>}</xsl:text>
525 <xsl:if test="not(position() = count(//documentNode))">
526 <xsl:text>,</xsl:text>
527 </xsl:if>
528 </xsl:if>
529 </xsl:for-each>
530 <xsl:text>]</xsl:text>
531 </div>
[26455]532
533 <div id="map_canvas" style="margin:0px auto; width:450px; height:500px; float:right;">
[26639]534 <xsl:text> </xsl:text>
[26455]535 </div>
536
[26091]537 <!-- Although these aren't visible, they are necessary because it forces Greenstone to include this metadata in the page xml -->
538 <gsf:metadata name="Latitude" hidden="true"/>
539 <gsf:metadata name="Longitude" hidden="true"/>
[26883]540 <gsf:metadata name="Image" hidden="true"/>
541 <gsf:metadata name="SourceFile" hidden="true"/>
542 <gsf:metadata name="assocfilepath" hidden="true"/>
543 <gsf:metadata name="PhotoType" hidden="true"/>
544 <gsf:metadata name="cv.rotation" hidden="true"/>
545 <gsf:metadata name="Angle" hidden="true"/>
546
547
[24998]548 </xsl:template>
[26455]549
[24998]550 <xsl:template name="mapFeaturesIcon">
551 <td style="padding-left:5px; padding-right:5px;" valign="top">
[26455]552 <a href="javascript:focusDocument('{@nodeID}');">
553 <img src="interfaces/default/images/map_marker.png"/>
554 </a>
[24998]555 </td>
556 </xsl:template>
[26871]557
558 <xsl:template name="panoramaViewerFeaturesIcon">
559 <td style="padding-left:5px; padding-right:5px;" valign="top">
560 <a href="javascript:switchPanorama('{@nodeID}');">
561 <img src="interfaces/default/images/map_marker.png"/>
562 </a>
563 </td>
564 </xsl:template>
[19856]565</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.