Changeset 29553


Ignore:
Timestamp:
2014-12-08T14:33:22+13:00 (9 years ago)
Author:
kjdon
Message:

tidying up paging of query results. max docs and hits per page are now displayed here if they are part of the service. tidy up of how the 'displaying 1 to 20 of 58 sections' string is formed.

File:
1 edited

Legend:

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

    r29342 r29553  
    164164                    </input>
    165165                    <input type="hidden" name="rt" value="rd"/>
    166                     <xsl:choose>
    167                         <xsl:when test="/page/pageRequest/paramList/param[@name = 's1.maxDocs']">
    168                             <input type="hidden" name="s1.maxDocs">
    169                                 <xsl:attribute name="value">
    170                                     <xsl:value-of select="/page/pageRequest/paramList/param[@name = 's1.maxDocs']/@value"/>
    171                                 </xsl:attribute>
    172                             </input>
    173                         </xsl:when>
    174                         <xsl:otherwise>
    175                             <input type="hidden" name="s1.maxDocs" value="100"/>
    176                         </xsl:otherwise>
    177                     </xsl:choose>
    178                     <xsl:choose>
    179                         <xsl:when test="/page/pageRequest/paramList/param[@name = 's1.hitsPerPage']">
    180                             <input type="hidden" name="s1.hitsPerPage">
    181                                 <xsl:attribute name="value">
    182                                     <xsl:value-of select="/page/pageRequest/paramList/param[@name = 's1.hitsPerPage']/@value"/>
    183                                 </xsl:attribute>
    184                             </input>
    185                         </xsl:when>
    186                         <xsl:otherwise>
    187                             <input type="hidden" name="s1.hitsPerPage" value="20"/>
    188                         </xsl:otherwise>
    189                     </xsl:choose>
    190166
    191167                    <xsl:variable name="ns">s1.</xsl:variable>
    192168                    <xsl:for-each select="paramList/param">
    193169                        <xsl:choose>
    194                             <xsl:when test="@name = 'maxDocs' or @name = 'hitsPerPage'">
    195                             </xsl:when>
    196170                            <xsl:when test="@type='multi'">
    197171                                <xsl:apply-templates select=".">
     
    220194        <div id="matchdocs">
    221195            <xsl:variable name="numDocsMatched" select="/page/pageResponse/metadataList/metadata[@name='numDocsMatched']"/>
    222             <xsl:variable name="numDocsReturned">
    223                 <xsl:call-template name="numDocsReturned"/>
    224             </xsl:variable>
    225             <!-- select="/page/pageResponse/metadataList/metadata[@name='numDocsReturned']"/>-->
     196            <xsl:variable name="numDocsReturned" select="/page/pageResponse/metadataList/metadata[@name='numDocsReturned']"/>
    226197            <xsl:variable name="docLevel">
    227198                <xsl:call-template name="documentLevel"/>
     
    250221        </div>
    251222
    252     </xsl:template>
    253 
    254     <xsl:template name="numDocsMatched">
    255         <xsl:choose>
    256             <xsl:when test="/page/pageResponse/metadataList/metadata[@name = 'numDocsMatched']">
    257                 <xsl:value-of select="/page/pageResponse/metadataList/metadata[@name = 'numDocsMatched']"/>
    258             </xsl:when>
    259             <xsl:when test="/page/pageResponse/metadataList/metadata[@name = 'numDocsReturned']">
    260                 <xsl:value-of select="/page/pageResponse/metadataList/metadata[@name = 'numDocsReturned']"/>
    261             </xsl:when>
    262             <xsl:otherwise>
    263                 <xsl:value-of select="count(/page/pageResponse/documentNodeList/documentNode)"/>
    264             </xsl:otherwise>
    265         </xsl:choose>   
    266     </xsl:template>
    267 
    268     <xsl:template name="numDocsReturned">
    269         <xsl:choose>
    270             <xsl:when test="/page/pageResponse/metadataList/metadata[@name = 'numDocsReturned']">
    271                 <xsl:value-of select="/page/pageResponse/metadataList/metadata[@name = 'numDocsReturned']"/>
    272             </xsl:when>
    273             <xsl:otherwise>
    274                 <xsl:value-of select="count(/page/pageResponse/documentNodeList/documentNode)"/>
    275             </xsl:otherwise>
    276         </xsl:choose>   
    277223    </xsl:template>
    278224
     
    399345            </xsl:choose>
    400346        </xsl:variable>
    401 
    402347        <xsl:variable name="usesS1">
    403348            <xsl:choose>
     
    406351            </xsl:choose>
    407352        </xsl:variable>
    408 
    409         <!-- Find the total number of documents returned -->
     353        <!-- Find the total number of documents returned/matched -->
    410354        <xsl:variable name="docMax">
    411355            <xsl:choose>
     
    421365            </xsl:choose>
    422366        </xsl:variable>
    423 
    424367        <!-- Find the number of documents displayed per page -->
    425368        <xsl:variable name="docsPerPage">
    426369            <xsl:choose>
    427                 <xsl:when test="/page/pageRequest/paramList/param[@name='hitsPerPage']">
    428                     <xsl:value-of select="/page/pageRequest/paramList/param[@name='hitsPerPage']/@value" />
    429                 </xsl:when>
    430370                <xsl:when test="/page/pageRequest/paramList/param[@name='s1.hitsPerPage']">
    431371                    <xsl:value-of select="/page/pageRequest/paramList/param[@name='s1.hitsPerPage']/@value" />
    432372                </xsl:when>
    433                 <xsl:otherwise>20</xsl:otherwise>
     373                <xsl:when test="$usesS1 = 'true' and /page/pageResponse/service/paramList/param[@name='hitsPerPage']">
     374                  <xsl:value-of select="/page/pageResponse/service/paramList/param[@name='hitsPerPage']/@default" />
     375                  </xsl:when>
     376                <xsl:otherwise><xsl:value-of select="count(/page/pageResponse/documentNodeList/documentNode)"/></xsl:otherwise>
    434377            </xsl:choose>
    435378        </xsl:variable>
    436 
    437         <!-- Find the number of documents displayed per page -->
     379        <!-- Find the level -->
    438380        <xsl:variable name="level">
    439             <xsl:choose>
    440                 <xsl:when test="/page/pageRequest/paramList/param[@name='level']">
    441                     <xsl:value-of select="/page/pageRequest/paramList/param[@name='level']/@value" />
    442                 </xsl:when>
    443                 <xsl:when test="/page/pageRequest/paramList/param[@name='s1.level']">
    444                     <xsl:value-of select="/page/pageRequest/paramList/param[@name='s1.level']/@value" />
    445                 </xsl:when>
    446                 <xsl:otherwise>Doc</xsl:otherwise>
    447             </xsl:choose>
     381          <xsl:call-template name="documentLevel"/>
    448382        </xsl:variable>
    449383
     
    468402
    469403                <!-- Search result status bar (in english it reads "Displaying X to Y of Z documents") -->
    470                 <xsl:if test="$docMax &gt; 0">
     404                <xsl:if test="$docsPerPage &gt; 0">
    471405                    <xsl:variable name="startdoc" select="($currentPage - 1) * $docsPerPage + 1"/>
    472406                    <xsl:variable name="enddoc">
     
    513447                <!-- Next button -->
    514448                <td id="nextTD">
    515                     <xsl:if test="($currentPage * $docsPerPage + 1) &lt; $docMax">
     449                    <xsl:if test="$docsPerPage &gt; 0 and ($currentPage * $docsPerPage + 1) &lt; $docMax">
    516450                        <a href="{$library_name}?a=q&amp;sa={/page/pageRequest/paramList/param[@name = 'sa']/@value}&amp;c={$collName}&amp;s={/page/pageResponse/service/@name}&amp;rt=rd&amp;{$startPageName}={$currentPage + 1}&amp;qs={/page/pageRequest/paramList/param[@name='qs']/@value}">Next</a>
    517451                    </xsl:if>
    518452                </td>
    519453                <td id="nextArrowTD">
    520                     <xsl:if test="($currentPage * $docsPerPage + 1) &lt; $docMax">
     454                    <xsl:if test="$docsPerPage &gt; 0 and ($currentPage * $docsPerPage + 1) &lt; $docMax">
    521455                        <a href="{$library_name}?a=q&amp;sa={/page/pageRequest/paramList/param[@name = 'sa']/@value}&amp;c={$collName}&amp;s={/page/pageResponse/service/@name}&amp;rt=rd&amp;{$startPageName}={$currentPage + 1}&amp;qs={/page/pageRequest/paramList/param[@name='qs']/@value}">
    522456                            <img src="interfaces/default/images/next.png"/>
Note: See TracChangeset for help on using the changeset viewer.