Changeset 26400 for main

Show
Ignore:
Timestamp:
25.10.2012 15:53:59 (7 years ago)
Author:
kjdon
Message:

tidying up term info and num docs matching display texts

Files:
1 modified

Legend:

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

    r26372 r26400  
    156156        </xsl:for-each> 
    157157    </xsl:template> 
     158 
    158159    <xsl:template name="displayMatchDocs"> 
    159160    <div id="matchdocs"> 
    160161      <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:variable name="numDocsReturned"><xsl:call-template name="numDocsReturned"/></xsl:variable> <!-- select="/page/pageResponse/metadataList/metadata[@name='numDocsReturned']"/>--> 
     163      <xsl:variable name="docLevel"><xsl:call-template name="documentLevel"/></xsl:variable> 
     164      <xsl:variable name="docLevelText"><xsl:call-template name="documentLevelText"><xsl:with-param name="numDocsMatched" select="$numDocsMatched"/><xsl:with-param name="level" select="$docLevelText"/></xsl:call-template></xsl:variable> 
    162165      <xsl:choose> 
    163166        <xsl:when test="$numDocsMatched='0' or $numDocsReturned='0'"> 
    164           <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.nodocsmatch')"/> 
     167          <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.nodocsmatch', $docLevelText)"/> 
    165168        </xsl:when> 
    166169        <xsl:when test="$numDocsMatched='1' or $numDocsReturned='1'"> 
    167           <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.onedocsmatch')"/> 
     170          <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.onedocsmatch', $docLevelText)"/> 
    168171        </xsl:when> 
    169172        <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> 
     173          <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.manydocsmatch', concat($numDocsMatched, ';', $docLevelText))"/> 
     174          <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> 
    172175        </xsl:when> 
    173176         <xsl:when test="$numDocsReturned"> 
    174           <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.atleastdocsmatch', $numDocsReturned)"/> 
     177          <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.atleastdocsmatch', concat($numDocsReturned, ';', $docLevelText))"/> 
    175178        </xsl:when> 
    176179      </xsl:choose> 
    177180    </div> 
    178  
     181    
    179182  </xsl:template> 
     183 
     184  <xsl:template name="numDocsMatched"> 
     185    <xsl:choose> 
     186      <xsl:when test="/page/pageResponse/metadataList/metadata[@name = 'numDocsMatched']"> 
     187    <xsl:value-of select="/page/pageResponse/metadataList/metadata[@name = 'numDocsMatched']"/> 
     188      </xsl:when> 
     189      <xsl:when test="/page/pageResponse/metadataList/metadata[@name = 'numDocsReturned']"> 
     190    <xsl:value-of select="/page/pageResponse/metadataList/metadata[@name = 'numDocsReturned']"/> 
     191      </xsl:when> 
     192      <xsl:otherwise><xsl:value-of select="count(/page/pageResponse/documentNodeList/documentNode)"/></xsl:otherwise> 
     193    </xsl:choose>    
     194  </xsl:template> 
     195 
     196  <xsl:template name="numDocsReturned"> 
     197    <xsl:choose> 
     198      <xsl:when test="/page/pageResponse/metadataList/metadata[@name = 'numDocsReturned']"> 
     199    <xsl:value-of select="/page/pageResponse/metadataList/metadata[@name = 'numDocsReturned']"/> 
     200      </xsl:when> 
     201      <xsl:otherwise><xsl:value-of select="count(/page/pageResponse/documentNodeList/documentNode)"/></xsl:otherwise> 
     202    </xsl:choose>    
     203  </xsl:template> 
     204 
     205  <xsl:template name="documentLevel"> 
     206      <xsl:choose> 
     207    <xsl:when test="/page/pageRequest/paramList/param[@name='level']"> 
     208      <xsl:value-of select="/page/pageRequest/paramList/param[@name='level']/@value" /> 
     209    </xsl:when> 
     210    <xsl:when test="/page/pageRequest/paramList/param[@name='s1.level']"> 
     211      <xsl:value-of select="/page/pageRequest/paramList/param[@name='s1.level']/@value" /> 
     212    </xsl:when> 
     213    <xsl:otherwise>Doc</xsl:otherwise> 
     214      </xsl:choose> 
     215  </xsl:template> 
     216 
     217  <xsl:template name="documentLevelText"> 
     218    <xsl:param name="numDocsMatched">0</xsl:param> 
     219    <xsl:param name="level">Doc</xsl:param> 
     220     <xsl:choose>    
     221      <xsl:when test="$numDocsMatched = 1"> 
     222    <xsl:choose> 
     223      <xsl:when test="$level = 'Doc'"> 
     224        <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.document')"/> 
     225      </xsl:when> 
     226      <xsl:otherwise> 
     227        <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.section')"/> 
     228      </xsl:otherwise> 
     229    </xsl:choose> 
     230      </xsl:when> 
     231      <!-- 0 or more than one use plural. is that the case for all langs??--> 
     232      <xsl:otherwise> 
     233    <xsl:choose> 
     234      <xsl:when test="$level = 'Doc'"> 
     235        <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.document_plural')"/> 
     236      </xsl:when> 
     237      <xsl:otherwise> 
     238        <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.section_plural')"/> 
     239      </xsl:otherwise> 
     240    </xsl:choose> 
     241      </xsl:otherwise> 
     242    </xsl:choose> 
     243  </xsl:template> 
     244 
    180245    <xsl:template name="displayTermInfo"> 
    181         <!-- Find the total number of documents returned --> 
    182         <xsl:variable name="docMax"> 
    183             <xsl:choose> 
    184                 <xsl:when test="/page/pageResponse/metadataList/metadata[@name = 'numDocsReturned']"> 
    185                     <xsl:value-of select="/page/pageResponse/metadataList/metadata[@name = 'numDocsReturned']"/> 
    186                 </xsl:when> 
    187                 <xsl:when test="/page/pageResponse/metadataList/metadata[@name = 'numDocsMatched']"> 
    188                     <xsl:value-of select="/page/pageResponse/metadataList/metadata[@name = 'numDocsMatched']"/> 
    189                 </xsl:when> 
    190                 <xsl:otherwise><xsl:value-of select="count(/page/pageResponse/documentNodeList/documentNode)"/></xsl:otherwise> 
    191             </xsl:choose> 
    192         </xsl:variable> 
    193246     
    194247        <!-- Find the number of documents displayed per page --> 
    195         <xsl:variable name="level"> 
    196             <xsl:choose> 
    197                 <xsl:when test="/page/pageRequest/paramList/param[@name='level']"> 
    198                     <xsl:value-of select="/page/pageRequest/paramList/param[@name='level']/@value" /> 
    199                 </xsl:when> 
    200                 <xsl:when test="/page/pageRequest/paramList/param[@name='s1.level']"> 
    201                     <xsl:value-of select="/page/pageRequest/paramList/param[@name='s1.level']/@value" /> 
    202                 </xsl:when> 
    203                 <xsl:otherwise>Doc</xsl:otherwise> 
    204             </xsl:choose> 
    205         </xsl:variable> 
     248        <xsl:variable name="level"><xsl:call-template name="documentLevel"/></xsl:variable> 
    206249         
    207250        <!-- The list of search terms with their frequency and document count --> 
     
    215258                    </xsl:if> 
    216259                 
    217                     <xsl:for-each select="/page/pageResponse/termList/term"> 
    218                         <xsl:choose> 
    219                             <!-- If there is only one or two search terms then show the expanded information --> 
    220                             <xsl:when test="count(/page/pageResponse/termList/term) &lt; 3"> 
    221                                 <span class="termInfo"> 
    222                                     <span style="font-style:italic;"><xsl:value-of select="@name"/></span> 
    223                                     <xsl:text> </xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.occurs')"/><xsl:text> </xsl:text> 
    224                                     <xsl:choose> 
    225                                         <xsl:when test="@freq = 1"> 
    226                                             <xsl:value-of select="@freq"/> 
    227                                             <xsl:text> </xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.time')"/> 
    228                                         </xsl:when> 
    229                                         <xsl:otherwise> 
    230                                             <xsl:value-of select="@freq"/> 
    231                                             <xsl:text> </xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.time_plural')"/> 
    232                                         </xsl:otherwise> 
    233                                     </xsl:choose> 
    234                                     <!--<xsl:if test="not(not(@numDocsMatch) or @numDocsMatch = '')">--> 
    235                                                                          <xsl:if test="@numDocsMatch &gt; 0"> 
    236                                         <xsl:text> </xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.in')"/><xsl:text> </xsl:text> 
    237                                         <xsl:value-of select="@numDocsMatch"/> 
    238                                         <xsl:choose> 
    239                                             <xsl:when test="@numDocsMatch = 1"> 
    240                                                 <xsl:text> </xsl:text> 
    241                                                 <xsl:choose> 
    242                                                     <xsl:when test="$level = 'Doc'"> 
    243                                                         <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.document')"/> 
    244                                                     </xsl:when> 
    245                                                     <xsl:otherwise> 
    246                                                         <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.section')"/> 
    247                                                     </xsl:otherwise> 
    248                                                 </xsl:choose> 
    249                                             </xsl:when> 
    250                                             <xsl:when test="@numDocsMatch &gt; 1"> 
    251                                                 <xsl:text> </xsl:text> 
    252                                                 <xsl:choose> 
    253                                                     <xsl:when test="$level = 'Doc'"> 
    254                                                         <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.document_plural')"/> 
    255                                                     </xsl:when> 
    256                                                     <xsl:otherwise> 
    257                                                         <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.section_plural')"/> 
    258                                                     </xsl:otherwise> 
    259                                                 </xsl:choose> 
    260                                             </xsl:when> 
    261                                         </xsl:choose> 
    262                                     </xsl:if> 
    263                                     <br /> 
    264                                 </span> 
    265                             </xsl:when> 
    266                             <xsl:otherwise> 
    267                                 <span style="font-style:italic;"><xsl:value-of select="@name"/></span> (<xsl:value-of select="@freq"/>) 
    268                             </xsl:otherwise> 
    269                         </xsl:choose> 
    270                     </xsl:for-each> 
    271                 </p> 
     260<!-- If there is only one or two search terms then show the expanded information --><xsl:choose> 
     261      <xsl:when test="count(/page/pageResponse/termList/term) &lt; 3"> 
     262    <xsl:for-each select="/page/pageResponse/termList/term"> 
     263    <xsl:variable name="occursTextKey"> 
     264      <xsl:choose> 
     265      <xsl:when test="@freq = 1">query.termoccurs.1.1</xsl:when> 
     266      <xsl:when test="@numDocsMatch = 1">query.termoccurs.x.1</xsl:when> 
     267      <xsl:otherwise>query.termoccurs.x.x</xsl:otherwise></xsl:choose></xsl:variable> 
     268        <xsl:variable name="levelText"><xsl:call-template name="documentLevelText"><xsl:with-param name="level" select="$level"/><xsl:with-param name="numDocsMatched" select="@numDocsMatch"/></xsl:call-template></xsl:variable> 
     269      <span class="termInfo"> 
     270        <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, $occursTextKey, concat(@name,';', @freq,';',  @numDocsMatch,';',  $levelText))"/></span><br/> 
     271    </xsl:for-each> 
     272      </xsl:when> 
     273      <xsl:otherwise> 
     274    <xsl:for-each select="/page/pageResponse/termList/term"> 
     275      <span style="font-style:italic;"><xsl:value-of select="@name"/></span> (<xsl:value-of select="@freq"/>) 
     276      </xsl:for-each> 
     277    </xsl:otherwise> 
     278      </xsl:choose> 
     279    </p> 
    272280    </xsl:template> 
    273281