Ignore:
Timestamp:
2012-10-25T15:53:59+13:00 (11 years ago)
Author:
kjdon
Message:

tidying up term info and num docs matching display texts

File:
1 edited

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