Changeset 24998 for main/trunk


Ignore:
Timestamp:
2012-01-26T14:14:17+13:00 (12 years ago)
Author:
sjm84
Message:

Reformatted the query file as well as adding mapping features

File:
1 edited

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>
Note: See TracChangeset for help on using the changeset viewer.