Author: mfang
Date: 2009-06-02 03:51:27 +0200 (Tue, 02 Jun 2009)
New Revision: 35538
Added:
CMSContainer/trunk/CMSContainer/cmsc/edit-webapp/src/webapp/WEB-INF/tags/edit/pages.tag
Log:
CMSC-1006 Create a 'pages' tag for using inside the Editors and use it by
default for paging
Added:
CMSContainer/trunk/CMSContainer/cmsc/edit-webapp/src/webapp/WEB-INF/tags/edit/pages.tag
===================================================================
---
CMSContainer/trunk/CMSContainer/cmsc/edit-webapp/src/webapp/WEB-INF/tags/edit/pages.tag
(rev 0)
+++
CMSContainer/trunk/CMSContainer/cmsc/edit-webapp/src/webapp/WEB-INF/tags/edit/pages.tag
2009-06-02 01:51:27 UTC (rev 35538)
@@ -0,0 +1,118 @@
+<%@ tag body-content="empty" %>
+<%...@include file="taglib.tagf" %>
+<%@ taglib uri="http://jsptags.com/tags/navigation/pager" prefix="pg" %>
+<%@ attribute name="totalElements" required="true" rtexprvalue="true"%>
+<%@ attribute name="elementsPerPage" required="false" rtexprvalue="true"%>
+<%@ attribute name="showPages" required="false" rtexprvalue="true"%>
+<%@ attribute name="pagesIndex" required="false" rtexprvalue="true"%>
+<%@ attribute name="search" required="false" rtexprvalue="true"%>
+<%@ attribute name="offset" required="false" rtexprvalue="true"%>
+<%@ attribute name="extraparams" required="false" rtexprvalue="true"%>
+<c:if test="${empty elementsPerPage}">
+ <c:set
var="elementsPerPage"><%=com.finalist.cmsc.mmbase.PropertiesUtil.getProperty("repository.search.results.per.page")%></c:set>
+</c:if>
+<c:set var="showPages" value="${empty showPages ? 5 :showPages }"/>
+<c:set var="pagesIndex" value="${empty pagesIndex ? 'center' :pagesIndex }"/>
+<c:set var="offset" value="${empty offset ? 0 : offset }"/>
+<c:set var="search" value="${empty search ? true : search }"/>
+<c:set var="pagesSize" value="${ cmsc:ceil(totalElements/elementsPerPage)}"/>
+
+<fmt:bundle basename="cmsc">
+
+<fmt:message key="pages.message" var="error"/>
+<fmt:message key="pages.go" var="go"/>
+<fmt:message key="searchpages.showresults" var="searchresult">
+ <fmt:param>${(totalElements>0)?(offset * elementsPerPage):0 }</fmt:param>
+
<fmt:param>${(totalElements>((offset+1)*elementsPerPage))?((offset+1)*elementsPerPage):totalElements
}</fmt:param>
+ <fmt:param>${totalElements}</fmt:param>
+</fmt:message>
+
+<script type="text/javascript">
+ function gotopage(targetfield, search) {
+
+ var inputValue = document.getElementById(targetfield).value;
+ var re = new RegExp("^[1-9][0-9]*$");
+
+ if (re.test(inputValue) && inputValue <= Math.ceil(${pagesSize})) {
+ if (search) {
+ setOffset(inputValue-1, (inputValue-1)*${elementsPerPage});
+ } else {
+ var url = "?offset=" + (inputValue - 1) + "${extraparams}" +
"&pager.offset=" + (inputValue-1)*${elementsPerPage};
+ window.location.href = url;
+ }
+ } else {
+ alert("${error}");
+ }
+ }
+
+ function enterto(event, targetfield, search) {
+ if (event.keyCode == 13) {
+ gotopage(targetfield, search)
+ }
+ }
+</script>
+
+<table border="0" width="100%">
+ <tr>
+ <td style="width:30%;">
+ ${searchresult}
+ </td>
+ <c:if test="${pagesSize>1}">
+ <td style="text-align:right;width:70%;">
+ <fmt:message key="searchpages.page"/>:
+ <pg:pager items="${totalElements}"
maxPageItems="${elementsPerPage}" maxIndexPages="${showPages}"
+ index="${pagesIndex}" isOffset="true"
export="pageOffset,currentPage=pageNumber">
+ <c:if test="${not search}">
+ <c:url var="previousPageUrl"
value="<%=com.finalist.cmsc.paging.PagingUtils.previousPage((javax.servlet.jsp.PageContext)jspContext)%>"/>
+ <c:url var="nextPageUrl"
value="<%=com.finalist.cmsc.paging.PagingUtils.nextPage((javax.servlet.jsp.PageContext)jspContext)%>"/>
+ <c:url var="FirstPageUrl"
value="<%=com.finalist.cmsc.paging.PagingUtils.firstPage((javax.servlet.jsp.PageContext)jspContext)%>"/>
+ <c:url var="LastPageUrl"
value="<%=com.finalist.cmsc.paging.PagingUtils.lastPage((javax.servlet.jsp.PageContext)jspContext)%>"/>
+ </c:if>
+ <c:if test="${search}">
+ <c:url var="previousPageUrl"
value="javascript:setOffset('${currentPage - 2}');"/>
+ <c:url var="nextPageUrl"
value="javascript:setOffset('${currentPage}');"/>
+ <c:url var="FirstPageUrl"
value="javascript:setOffset('0');"/>
+ <c:url var="LastPageUrl"
value="javascript:setOffset('${pagesSize - 1}');"/>
+ </c:if>
+ <pg:first unless="current">
+ <a href="${FirstPageUrl}"
class="page_list_navtrue"><<<fmt:message key="pages.first"/></a>
+ </pg:first>
+ <pg:prev ifnull="false">
+ <a href="${previousPageUrl}"
class="page_list_navtrue"><<fmt:message key="pages.previous"/></a>
+ </pg:prev>
+ <pg:pages export="count=pageNumber">
+ <c:if test="${not search}">
+
<%=com.finalist.cmsc.paging.PagingUtils.generatePageUrl((javax.servlet.jsp.PageContext)jspContext)%>
+ </c:if>
+ <c:if test="${search}">
+ <c:choose>
+ <c:when test="${count == currentPage}">
+ ${count}
+ </c:when>
+ <c:otherwise>
+ <a href="javascript:setOffset('${count -
1}');">${count}</a>
+ </c:otherwise>
+ </c:choose>
+ </c:if>
+ |
+ </pg:pages>
+ <pg:next ifnull="false">
+ <a href="${nextPageUrl}"
class="page_list_navtrue"><fmt:message key="pages.next"/>></a>
+ </pg:next>
+ <pg:last unless="current">
+ <a href="${LastPageUrl}"
class="page_list_navtrue"><fmt:message key="pages.last"/>>></a>
+ </pg:last>
+ <c:if test="${pagesSize>13}">
+ <c:set var="targetfield">
+
<%=org.apache.commons.lang.RandomStringUtils.randomAlphabetic(5)%>
+ </c:set>
+ <input type="text" name="targetpage" id="${targetfield}"
size="4" onKeyPress="enterto(event,'${targetfield}',${search})"/>
+ <input type="button" id="goto" value="${go}"
onclick="gotopage('${targetfield}',${search})"/>
+ </c:if>
+ </pg:pager>
+ </td>
+ </c:if>
+ </tr>
+</table>
+
+</fmt:bundle>
\ No newline at end of file
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs