Changeset 24998
- Timestamp:
- 2012-01-26T14:14:17+13:00 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone3/web/interfaces/oran/transform/pages/query.xsl
r24727 r24998 5 5 xmlns:util="xalan://org.greenstone.gsdl3.util.XSLTUtil" 6 6 xmlns:gslib="http://www.greenstone.org/skinning" 7 xmlns:gsf="http://www.greenstone.org/greenstone3/schema/ConfigFormat" 7 8 extension-element-prefixes="java util" 8 exclude-result-prefixes="java util ">9 exclude-result-prefixes="java util gsf"> 9 10 10 11 <!-- use the 'main' layout --> 11 <xsl:i ncludehref="layouts/main.xsl"/>12 <xsl:import href="layouts/main.xsl"/> 12 13 13 14 <!-- set page title --> … … 21 22 <xsl:choose> 22 23 <xsl:when test="not(pageResponse/documentNodeList)"> 23 <xsl:for-each select="pageResponse/service"> 24 <form name="QueryForm" method="get" action="{$library_name}"> 25 <div> 26 <input type="hidden" name="a" value="q"/> 27 <input type="hidden" name="sa"><xsl:attribute name="value"><xsl:value-of select="/page/pageRequest/@subaction"/></xsl:attribute></input> 28 <input type="hidden" name="rt" value="rd"/> 29 <input type="hidden" name="s" value="{@name}"/> 30 <input type="hidden" name="c" value="{$collName}"/> 31 <xsl:if test="not(paramList/param[@name='startPage'])"> 32 <input type="hidden" name="startPage" value="1"/> 33 </xsl:if> 34 <xsl:choose> 35 <xsl:when test="/page/pageRequest/paramList/param[@name = 's1.maxDocs']"> 36 <input type="hidden" name="s1.maxDocs"> 37 <xsl:attribute name="value"> 38 <xsl:value-of select="/page/pageRequest/paramList/param[@name = 's1.maxDocs']/@value"/> 39 </xsl:attribute> 40 </input> 41 </xsl:when> 42 <xsl:otherwise> 43 <input type="hidden" name="s1.maxDocs" value="100"/> 44 </xsl:otherwise> 45 </xsl:choose> 46 <xsl:choose> 47 <xsl:when test="/page/pageRequest/paramList/param[@name = 's1.hitsPerPage']"> 48 <input type="hidden" name="s1.hitsPerPage"> 49 <xsl:attribute name="value"> 50 <xsl:value-of select="/page/pageRequest/paramList/param[@name = 's1.hitsPerPage']/@value"/> 51 </xsl:attribute> 52 </input> 53 </xsl:when> 54 <xsl:otherwise> 55 <input type="hidden" name="s1.hitsPerPage" value="20"/> 56 </xsl:otherwise> 57 </xsl:choose> 58 59 <xsl:variable name="ns">s1.</xsl:variable> 60 <xsl:for-each select="paramList/param"> 61 <xsl:choose> 62 <xsl:when test="@name='case' or @name='stem' or @name='accent'"> 63 </xsl:when> 64 <xsl:when test="@type='multi'"> 65 <xsl:apply-templates select="."><xsl:with-param name="ns" select="$ns"/></xsl:apply-templates> 66 </xsl:when> 67 <xsl:when test="@name = 'maxDocs' or @name = 'hitsPerPage'"></xsl:when> 68 <xsl:otherwise> 69 <xsl:variable name="pvalue"><xsl:apply-templates select="." mode="calculate-default"><xsl:with-param name="ns" select="$ns"/></xsl:apply-templates></xsl:variable> 70 <div class="paramLabel"><xsl:value-of select="displayItem[@name='name']"/></div> 71 <div class="paramValue"> 72 <xsl:apply-templates select="."> 73 <xsl:with-param name="default" select="$pvalue"/> 74 <xsl:with-param name="ns" select="$ns"/> 75 </xsl:apply-templates> 76 </div> 77 <br class="clear"/> 78 </xsl:otherwise> 79 </xsl:choose> 80 </xsl:for-each> 81 82 <br/> 83 84 <input type="submit"><xsl:attribute name="value"><xsl:value-of select="displayItem[@name='submit']"/></xsl:attribute></input> 24 <xsl:call-template name="queryPage"/> 25 </xsl:when> 26 <xsl:otherwise> 27 <xsl:call-template name="resultsPage"/> 28 </xsl:otherwise> 29 </xsl:choose> 30 </xsl:template> 31 32 <xsl:template name="resultsPage"> 33 <xsl:call-template name="resultsPagePre"/> 34 <xsl:call-template name="displayTermInfo"/> 35 <xsl:call-template name="displayResults"/> 36 <xsl:call-template name="resultsPagePost"/> 37 </xsl:template> 38 39 <xsl:template name="displayResults"> 40 <table id="results"> 41 <xsl:for-each select="pageResponse/documentNodeList/documentNode"> 42 <tr class="document"> 43 <xsl:apply-templates select="."/> 44 <xsl:call-template name="documentNodePost"/> 45 </tr> 46 </xsl:for-each> 47 <br/> 48 </table> 49 50 <!-- Previous/Next buttons--> 51 <xsl:call-template name="prevNextButtons"/> 52 </xsl:template> 53 54 <xsl:template name="displayTermInfo"> 55 <!-- The list of search terms with their frequency and document count --> 56 <p class="termList"> 57 <xsl:if test="count(/page/pageResponse/termList/stopword) > 0"> 58 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.common')"/><xsl:text> </xsl:text> 59 </xsl:if> 85 60 86 </div> 87 </form> 88 </xsl:for-each> 89 </xsl:when> 90 91 <xsl:otherwise> 92 <!-- The list of search terms with their frequency and document count --> 93 <p class="termList"> 94 <xsl:if test="count(/page/pageResponse/termList/stopword) > 0"> 95 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.common')"/><xsl:text> </xsl:text> 96 </xsl:if> 97 98 <xsl:for-each select="/page/pageResponse/termList/stopword"> 99 <span style="font-style:italic;"><xsl:value-of select="@name"/></span><xsl:text> </xsl:text> 100 </xsl:for-each> 101 <br /><br /> 102 103 <xsl:for-each select="/page/pageResponse/termList/term"> 61 <xsl:for-each select="/page/pageResponse/termList/stopword"> 62 <span style="font-style:italic;"><xsl:value-of select="@name"/></span><xsl:text> </xsl:text> 63 </xsl:for-each> 64 <br /><br /> 65 66 <xsl:for-each select="/page/pageResponse/termList/term"> 67 <xsl:choose> 68 <!-- If there is only one or two search terms then show the expanded information --> 69 <xsl:when test="count(/page/pageResponse/termList/term) < 3"> 70 <span style="font-style:italic;"><xsl:value-of select="@name"/></span> 71 <xsl:text> </xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.occurs')"/><xsl:text> </xsl:text> 72 <xsl:value-of select="@freq"/> 104 73 <xsl:choose> 105 <!-- If there is only one or two search terms then show the expanded information --> 106 <xsl:when test="count(/page/pageResponse/termList/term) < 3"> 107 <span style="font-style:italic;"><xsl:value-of select="@name"/></span> 108 <xsl:text> </xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.occurs')"/><xsl:text> </xsl:text> 109 <xsl:value-of select="@freq"/> 110 <xsl:choose> 111 <xsl:when test="@freq = 1"> 112 <xsl:text> </xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.time')"/> 113 </xsl:when> 114 <xsl:otherwise> 115 <xsl:text> </xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.time_plural')"/> 116 </xsl:otherwise> 117 </xsl:choose> 118 <xsl:text> </xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.in')"/><xsl:text> </xsl:text> 119 <xsl:value-of select="@numDocsMatch"/> 120 <xsl:choose> 121 <xsl:when test="@numDocsMatch = 1"> 122 <xsl:text> </xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.document')"/> 123 </xsl:when> 124 <xsl:otherwise> 125 <xsl:text> </xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.document_plural')"/> 126 </xsl:otherwise> 127 </xsl:choose> 128 <br /> 74 <xsl:when test="@freq = 1"> 75 <xsl:text> </xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.time')"/> 129 76 </xsl:when> 130 77 <xsl:otherwise> 131 <span style="font-style:italic;"><xsl:value-of select="@name"/></span> (<xsl:value-of select="@freq"/>) 78 <xsl:text> </xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.time_plural')"/> 79 </xsl:otherwise> 80 </xsl:choose> 81 <xsl:text> </xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.in')"/><xsl:text> </xsl:text> 82 <xsl:value-of select="@numDocsMatch"/> 83 <xsl:choose> 84 <xsl:when test="@numDocsMatch = 1"> 85 <xsl:text> </xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.document')"/> 86 </xsl:when> 87 <xsl:otherwise> 88 <xsl:text> </xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.document_plural')"/> 89 </xsl:otherwise> 90 </xsl:choose> 91 <br /> 92 </xsl:when> 93 <xsl:otherwise> 94 <span style="font-style:italic;"><xsl:value-of select="@name"/></span> (<xsl:value-of select="@freq"/>) 95 </xsl:otherwise> 96 </xsl:choose> 97 </xsl:for-each> 98 </p> 99 </xsl:template> 100 101 <xsl:template name="queryPage"> 102 <xsl:for-each select="pageResponse/service"> 103 <form name="QueryForm" method="get" action="{$library_name}"> 104 <div> 105 <input type="hidden" name="a" value="q"/> 106 <input type="hidden" name="sa"><xsl:attribute name="value"><xsl:value-of select="/page/pageRequest/@subaction"/></xsl:attribute></input> 107 <input type="hidden" name="rt" value="rd"/> 108 <input type="hidden" name="s" value="{@name}"/> 109 <input type="hidden" name="c" value="{$collName}"/> 110 <xsl:if test="not(paramList/param[@name='startPage'])"> 111 <input type="hidden" name="startPage" value="1"/> 112 </xsl:if> 113 <xsl:choose> 114 <xsl:when test="/page/pageRequest/paramList/param[@name = 's1.maxDocs']"> 115 <input type="hidden" name="s1.maxDocs"> 116 <xsl:attribute name="value"> 117 <xsl:value-of select="/page/pageRequest/paramList/param[@name = 's1.maxDocs']/@value"/> 118 </xsl:attribute> 119 </input> 120 </xsl:when> 121 <xsl:otherwise> 122 <input type="hidden" name="s1.maxDocs" value="100"/> 123 </xsl:otherwise> 124 </xsl:choose> 125 <xsl:choose> 126 <xsl:when test="/page/pageRequest/paramList/param[@name = 's1.hitsPerPage']"> 127 <input type="hidden" name="s1.hitsPerPage"> 128 <xsl:attribute name="value"> 129 <xsl:value-of select="/page/pageRequest/paramList/param[@name = 's1.hitsPerPage']/@value"/> 130 </xsl:attribute> 131 </input> 132 </xsl:when> 133 <xsl:otherwise> 134 <input type="hidden" name="s1.hitsPerPage" value="20"/> 135 </xsl:otherwise> 136 </xsl:choose> 137 138 <xsl:variable name="ns">s1.</xsl:variable> 139 <xsl:for-each select="paramList/param"> 140 <xsl:choose> 141 <xsl:when test="@name='case' or @name='stem' or @name='accent'"> 142 </xsl:when> 143 <xsl:when test="@type='multi'"> 144 <xsl:apply-templates select="."><xsl:with-param name="ns" select="$ns"/></xsl:apply-templates> 145 </xsl:when> 146 <xsl:when test="@name = 'maxDocs' or @name = 'hitsPerPage'"></xsl:when> 147 <xsl:otherwise> 148 <xsl:variable name="pvalue"><xsl:apply-templates select="." mode="calculate-default"><xsl:with-param name="ns" select="$ns"/></xsl:apply-templates></xsl:variable> 149 <div class="paramLabel"><xsl:value-of select="displayItem[@name='name']"/></div> 150 <div class="paramValue"> 151 <xsl:apply-templates select="."> 152 <xsl:with-param name="default" select="$pvalue"/> 153 <xsl:with-param name="ns" select="$ns"/> 154 </xsl:apply-templates> 155 </div> 156 <br class="clear"/> 132 157 </xsl:otherwise> 133 158 </xsl:choose> 134 159 </xsl:for-each> 135 </p> 136 137 <!-- <ul id="results"> --> 138 <table id="results"> 139 <xsl:for-each select="pageResponse/documentNodeList/documentNode"> 140 141 <tr class="document"> 142 143 <xsl:apply-templates select="."/> 144 </tr> 145 <!-- 146 147 <li class="document"> 148 <a> 149 <xsl:choose> 150 <xsl:when test="/page/pageResponse/collection/@name"> 151 <xsl:attribute name="href"><xsl:value-of select="$library_name"/>?a=d&c=<xsl:value-of select="/page/pageResponse/collection/@name"/>&d=<xsl:value-of select="@nodeID"/>&dt=<xsl:value-of select="@docType"/>&p.a=q&p.s=<xsl:value-of select="/page/pageResponse/service/@name"/>&hl=on&ed=1#<xsl:value-of select="@nodeID"/></xsl:attribute> 152 </xsl:when> 153 <xsl:when test="@collection"> 154 <xsl:attribute name="href"><xsl:value-of select="$library_name"/>?a=d&c=<xsl:value-of select="@collection"/>&d=<xsl:value-of select="@nodeID"/>&dt=<xsl:value-of select="@docType"/>&p.a=q&p.s=<xsl:value-of select="/page/pageResponse/service/@name"/>&hl=on&ed=1#<xsl:value-of select="@nodeID"/></xsl:attribute> 155 </xsl:when> 156 </xsl:choose> 157 158 <xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name='Title']"/> 159 </a> 160 ***** --> 161 <!-- If this is results from a cross collection search then add a link to the collection that it is from --><!-- 162 <xsl:if test="@collection"> 163 (<a style="background-image:none; padding:3px;"> 164 <xsl:attribute name="href"> 165 <xsl:value-of select="$library_name"/>?a=p&sa=about&c=<xsl:value-of select="@collection"/> 166 </xsl:attribute> 167 <xsl:value-of select="@collection"/> 168 </a>) 169 </xsl:if> 170 <xsl:call-template name="documentBerryForClassifierOrSearchPage"/> 171 </li> 172 --> 173 174 </xsl:for-each> 160 175 161 <br/> 176 177 <!-- Previous/Next buttons--> 178 <xsl:call-template name="prevNextButtons"/> 179 </table> 180 <!-- </ul> --> 181 182 </xsl:otherwise> 183 184 </xsl:choose> 185 162 163 <input type="submit"><xsl:attribute name="value"><xsl:value-of select="displayItem[@name='submit']"/></xsl:attribute></input> 164 165 </div> 166 </form> 167 </xsl:for-each> 186 168 </xsl:template> 187 169 … … 439 421 </xsl:if> 440 422 </xsl:template> 441 423 424 <xsl:template name="resultsPagePre"> 425 <!-- OVERWRITE TO INSERT CONTENT BEFORE THE RESULTS PAGE --> 426 <xsl:if test="/page/pageResponse/format[@type='display' or @type='browse' or @type='search']/gsf:option[@name='mapEnabled']/@value = 'true'"> 427 <xsl:call-template name="mapFeaturesJSONNodes"/> 428 </xsl:if> 429 </xsl:template> 430 431 <xsl:template name="resultsPagePost"> 432 <!-- OVERWRITE TO INSERT CONTENT AFTER THE RESULTS PAGE --> 433 </xsl:template> 434 435 <xsl:template name="documentNodePre"> 436 <!-- OVERWRITE TO INSERT CONTENT BEFORE EVERY DOCUMENT NODE --> 437 </xsl:template> 438 439 <xsl:template name="documentNodePost"> 440 <!-- OVERWRITE TO INSERT CONTENT AFTER EVERY DOCUMENT NODE --> 441 <xsl:if test="/page/pageResponse/format[@type='display' or @type='browse' or @type='search']/gsf:option[@name='mapEnabled']/@value = 'true'"> 442 <xsl:call-template name="mapFeaturesIcon"/> 443 </xsl:if> 444 </xsl:template> 445 446 <xsl:template name="mapFeaturesJSONNodes"> 447 <div id="jsonNodes" style="display:none;"> 448 <xsl:text>[</xsl:text> 449 <xsl:for-each select="//documentNode"> 450 <xsl:if test="metadataList/metadata[@name = 'Latitude'] and metadataList/metadata[@name = 'Longitude']"> 451 <xsl:text>{</xsl:text> 452 <xsl:text disable-output-escaping="yes">"nodeID":"</xsl:text><xsl:value-of select="@nodeID"/><xsl:text disable-output-escaping="yes">",</xsl:text> 453 <xsl:text disable-output-escaping="yes">"title":"</xsl:text><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name = 'Title']"/><xsl:text disable-output-escaping="yes">",</xsl:text> 454 <xsl:text disable-output-escaping="yes">"lat":</xsl:text><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name = 'Latitude']"/><xsl:text>,</xsl:text> 455 <xsl:text disable-output-escaping="yes">"lng":</xsl:text><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name = 'Longitude']"/> 456 <xsl:text>}</xsl:text> 457 <xsl:if test="not(position() = count(//documentNode))"> 458 <xsl:text>,</xsl:text> 459 </xsl:if> 460 </xsl:if> 461 </xsl:for-each> 462 <xsl:text>]</xsl:text> 463 </div> 464 465 <div id="map_canvas" style="margin:0px auto; width:450px; height:500px; float:right;"><xsl:text> </xsl:text></div> 466 467 <gsf:metadata name="Latitude"/> 468 <gsf:metadata name="Longitude"/> 469 </xsl:template> 470 471 <xsl:template name="mapFeaturesIcon"> 472 <td style="padding-left:5px; padding-right:5px;" valign="top"> 473 <a href="javascript:focusDocument('{@nodeID}');"><img src="interfaces/{$interface_name}/images/bluemarker.png"/></a> 474 </td> 475 </xsl:template> 442 476 </xsl:stylesheet>
Note:
See TracChangeset
for help on using the changeset viewer.