Author: tchemit Date: 2014-04-02 18:12:23 +0200 (Wed, 02 Apr 2014) New Revision: 1807 Url: http://forge.codelutin.com/projects/wao/repository/revisions/1807 Log: refs #4490 add pagination Modified: trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/BoatTopiaDao.java trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/BoatsAction.java trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/boats.jsp Modified: trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/BoatTopiaDao.java =================================================================== --- trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/BoatTopiaDao.java 2014-04-02 15:34:58 UTC (rev 1806) +++ trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/BoatTopiaDao.java 2014-04-02 16:12:23 UTC (rev 1807) @@ -10,6 +10,7 @@ import org.nuiton.topia.persistence.HqlAndParametersBuilder; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.persistence.pager.TopiaPagerBean; +import org.nuiton.util.PagerBeanUtil; import java.util.List; @@ -28,6 +29,7 @@ TopiaPagerBean pager = newPager(query.getHql(), query.getHqlParameters(), pageSize); pager.setPageIndex(pageIndex); + PagerBeanUtil.computeRecordIndexesAndPagesNumber(pager); pager.setSortColumn(sortProperty); pager.setSortAscendant(sortAscendant); return pager; Modified: trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/BoatsAction.java =================================================================== --- trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/BoatsAction.java 2014-04-02 15:34:58 UTC (rev 1806) +++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/BoatsAction.java 2014-04-02 16:12:23 UTC (rev 1807) @@ -25,13 +25,13 @@ protected BoatsFilter filter; - protected int pageIndex = 0; + protected int pageIndex = 1; protected int pageSize = 50; - protected String sortProperty; + protected String sortProperty = "name"; - protected boolean sortAscendant; + protected boolean sortAscendant = true; protected ObsMerBoatsList boatList; @@ -92,4 +92,38 @@ return SUCCESS; } + public int getFirstPageIndex() { + int pageIndex = getPager().getPageIndex(); + int result = pageIndex; + if (getPager().getPagesNumber() <= 10 || pageIndex < 10) { + result = 1; + } + if (pageIndex >= 10) { + + // on centre sur pageIndex + result = pageIndex - 5; + } + + return result; + } + + public long getLastPageIndex() { + long result = getFirstPageIndex() + 10; + if (result > getPager().getPagesNumber()) { + result = getPager().getPagesNumber(); + } + return result; + } + + public String getPaginationUrl(String fullUrl) { + // remove pageIndex params + String paginationUrl = fullUrl.replaceAll("pageIndex=\\d+", ""); + paginationUrl = paginationUrl.replaceAll("&&", "&"); + if (!paginationUrl.contains("?")) { + paginationUrl += "?"; + } + return paginationUrl; + } + + } Modified: trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/boats.jsp =================================================================== --- trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/boats.jsp 2014-04-02 15:34:58 UTC (rev 1806) +++ trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/boats.jsp 2014-04-02 16:12:23 UTC (rev 1807) @@ -138,7 +138,41 @@ </s:text> </h3> -<%--TODO Pagination--%> +<%-- Pagination --%> +<div class="pagination"> + <ul> + <s:url var="fullUrl" includeParams="get"/> + <s:set var="paginationUrl" value="%{getPaginationUrl(#fullUrl)}"/> + <s:if test="firstPageIndex > 1"> + <li> + <a href="${paginationUrl}&pageIndex=1">1</a> + </li> + <li> + <span>...</span> + </li> + </s:if> + + <s:iterator var="currentPageIndex" begin="firstPageIndex" end="lastPageIndex"> + <li class="<s:if test="#currentPageIndex == pager.pageIndex">active</s:if>"> + <a href="${paginationUrl}&pageIndex=${currentPageIndex}"> + <s:property/> + </a> + </li> + </s:iterator> + + <s:if test="lastPageIndex < pager.pagesNumber"> + <li> + <span>...</span> + </li> + <li> + <%--<s:set var="endPageIndex" value="pager.pagesNumber - 1"/>--%> + <a href="${paginationUrl}&pageIndex=${pager.pagesNumber}"> + <s:property value="pager.pagesNumber"/> + </a> + </li> + </s:if> + </ul> +</div> <table id="boat-list" class="large-table boat-list"> <thead> <tr> @@ -167,11 +201,11 @@ <s:iterator value="boats" var="boat"> <tr class="boat-row"> <td><s:property value="name"/></td> - <td><s:property value="immatriculation"/></td> + <td><s:property value="%{''+immatriculation}"/></td> <td><s:property value="boatLength"/></td> - <td><s:property value="year"/></td> - <td><s:property value="district.code"/></td> - <td><s:property value="portOfRegistry.code"/></td> + <td><s:property value="%{''+buildYear}"/></td> + <td><s:property value="district.districtCode"/></td> + <td><s:property value="portOfRegistry.portCode"/></td> </tr> </s:iterator> </todby>