| <%-- |
| ~ 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://www.extremecomponents.org" prefix="ec" %> |
| <%@ taglib uri="http://plexus.codehaus.org/redback/taglib-1.0" prefix="redback" %> |
| |
| <s:i18n name="localization.Continuum"> |
| <s:if test="projects.size() > 0"> |
| |
| <h3><s:text name="projectGroup.buildsStatut.title"/></h3> |
| <table> |
| <tr> |
| <td> |
| <s:text name="projectGroup.buildsStatut.success"/> : <s:property value="groupSummary.numSuccesses"/> |
| <img src="<s:url value='/images/icon_success_sml.gif' includeParams="none"/>" alt="<s:text name="projectGroup.buildsStatut.success"/>"> |
| <s:text name="projectGroup.buildsStatut.errors"/> : <s:property value="groupSummary.numErrors"/> |
| <img src="<s:url value='/images/icon_error_sml.gif' includeParams="none"/>" alt="<s:text name="projectGroup.buildsStatut.errors"/>"> |
| <s:text name="projectGroup.buildsStatut.failures"/> : <s:property value="groupSummary.numFailures"/> |
| <img src="<s:url value='/images/icon_warning_sml.gif' includeParams="none"/>" alt="<s:text name="projectGroup.buildsStatut.failures"/>"> |
| <td> |
| </tr> |
| </table> |
| |
| <h3><s:text name="projectGroup.projects.title"/></h3> |
| |
| <s:form id="projectsForm" action="projectsList" theme="simple"> |
| <s:hidden name="methodToCall" value="" /> |
| <s:hidden name="buildDefinitionId" value="-1" /> |
| <s:hidden name="projectGroupId" /> |
| <ec:table items="projects" |
| var="project" |
| autoIncludeParameters="false" |
| showExports="false" |
| showPagination="false" |
| showStatusBar="false" |
| sortable="false" |
| filterable="false"> |
| <ec:row highlightRow="true"> |
| |
| <%-- needed to access project in included pages --%> |
| <s:set var="project" value="#attr['project']" scope="request"/> |
| |
| <%-- placed here for reusability --%> |
| <s:set var="projectIdle" value="!#attr['project'].inBuildingQueue && (#attr['project'].state in {1, 2, 3, 4, 7} || #attr['project'].state > 8)" scope="request"/> |
| |
| <redback:ifAuthorized permission="continuum-modify-group" resource="${projectGroupName}"> |
| <ec:column alias="selectedProjects" title=" " style="width:5px" filterable="false" sortable="false" width="1%" headerCell="selectAll"> |
| <input type="checkbox" name="selectedProjects" value="${project.id}" /> |
| </ec:column> |
| </redback:ifAuthorized> |
| <ec:column property="state" title=" " width="1%" cell="org.apache.maven.continuum.web.view.StateCell"/> |
| <ec:column property="name" title="summary.projectTable.name" width="50%"> |
| <s:url id="projectUrl" action="projectView" namespace="/" includeParams="none"> |
| <s:param name="projectId" value="#attr['project'].id"/> |
| </s:url> |
| <s:a href="%{projectUrl}"><s:property value="#attr['project'].name"/></s:a> |
| </ec:column> |
| <ec:column property="version" title="summary.projectTable.version" width="12%"/> |
| <ec:column property="buildNumber" title="summary.projectTable.build" width="2%" style="text-align: center"> |
| <s:if test="#attr['project'].buildNumber > 0 && #attr['project'].buildInSuccessId > 0"> |
| <redback:ifAuthorized permission="continuum-view-group" resource="${projectGroupName}"> |
| <s:url id="buildResult" action="buildResult"> |
| <s:param name="projecGroupId" value="#attr['project'].projectGroupId"/> |
| <s:param name="projectId" value="#attr['project'].id"/> |
| <s:param name="projectName" value="#attr['project'].name"/> |
| <s:param name="buildId" value="#attr['project'].buildInSuccessId"/> |
| </s:url> |
| <s:a href="%{buildResult}"><s:property value="#attr['project'].buildNumber"/></s:a> |
| </redback:ifAuthorized> |
| <redback:elseAuthorized> |
| <s:property value="#attr['project'].buildNumber"/> |
| </redback:elseAuthorized> |
| </s:if> |
| <s:elseif test="#attr['project'].buildNumber > 0 && #attr['project'].buildInSuccessId < 0}"> |
| <s:property value="#attr['project'].buildNumber"/> |
| </s:elseif> |
| <s:else> |
| |
| </s:else> |
| </ec:column> |
| <ec:column property="lastBuildDateTime" title="summary.projectTable.lastBuildDateTime" width="30%" cell="date"/> |
| <ec:column property="buildNowAction" title=" " width="1%"> |
| <s:if test="#attr['project'].inBuildingQueue"> |
| <img src="<s:url value='/images/inqueue.gif' includeParams="none"/>" alt="<s:text name="legend.queuedBuild"/>" title="<s:text name="legend.queuedBuild"/>" border="0"> |
| </s:if> |
| <s:else> |
| <redback:ifAuthorized permission="continuum-build-group" resource="${projectGroupName}"> |
| <s:if test="#attr['projectIdle']"> |
| <s:url id="buildProjectUrl" action="buildProjectViaGroup" namespace="/" includeParams="none"> |
| <s:param name="projectId" value="#attr['project'].id"/> |
| <s:param name="projectGroupId" value="#attr['project'].projectGroupId"/> |
| <s:param name="fromGroupPage" value="true"/> |
| </s:url> |
| <s:a href="%{buildProjectUrl}"> |
| <img src="<s:url value='/images/buildnow.gif' includeParams="none"/>" alt="<s:text name="legend.buildNow"/>" title="<s:text name="legend.buildNow"/>" border="0"> |
| </s:a> |
| </s:if> |
| <s:else> |
| <s:url id="cancelBuildProjectUrl" action="cancelBuild" namespace="/" includeParams="none"> |
| <s:param name="projectId" value="#attr['project'].id"/> |
| <s:param name="projectGroupId" value="#attr['project'].projectGroupId"/> |
| </s:url> |
| <s:if test="#attr['project'].state != 8"> |
| <s:a href="%{cancelBuildProjectUrl}"> |
| <img src="<s:url value='/images/cancelbuild.gif' includeParams="none"/>" alt="<s:text name="legend.cancelBuild"/>" title="<s:text name="legend.cancelBuild"/>" border="0"> |
| </s:a> |
| </s:if> |
| <s:else> |
| <img src="<s:url value='/images/cancelbuild_disabled.gif' includeParams="none"/>" alt="<s:text name="legend.cancelBuild"/>" title="<s:text name="legend.cancelBuild"/>" border="0"> |
| </s:else> |
| </s:else> |
| </redback:ifAuthorized> |
| <redback:elseAuthorized> |
| <s:if test="#attr['projectIdle']"> |
| <img src="<s:url value='/images/buildnow_disabled.gif' includeParams="none"/>" alt="<s:text name="legend.buildNow"/>" title="<s:text name="legend.buildNow"/>" border="0"> |
| </s:if> |
| <s:else> |
| <img src="<s:url value='/images/cancelbuild_disabled.gif' includeParams="none"/>" alt="<s:text name="legend.cancelBuild"/>" title="<s:text name="legend.cancelBuild"/>" border="0"> |
| </s:else> |
| </redback:elseAuthorized> |
| </s:else> |
| </ec:column> |
| <ec:column property="buildHistoryAction" title=" " width="1%"> |
| <redback:ifAuthorized permission="continuum-view-group" resource="${projectGroupName}"> |
| <s:if test="#attr['project'].latestBuildId > 0"> |
| <s:url id="buildResultsUrl" action="buildResults" namespace="/"> |
| <s:param name="projectId" value="#attr['project'].id"/> |
| <s:param name="projectName" value="#attr['project'].name"/> |
| </s:url> |
| <s:a href="%{buildResultsUrl}"><img src="<s:url value='/images/buildhistory.gif' includeParams="none"/>" alt="<s:text name="legend.buildHistory"/>" title="<s:text name="legend.buildHistory"/>" border="0"></s:a> |
| </s:if> |
| <s:else> |
| <img src="<s:url value='/images/buildhistory_disabled.gif' includeParams="none"/>" alt="<s:text name="legend.buildHistory"/>" title="<s:text name="legend.buildHistory"/>" border="0"> |
| </s:else> |
| </redback:ifAuthorized> |
| <redback:elseAuthorized> |
| <img src="<s:url value='/images/buildhistory_disabled.gif' includeParams="none"/>" alt="<s:text name="legend.buildHistory"/>" title="<s:text name="legend.buildHistory"/>" border="0"> |
| </redback:elseAuthorized> |
| </ec:column> |
| <ec:column property="workingCopyAction" title=" " width="1%"> |
| <redback:ifAuthorized permission="continuum-view-group" resource="${projectGroupName}"> |
| <s:if test="#attr['project'].state in {10, 2, 3, 4, 6}"> |
| <s:url id="workingCopyUrl" action="workingCopy" namespace="/"> |
| <s:param name="projectId" value="#attr['project'].id"/> |
| </s:url> |
| <s:a href="%{workingCopyUrl}"><img src="<s:url value='/images/workingcopy.gif' includeParams="none"/>" alt="<s:text name="legend.workingCopy"/>" title="<s:text name="legend.workingCopy"/>" border="0"></s:a> |
| </s:if> |
| <s:else> |
| <img src="<s:url value='/images/workingcopy_disabled.gif' includeParams="none"/>" alt="<s:text name="legend.workingCopy"/>" title="<s:text name="legend.workingCopy"/>" border="0"> |
| </s:else> |
| </redback:ifAuthorized> |
| <redback:elseAuthorized> |
| <img src="<s:url value='/images/workingcopy_disabled.gif' includeParams="none"/>" alt="<s:text name="legend.workingCopy"/>" title="<s:text name="legend.workingCopy"/>" border="0"> |
| </redback:elseAuthorized> |
| </ec:column> |
| <ec:column property="releaseAction" title=" " width="1%" sortable="false"> |
| <redback:ifAuthorized permission="continuum-build-group" resource="${projectGroupName}"> |
| <s:if test="#attr['project'].state == 2 && #attr['project'].projectType == 'maven2'"> |
| <s:url id="releaseProjectUrl" action="releasePromptGoal" namespace="/"> |
| <s:param name="projectId" value="#attr['project'].id"/> |
| </s:url> |
| <s:a href="%{releaseProjectUrl}"> |
| <img src="<s:url value='/images/releaseproject.gif' includeParams="none"/>" alt="<s:text name="legend.release"/>" title="<s:text name="legend.release"/>" border="0"/> |
| </s:a> |
| </s:if> |
| <s:else> |
| <img src="<s:url value='/images/releaseproject_disabled.gif' includeParams="none"/>" alt="<s:text name="legend.release"/>" title="<s:text name="legend.release"/>" border="0"/> |
| </s:else> |
| </redback:ifAuthorized> |
| <redback:elseAuthorized> |
| <img src="<s:url value='/images/releaseproject_disabled.gif' includeParams="none"/>" alt="<s:text name="legend.release"/>" title="<s:text name="legend.release"/>" border="0"> |
| </redback:elseAuthorized> |
| </ec:column> |
| <ec:column property="deleteAction" title=" " width="1%" sortable="false"> |
| <redback:ifAuthorized permission="continuum-modify-group" resource="${projectGroupName}"> |
| <s:if test="#attr['projectIdle']"> |
| <s:set var="tname" value="'delProjectToken' + #attr['project'].id" scope="page"/> |
| <s:token name="%{#attr['tname']}"/> |
| <s:url id="deleteProjectUrl" action="deleteProject_default" namespace="/"> |
| <s:param name="projectId" value="#attr['project'].id"/> |
| <s:param name="struts.token.name" value="#attr['tname']"/> |
| <s:param name="%{#attr['tname']}" value="#session['struts.tokens.' + #attr['tname']]"/> |
| </s:url> |
| <s:a href="%{deleteProjectUrl}"> |
| <img src="<s:url value='/images/delete.gif' includeParams="none"/>" alt="<s:text name="delete"/>" title="<s:text name="delete"/>" border="0"> |
| </s:a> |
| </s:if> |
| <s:else> |
| <img src="<s:url value='/images/delete_disabled.gif' includeParams="none"/>" alt="<s:text name="delete"/>" title="<s:text name="delete"/>" border="0"> |
| </s:else> |
| </redback:ifAuthorized> |
| <redback:elseAuthorized> |
| <img src="<s:url value='/images/delete_disabled.gif' includeParams="none"/>" alt="<s:text name="delete"/>" title="<s:text name="delete"/>" border="0"> |
| </redback:elseAuthorized> |
| </ec:column> |
| </ec:row> |
| </ec:table> |
| <s:if test="projects.size() > 0"> |
| <div class="functnbar3"> |
| <table> |
| <tbody> |
| <tr> |
| <td> |
| <redback:ifAuthorized permission="continuum-modify-group" resource="${projectGroupName}"> |
| <script> |
| function handleBuild(projectsForm) { |
| projectsForm.methodToCall.value = 'build'; |
| projectsForm.submit(); |
| } |
| function handleCancel(projectsForm) { |
| projectsForm.action = '<s:url action="cancelBuilds" />'; |
| projectsForm.submit(); |
| } |
| function handleRemove(projectsForm) { |
| projectsForm.methodToCall.value = 'confirmRemove'; |
| projectsForm.submit(); |
| } |
| </script> |
| <s:select theme="simple" name="buildDef" list="buildDefinitions" |
| listKey="value" listValue="key" headerKey="-1" headerValue="%{getText('projectGroup.buildDefinition.label')}" |
| onchange="$('projectsForm').buildDefinitionId.value=$('buildDef').value" /> |
| <s:submit type="button" value="%{getText('projectGroup.buildProjects')}" onclick="handleBuild($('projectsForm'))"/> |
| <s:submit type="button" value="%{getText('projectGroup.cancelBuilds')}" onclick="handleCancel($('projectsForm'))" /> |
| <s:submit type="button" value="%{getText('projectGroup.deleteProjects')}" onclick="handleRemove($('projectsForm'))" /> |
| </redback:ifAuthorized> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| </s:if> |
| </s:form> |
| </s:if> |
| </s:i18n> |