You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ba...@apache.org on 2015/05/01 01:51:45 UTC
svn commit: r1677082 - in /continuum/trunk:
continuum-api/src/main/java/org/apache/maven/continuum/
continuum-core/src/main/java/org/apache/maven/continuum/
continuum-store/src/main/java/org/apache/continuum/dao/
continuum-webapp/src/main/java/org/apac...
Author: batkinson
Date: Thu Apr 30 23:51:45 2015
New Revision: 1677082
URL: http://svn.apache.org/r1677082
Log:
[CONTINUUM-1621] Add pagination to project build history
Added:
continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/buildResultsPager.jspf
Modified:
continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java
continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java
continuum/trunk/continuum-store/src/main/java/org/apache/continuum/dao/BuildResultDaoImpl.java
continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildResultsListAction.java
continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties
continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/buildResults.jsp
continuum/trunk/continuum-webapp/src/main/webapp/css/continuum.css
Modified: continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java?rev=1677082&r1=1677081&r2=1677082&view=diff
==============================================================================
--- continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java (original)
+++ continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java Thu Apr 30 23:51:45 2015
@@ -202,6 +202,9 @@ public interface Continuum
Collection<BuildResult> getBuildResultsForProject( int projectId )
throws ContinuumException;
+ Collection<BuildResult> getBuildResultsForProject( int projectId, int offset, int length )
+ throws ContinuumException;
+
List<ChangeSet> getChangesSinceLastSuccess( int projectId, int buildResultId )
throws ContinuumException;
Modified: continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java?rev=1677082&r1=1677081&r2=1677082&view=diff
==============================================================================
--- continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java (original)
+++ continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java Thu Apr 30 23:51:45 2015
@@ -2815,6 +2815,12 @@ public class DefaultContinuum
return buildResultDao.getBuildResultsForProject( projectId );
}
+ public Collection<BuildResult> getBuildResultsForProject( int projectId, int offset, int length )
+ throws ContinuumException
+ {
+ return buildResultDao.getBuildResultsForProject( projectId, offset, offset + length );
+ }
+
// ----------------------------------------------------------------------
// Workflow
// ----------------------------------------------------------------------
Modified: continuum/trunk/continuum-store/src/main/java/org/apache/continuum/dao/BuildResultDaoImpl.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-store/src/main/java/org/apache/continuum/dao/BuildResultDaoImpl.java?rev=1677082&r1=1677081&r2=1677082&view=diff
==============================================================================
--- continuum/trunk/continuum-store/src/main/java/org/apache/continuum/dao/BuildResultDaoImpl.java (original)
+++ continuum/trunk/continuum-store/src/main/java/org/apache/continuum/dao/BuildResultDaoImpl.java Thu Apr 30 23:51:45 2015
@@ -595,12 +595,11 @@ public class BuildResultDaoImpl
query.setFilter( "this.project.id == projectId" );
- query.setOrdering( "this.startTime descending" );
-
if ( startIndex >= 0 )
{
query.setRange( startIndex, endIndex );
}
+ query.setOrdering( "this.id descending" );
List<BuildResult> result = (List<BuildResult>) query.execute( projectId );
Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildResultsListAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildResultsListAction.java?rev=1677082&r1=1677081&r2=1677082&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildResultsListAction.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildResultsListAction.java Thu Apr 30 23:51:45 2015
@@ -38,12 +38,16 @@ import java.util.List;
/**
* @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
*/
-@Component( role = com.opensymphony.xwork2.Action.class, hint = "buildResults", instantiationStrategy = "per-lookup" )
+@Component( role = com.opensymphony.xwork2.Action.class, hint = "buildResults", instantiationStrategy = "per-lookup" )
public class BuildResultsListAction
extends AbstractBuildAction
{
private static final Logger logger = LoggerFactory.getLogger( BuildResultsListAction.class );
+ private static final int MAX_PAGE_LEN = 100;
+
+ private static final int MIN_PAGE_LEN = 10;
+
private Project project;
private Collection<BuildResult> buildResults;
@@ -58,6 +62,10 @@ public class BuildResultsListAction
private String projectGroupName = "";
+ private int page;
+
+ private int length = MAX_PAGE_LEN / 4;
+
public String execute()
throws ContinuumException
{
@@ -72,7 +80,12 @@ public class BuildResultsListAction
project = getContinuum().getProject( projectId );
- buildResults = getContinuum().getBuildResultsForProject( projectId );
+ int adjPage = Math.max( 1, page ), adjLength = Math.max( MIN_PAGE_LEN, Math.min( MAX_PAGE_LEN, length ) );
+
+ page = adjPage;
+ length = adjLength;
+
+ buildResults = getContinuum().getBuildResultsForProject( projectId, ( page - 1 ) * length, length );
return SUCCESS;
}
@@ -151,6 +164,26 @@ public class BuildResultsListAction
return CONFIRM;
}
+ public int getPage()
+ {
+ return page;
+ }
+
+ public void setPage( int page )
+ {
+ this.page = page;
+ }
+
+ public int getLength()
+ {
+ return length;
+ }
+
+ public void setLength( int length )
+ {
+ this.length = length;
+ }
+
public int getProjectId()
{
return projectId;
Modified: continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties?rev=1677082&r1=1677081&r2=1677082&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties (original)
+++ continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties Thu Apr 30 23:51:45 2015
@@ -570,6 +570,9 @@ buildResults.state = State
buildResults.result = Result
buildResults.buildDefinition.description = Build Definition Description
buildResults.delete.error = Unable to delete Build Results
+buildResults.page = Page {0}
+buildResults.next = Next
+buildResults.prev = Prev
# ----------------------------------------------------------------------
# Page: BuildResults
Modified: continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/buildResults.jsp
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/buildResults.jsp?rev=1677082&r1=1677081&r2=1677082&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/buildResults.jsp (original)
+++ continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/buildResults.jsp Thu Apr 30 23:51:45 2015
@@ -49,6 +49,7 @@
</div>
</c:if>
+ <jsp:include page="buildResultsPager.jspf" />
<s:form id="buildResultsForm" action="removeBuildResults" theme="simple">
<s:token/>
<s:set name="buildResults" value="buildResults" scope="request"/>
@@ -113,6 +114,7 @@
</div>
</c:if>
</s:form>
+ <jsp:include page="buildResultsPager.jspf" />
</div>
</body>
</s:i18n>
Added: continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/buildResultsPager.jspf
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/buildResultsPager.jspf?rev=1677082&view=auto
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/buildResultsPager.jspf (added)
+++ continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/buildResultsPager.jspf Thu Apr 30 23:51:45 2015
@@ -0,0 +1,30 @@
+<%@ taglib uri="/struts-tags" prefix="s" %>
+<page-controls>
+ <page>
+ <s:text name="buildResults.page">
+ <s:param value="page"/>
+ </s:text>
+ </page>
+ <prev>
+ <s:if test="page > 1">
+ <s:a action="buildResults" includeParams="get">
+ <s:param name="page" value="page - 1"/>
+ <s:text name="buildResults.prev"/>
+ </s:a>
+ </s:if>
+ <s:else>
+ <s:text name="buildResults.prev"/>
+ </s:else>
+ </prev>
+ <next>
+ <s:if test="buildResults.size() >= length">
+ <s:a action="buildResults" includeParams="get">
+ <s:param name="page" value="page + 1"/>
+ <s:text name="buildResults.next"/>
+ </s:a>
+ </s:if>
+ <s:else>
+ <s:text name="buildResults.next"/>
+ </s:else>
+ </next>
+</page-controls>
\ No newline at end of file
Modified: continuum/trunk/continuum-webapp/src/main/webapp/css/continuum.css
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/webapp/css/continuum.css?rev=1677082&r1=1677081&r2=1677082&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/webapp/css/continuum.css (original)
+++ continuum/trunk/continuum-webapp/src/main/webapp/css/continuum.css Thu Apr 30 23:51:45 2015
@@ -77,4 +77,13 @@ div.errormessage p, span.errorMessage {
background: url(../images/icon_error_sml.gif) no-repeat;
padding-left: 20px;
min-height: 15px;
+}
+
+page-controls {
+ display: block;
+ text-align: right;
+}
+
+page-controls page {
+ font-weight: bold;
}
\ No newline at end of file