blob: 4ede7e8bcaaeea102655bd91f5eb6a0ad159d4cd [file] [log] [blame]
<%--
~ Licensed to the Apache Software Foundation (ASF) under one
~ or more contributor license agreements. See the NOTICE file
~ distributed with this work for additional information
~ regarding copyright ownership. The ASF licenses this file
~ to you under the Apache License, Version 2.0 (the
~ "License"); you may not use this file except in compliance
~ with the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing,
~ software distributed under the License is distributed on an
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~ KIND, either express or implied. See the License for the
~ specific language governing permissions and limitations
~ under the License.
--%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c'%>
<%@ taglib uri="http://www.extremecomponents.org" prefix="ec" %>
<html>
<s:i18n name="localization.Continuum">
<head>
<title><s:text name="projectBuilds.report.title"/></title>
<s:head/>
<link rel="stylesheet" href="<c:url value='/css/no-theme/jquery-ui-1.7.2.custom.css'/>" type="text/css" />
<script type="text/javascript" src="<c:url value='/js/jquery-1.3.2.min.js'/>"></script>
<script type="text/javascript" src="<c:url value='/js/jquery-ui-1.7.2.custom.min.js'/>"></script>
<script type="text/javascript">
$(document).ready(function()
{
$('#startDate').datepicker()
$('#endDate').datepicker()
$('#resetFilter').click(function()
{
$('#startDate').val('')
$('#endDate').val('')
$('#triggeredBy').val('')
$('#rowCount').val('30')
$("#buildStatus option[value='0']").attr('selected', 'selected')
$("#projectGroupId option[value='0']").attr('selected', 'selected')
});
});
</script>
</head>
<body>
<h3><s:text name="projectBuilds.report.section.title"/></h3>
<s:form name="generateReportForm" action="generateProjectBuildsReport.action">
<c:if test="${!empty actionErrors || !empty errorMessages}">
<div class="errormessage">
<s:iterator value="actionErrors">
<p><s:property/></p>
</s:iterator>
<c:forEach items="${errorMessages}" var="errorMessage">
<p><c:out value="${errorMessage}"/></p>
</c:forEach>
</div>
</c:if>
<div class="axial">
<table>
<s:select label="%{getText('projectBuilds.report.project.group')}" name="projectGroupId" id="projectGroupId" list="projectGroups"/>
<s:textfield label="%{getText('projectBuilds.report.startDate')}" name="startDate" id="startDate" size="20"/>
<s:textfield label="%{getText('projectBuilds.report.endDate')}" name="endDate" id="endDate" size="20"/>
<s:select label="%{getText('projectBuilds.report.buildStatus')}" name="buildStatus" id="buildStatus" list="buildStatuses"/>
<s:textfield label="%{getText('projectBuilds.report.triggeredBy')}" name="triggeredBy" id="triggeredBy" size="40"/>
<s:textfield label="%{getText('projectBuilds.report.rowCount')}" name="rowCount" id="rowCount" size="10"/>
</table>
<div class="functnbar3">
<s:submit value="%{getText('projectBuilds.report.view')}" theme="simple" />
<input type="button" id="resetFilter" value="<s:text name='projectBuilds.report.button.reset' />" />
</div>
</div>
</s:form>
</p>
<c:if test="${projectBuilds != null}">
<div id="h3">
<h3>Results</h3>
<c:choose>
<c:when test="${not empty projectBuilds}">
<table>
<tr>
<td>
<%-- Pagination --%>
<c:set var="prevPageUrl">
<s:url action="generateProjectBuildsReport">
<s:param name="projectGroupId" value="%{#attr.projectGroupId}"/>
<s:param name="triggeredBy" value="%{#attr.triggeredBy}"/>
<s:param name="buildStatus" value="%{#attr.buildStatus}"/>
<s:param name="rowCount" value="%{#attr.rowCount}"/>
<s:param name="startDate" value="%{#attr.startDate}"/>
<s:param name="endDate" value="%{#attr.endDate}"/>
<s:param name="page" value="%{#attr.page - 1}"/>
</s:url>
</c:set>
<c:set var="nextPageUrl">
<s:url action="generateProjectBuildsReport">
<s:param name="projectGroupId" value="%{#attr.projectGroupId}"/>
<s:param name="triggeredBy" value="%{#attr.triggeredBy}"/>
<s:param name="buildStatus" value="%{#attr.buildStatus}"/>
<s:param name="rowCount" value="%{#attr.rowCount}"/>
<s:param name="startDate" value="%{#attr.startDate}"/>
<s:param name="endDate" value="%{#attr.endDate}"/>
<s:param name="page" value="%{#attr.page + 1}"/>
</s:url>
</c:set>
<c:choose>
<c:when test="${page == 1}">
<s:text name="projectBuilds.report.prev"/>
</c:when>
<c:otherwise>
<a href="${prevPageUrl}">
<s:text name="projectBuilds.report.prev"/>
</a>
</c:otherwise>
</c:choose>
<c:choose>
<c:when test="${numPages > 11}">
<c:choose>
<c:when test="${(page - 5) < 0}">
<c:set var="beginVal">0</c:set>
<c:set var="endVal">10</c:set>
</c:when>
<c:when test="${(page + 5) > (numPages - 1)}">
<c:set var="beginVal">${(numPages - 1) - 10}</c:set>
<c:set var="endVal">${numPages - 1}</c:set>
</c:when>
<c:otherwise>
<c:set var="beginVal">${page - 5}</c:set>
<c:set var="endVal">${page + 5}</c:set>
</c:otherwise>
</c:choose>
</c:when>
<c:otherwise>
<c:set var="beginVal">0</c:set>
<c:set var="endVal">${numPages - 1}</c:set>
</c:otherwise>
</c:choose>
<c:forEach var="i" begin="${beginVal}" end="${endVal}">
<c:choose>
<c:when test="${i != (page - 1)}">
<c:set var="specificPageUrl">
<s:url action="generateProjectBuildsReport">
<s:param name="projectGroupId" value="%{#attr.projectGroupId}"/>
<s:param name="triggeredBy" value="%{#attr.triggeredBy}"/>
<s:param name="buildStatus" value="%{#attr.buildStatus}"/>
<s:param name="rowCount" value="%{#attr.rowCount}"/>
<s:param name="startDate" value="%{#attr.startDate}"/>
<s:param name="endDate" value="%{#attr.endDate}"/>
<s:param name="page" value="%{#attr.i + 1}"/>
</s:url>
</c:set>
<a href="${specificPageUrl}">${i + 1}</a>
</c:when>
<c:otherwise>
<b>${i + 1}</b>
</c:otherwise>
</c:choose>
</c:forEach>
<c:choose>
<c:when test="${page == numPages}">
<s:text name="projectBuilds.report.next"/>
</c:when>
<c:otherwise>
<a href="${nextPageUrl}">
<s:text name="projectBuilds.report.next"/>
</a>
</c:otherwise>
</c:choose>
</td>
<td>
<%-- Export to CSV link --%>
<s:url id="downloadProjectBuildsReportUrl" action="downloadProjectBuildsReport" namespace="/">
<s:param name="projectGroupId" value="%{#attr.projectGroupId}"/>
<s:param name="triggeredBy" value="%{#attr.triggeredBy}"/>
<s:param name="buildStatus" value="%{#attr.buildStatus}"/>
<s:param name="startDate" value="%{#attr.startDate}"/>
<s:param name="endDate" value="%{#attr.endDate}"/>
</s:url>
<s:a href="%{downloadProjectBuildsReportUrl}">Export to CSV</s:a>
</td>
</tr>
</table>
<s:set name="projectBuilds" value="projectBuilds" scope="request"/>
<ec:table items="projectBuilds"
var="projectBuild"
showExports="false"
showPagination="false"
showStatusBar="false"
sortable="false"
filterable="false">
<ec:row highlightRow="true">
<ec:column property="projectGroupName" title="projectBuilds.report.projectGroup"/>
<ec:column property="projectName" title="projectBuilds.report.project"/>
<ec:column property="buildDate" title="projectBuilds.report.buildDate" cell="date"/>
<ec:column property="buildTriggeredBy" title="projectBuilds.report.triggeredBy"/>
<ec:column property="buildState" title="projectBuilds.report.buildStatus" cell="org.apache.maven.continuum.web.view.buildresults.StateCell"/>
</ec:row>
</ec:table>
</c:when>
<c:otherwise>
<s:text name="projectBuilds.report.noResult"/></p>
</c:otherwise>
</c:choose>
</div>
</c:if>
</body>
</s:i18n>
</html>