Changeset 24998

Show
Ignore:
Timestamp:
26.01.2012 14:14:17 (8 years ago)
Author:
sjm84
Message:

Reformatted the query file as well as adding mapping features

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone3/web/interfaces/oran/transform/pages/query.xsl

    r24727 r24998  
    55    xmlns:util="xalan://org.greenstone.gsdl3.util.XSLTUtil" 
    66    xmlns:gslib="http://www.greenstone.org/skinning" 
     7    xmlns:gsf="http://www.greenstone.org/greenstone3/schema/ConfigFormat" 
    78    extension-element-prefixes="java util" 
    8     exclude-result-prefixes="java util"> 
     9    exclude-result-prefixes="java util gsf"> 
    910     
    1011    <!-- use the 'main' layout --> 
    11     <xsl:include href="layouts/main.xsl"/> 
     12    <xsl:import href="layouts/main.xsl"/> 
    1213 
    1314    <!-- set page title --> 
     
    2122        <xsl:choose> 
    2223            <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) &gt; 0"> 
     58                <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.common')"/><xsl:text> </xsl:text> 
     59            </xsl:if> 
    8560             
    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) &gt; 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) &lt; 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"/> 
    10473                        <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) &lt; 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')"/> 
    12976                            </xsl:when> 
    13077                            <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"/> 
    132157                            </xsl:otherwise> 
    133158                        </xsl:choose> 
    134159                    </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&amp;c=<xsl:value-of select="/page/pageResponse/collection/@name"/>&amp;d=<xsl:value-of select="@nodeID"/>&amp;dt=<xsl:value-of select="@docType"/>&amp;p.a=q&amp;p.s=<xsl:value-of select="/page/pageResponse/service/@name"/>&amp;hl=on&amp;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&amp;c=<xsl:value-of select="@collection"/>&amp;d=<xsl:value-of select="@nodeID"/>&amp;dt=<xsl:value-of select="@docType"/>&amp;p.a=q&amp;p.s=<xsl:value-of select="/page/pageResponse/service/@name"/>&amp;hl=on&amp;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&amp;sa=about&amp;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 
    175161                    <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> 
    186168    </xsl:template> 
    187169     
     
    439421        </xsl:if> 
    440422    </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> 
    442476</xsl:stylesheet>