You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by an...@apache.org on 2009/04/30 10:56:48 UTC
svn commit: r770118 -
/lenya/branches/BRANCH_2_0_X/src/modules/lucene/xslt/search2html.xsl
Author: andreas
Date: Thu Apr 30 08:56:47 2009
New Revision: 770118
URL: http://svn.apache.org/viewvc?rev=770118&view=rev
Log:
Improve search pagination, fix bug 47125.
Modified:
lenya/branches/BRANCH_2_0_X/src/modules/lucene/xslt/search2html.xsl
Modified: lenya/branches/BRANCH_2_0_X/src/modules/lucene/xslt/search2html.xsl
URL: http://svn.apache.org/viewvc/lenya/branches/BRANCH_2_0_X/src/modules/lucene/xslt/search2html.xsl?rev=770118&r1=770117&r2=770118&view=diff
==============================================================================
--- lenya/branches/BRANCH_2_0_X/src/modules/lucene/xslt/search2html.xsl (original)
+++ lenya/branches/BRANCH_2_0_X/src/modules/lucene/xslt/search2html.xsl Thu Apr 30 08:56:47 2009
@@ -35,6 +35,10 @@
<xsl:param name="queryString"/>
<xsl:param name="type"/>
+ <xsl:variable name="start-index" select="/search:results/@start-index"/>
+ <xsl:variable name="page-length" select="/search:results/@page-length"/>
+ <xsl:variable name="query-string" select="/search:results/@query-string"/>
+
<xsl:variable name="selectedType">
<xsl:choose>
<xsl:when test="$type = 'images' or $type = 'documents'">
@@ -129,42 +133,42 @@
<p>
<i18n:text>Pages</i18n:text><xsl:text>: </xsl:text>
+ <xsl:variable name="has-previous" select="/search:results/search:navigation/@has-previous"/>
+ <xsl:if test="$has-previous = 'true'">
+ <xsl:variable name="previous-index" select="/search:results/search:navigation/@previous-index"/>
+ <xsl:call-template name="navigation-link">
+ <xsl:with-param name="page-length"><xsl:value-of select="$page-length"/></xsl:with-param>
+ <xsl:with-param name="start-index"><xsl:value-of select="$previous-index"/></xsl:with-param>
+ <xsl:with-param name="link-text"><</xsl:with-param>
+ </xsl:call-template>
+ <xsl:text> </xsl:text>
+ </xsl:if>
+
<xsl:for-each select="$pages">
<xsl:call-template name="navigation-link">
- <xsl:with-param name="query-string" select="/search:results/@query-string"/>
- <xsl:with-param name="page-length" select="/search:results/@page-length"/>
<xsl:with-param name="start-index" select="@start-index"/>
<xsl:with-param name="link-text" select="position()"/>
+ <xsl:with-param name="isCurrent" select="@start-index = $start-index"/>
</xsl:call-template>
</xsl:for-each>
- <xsl:call-template name="navigation-paging-link">
- <xsl:with-param name="query-string" select="/search:results/@query-string"/>
- <xsl:with-param name="page-length" select="/search:results/@page-length"/>
- <xsl:with-param name="has-previous" select="/search:results/search:navigation/@has-previous"/>
- <xsl:with-param name="has-next" select="/search:results/search:navigation/@has-next"/>
- <xsl:with-param name="previous-index" select="/search:results/search:navigation/@previous-index"/>
- <xsl:with-param name="next-index" select="/search:results/search:navigation/@next-index"/>
- </xsl:call-template>
+ <xsl:variable name="has-next" select="/search:results/search:navigation/@has-next"/>
+ <xsl:if test="$has-next = 'true'">
+ <xsl:text> </xsl:text>
+ <xsl:variable name="next-index" select="/search:results/search:navigation/@next-index"/>
+ <a href="?{$usecaseParam}startIndex={$next-index}&queryString={$queryString}&pageLength={$page-length}&type={$selectedType}">
+ <xsl:text>></xsl:text>
+ </a>
+ </xsl:if>
+
</p>
</xsl:if>
</xsl:template>
- <xsl:template match="search:navigation">
- <!--
- <p>
- <xsl:call-template name="navigation-paging-form">
- <xsl:with-param name="query-string"><xsl:value-of select="/search:results/@query-string"/></xsl:with-param>
- <xsl:with-param name="page-length"><xsl:value-of select="/search:results/@page-length"/></xsl:with-param>
- <xsl:with-param name="has-previous"><xsl:value-of select="@has-previous"/></xsl:with-param>
- <xsl:with-param name="has-next"><xsl:value-of select="@has-next"/></xsl:with-param>
- <xsl:with-param name="previous-index"><xsl:value-of select="@previous-index"/></xsl:with-param>
- <xsl:with-param name="next-index"><xsl:value-of select="@next-index"/></xsl:with-param>
- </xsl:call-template>
- </p>
- -->
- </xsl:template>
+
+ <xsl:template match="search:navigation"/>
+
<xsl:template match="search:hit" mode="image">
@@ -204,72 +208,25 @@
</xsl:template>
- <xsl:template name="navigation-paging-form">
- <xsl:param name="page-length"/>
- <xsl:param name="has-previous"/>
- <xsl:param name="has-next"/>
- <xsl:param name="previous-index"/>
- <xsl:param name="next-index"/>
-
- <xsl:if test="$has-previous = 'true'">
- <form action="" id="form-previous">
- <xsl:if test="$lenya.usecase != ''">
- <input type="hidden" name="lenya.usecase" value="{$lenya.usecase}"/>
- </xsl:if>
- <input type="hidden" name="startIndex" value="{$previous-index}"/>
- <input type="hidden" name="queryString" value="{$queryString}"/>
- <input type="hidden" name="pageLength" value="{$page-length}"/>
- <input type="submit" name="previous" value="Previous" i18n:attr="value"/>
- </form>
- </xsl:if>
-
- <xsl:if test="$has-next = 'true'">
- <form action="" id="form-next">
- <xsl:if test="lenya.usecase != ''">
- <input type="hidden" name="lenya.usecase" value="{$lenya.usecase}"/>
- </xsl:if>
- <input type="hidden" name="startIndex" value="{$next-index}"/>
- <input type="hidden" name="queryString" value="{$queryString}"/>
- <input type="hidden" name="pageLength" value="{$page-length}"/>
- <input type="submit" name="next" value="Next" i18n:attr="value"/>
- </form>
- </xsl:if>
-
- </xsl:template>
-
- <xsl:template name="navigation-paging-link">
- <xsl:param name="page-length"/>
- <xsl:param name="has-previous"/>
- <xsl:param name="has-next"/>
- <xsl:param name="previous-index"/>
- <xsl:param name="next-index"/>
-
- <xsl:if test="$has-previous = 'true'">
- <xsl:call-template name="navigation-link">
- <xsl:with-param name="page-length"><xsl:value-of select="$page-length"/></xsl:with-param>
- <xsl:with-param name="start-index"><xsl:value-of select="$previous-index"/></xsl:with-param>
- <xsl:with-param name="link-text"><</xsl:with-param>
- </xsl:call-template>
- </xsl:if>
- <xsl:text> </xsl:text>
- <xsl:if test="$has-next = 'true'">
- <a href="?{$usecaseParam}startIndex={$next-index}&queryString={$queryString}&pageLength={$page-length}">
- <xsl:text>></xsl:text>
- </a>
- </xsl:if>
- </xsl:template>
-
<xsl:template name="navigation-link">
<xsl:param name="query-string"/>
<xsl:param name="page-length"/>
<xsl:param name="start-index"/>
<xsl:param name="link-text"/>
-
- <a href="?{$usecaseParam}startIndex={$start-index}&queryString={$queryString}&pageLength={$page-length}">
- <xsl:value-of select="$link-text"/>
- </a>
+ <xsl:param name="isCurrent" select="false()"/>
+ <xsl:choose>
+ <xsl:when test="$isCurrent">
+ <strong><xsl:value-of select="$link-text"/></strong>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="?{$usecaseParam}startIndex={$start-index}&queryString={$queryString}&pageLength={$page-length}&type={$selectedType}">
+ <xsl:value-of select="$link-text"/>
+ </a>
+ </xsl:otherwise>
+ </xsl:choose>
<xsl:text> </xsl:text>
</xsl:template>
+
<xsl:template match="@*|node()" priority="-2"><xsl:copy><xsl:apply-templates select="@*|node()"/></xsl:copy></xsl:template>
<xsl:template match="text()" priority="-1"><xsl:value-of select="."/></xsl:template>
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org