Changeset 26372

Show
Ignore:
Timestamp:
23.10.2012 14:43:43 (7 years ago)
Author:
kjdon
Message:

display num matching docs. Also display term info even if no matching docs - if doing multiword query its helpful to see what terms were found

Files:
1 modified

Legend:

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

    r26368 r26372  
    3030    <xsl:template name="resultsPage"> 
    3131        <xsl:call-template name="resultsPagePre"/> 
     32    <xsl:call-template name="displayMatchDocs"/> 
    3233        <xsl:call-template name="displayTermInfo"/> 
    3334        <xsl:call-template name="displayResults"/> 
     
    155156        </xsl:for-each> 
    156157    </xsl:template> 
    157      
     158    <xsl:template name="displayMatchDocs"> 
     159    <div id="matchdocs"> 
     160      <xsl:variable name="numDocsMatched" select="/page/pageResponse/metadataList/metadata[@name='numDocsMatched']"/> 
     161      <xsl:variable name="numDocsReturned" select="/page/pageResponse/metadataList/metadata[@name='numDocsReturned']"/> 
     162      <xsl:choose> 
     163        <xsl:when test="$numDocsMatched='0' or $numDocsReturned='0'"> 
     164          <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.nodocsmatch')"/> 
     165        </xsl:when> 
     166        <xsl:when test="$numDocsMatched='1' or $numDocsReturned='1'"> 
     167          <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.onedocsmatch')"/> 
     168        </xsl:when> 
     169        <xsl:when test="$numDocsMatched"> 
     170          <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.manydocsmatch', $numDocsMatched)"/> 
     171          <xsl:if test="$numDocsReturned and not($numDocsMatched=$numDocsReturned)"> (<xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.docsreturned', $numDocsReturned)"/>)</xsl:if> 
     172        </xsl:when> 
     173         <xsl:when test="$numDocsReturned"> 
     174          <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.atleastdocsmatch', $numDocsReturned)"/> 
     175        </xsl:when> 
     176      </xsl:choose> 
     177    </div> 
     178 
     179  </xsl:template> 
    158180    <xsl:template name="displayTermInfo"> 
    159181        <!-- Find the total number of documents returned --> 
     
    184206         
    185207        <!-- The list of search terms with their frequency and document count --> 
    186         <xsl:choose> 
    187             <xsl:when test="$docMax &gt; 0"> 
    188208                <p class="termList"> 
    189209                    <xsl:if test="count(/page/pageResponse/termList/stopword) &gt; 0"> 
    190210                        <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.common')"/><xsl:text> </xsl:text> 
    191                     </xsl:if> 
    192                      
    193                     <xsl:if test="/page/pageResponse/termList/stopword"> 
    194211                        <xsl:for-each select="/page/pageResponse/termList/stopword"> 
    195212                            <span style="font-style:italic;"><xsl:value-of select="@name"/></span><xsl:text> </xsl:text> 
     
    210227                                            <xsl:text> </xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.time')"/> 
    211228                                        </xsl:when> 
    212                                         <xsl:when test="@freq &lt; 0"></xsl:when> 
    213                                         <xsl:when test="@freq &gt; 1"> 
     229                                        <xsl:otherwise> 
    214230                                            <xsl:value-of select="@freq"/> 
    215231                                            <xsl:text> </xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.time_plural')"/> 
    216                                         </xsl:when> 
     232                                        </xsl:otherwise> 
    217233                                    </xsl:choose> 
    218                                     <xsl:if test="not(not(@numDocsMatch) or @numDocsMatch = '')"> 
     234                                    <!--<xsl:if test="not(not(@numDocsMatch) or @numDocsMatch = '')">--> 
     235                                                                         <xsl:if test="@numDocsMatch &gt; 0"> 
    219236                                        <xsl:text> </xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.in')"/><xsl:text> </xsl:text> 
    220237                                        <xsl:value-of select="@numDocsMatch"/> 
     
    253270                    </xsl:for-each> 
    254271                </p> 
    255             </xsl:when> 
    256             <xsl:otherwise><!-- 0 results. Still need to check for search term being stopwords --> 
    257               <xsl:choose> 
    258                 <xsl:when test="count(/page/pageResponse/termList/stopword) &gt; 0"> 
    259                   <p class="termList"> 
    260                 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.common')"/><xsl:text> </xsl:text> 
    261                  
    262                 <xsl:if test="/page/pageResponse/termList/stopword"> 
    263                   <xsl:for-each select="/page/pageResponse/termList/stopword"> 
    264                     <span style="font-style:italic;"><xsl:value-of select="@name"/></span><xsl:text> </xsl:text> 
    265                   </xsl:for-each> 
    266                   <br /><br /> 
    267                 </xsl:if> 
    268                   </p>             
    269                 </xsl:when> 
    270                 <xsl:otherwise><!-- 0 results and not owing to stopwords.--> 
    271                   <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.nodocsmatch')"/> 
    272                 </xsl:otherwise> 
    273               </xsl:choose> 
    274             </xsl:otherwise> 
    275         </xsl:choose> 
    276272    </xsl:template> 
    277273