| 26 --%> |
26 --%> |
| 27 <%@page pageEncoding="UTF-8" %> |
27 <%@page pageEncoding="UTF-8" %> |
| 28 <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> |
28 <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> |
| 29 <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> |
29 <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> |
| 30 |
30 |
| 31 <jsp:useBean id="project" type="de.uapcore.lightpit.entities.Project" scope="request" /> |
31 <jsp:useBean id="viewmodel" type="de.uapcore.lightpit.viewmodel.ProjectView" scope="request" /> |
| 32 <jsp:useBean id="versions" type="java.util.List<de.uapcore.lightpit.entities.Version>" scope="request"/> |
|
| 33 <jsp:useBean id="statsAffected" type="java.util.List<de.uapcore.lightpit.entities.VersionStatistics>" scope="request"/> |
|
| 34 <jsp:useBean id="statsScheduled" type="java.util.List<de.uapcore.lightpit.entities.VersionStatistics>" scope="request"/> |
|
| 35 <jsp:useBean id="statsResolved" type="java.util.List<de.uapcore.lightpit.entities.VersionStatistics>" scope="request"/> |
|
| 36 <jsp:useBean id="issueStatusEnum" type="de.uapcore.lightpit.entities.IssueStatus[]" scope="request"/> |
|
| 37 <jsp:useBean id="issueCategoryEnum" type="de.uapcore.lightpit.entities.IssueCategory[]" scope="request"/> |
|
| 38 <jsp:useBean id="statsHideZeros" type="java.lang.Boolean" scope="request"/> |
|
| 39 |
32 |
| 40 <div id="project-attributes"> |
33 <c:set var="project" scope="page" value="${viewmodel.project}"/> |
| 41 <div class="row"> |
34 <%@include file="../jspf/project-header.jsp"%> |
| 42 <div class="caption"><fmt:message key="name"/>:</div> |
|
| 43 <div><c:out value="${project.name}"/></div> |
|
| 44 <div class="caption"><fmt:message key="description"/>:</div> |
|
| 45 <div><c:out value="${project.description}"/></div> |
|
| 46 </div> |
|
| 47 <div class="row"> |
|
| 48 <div class="caption"><fmt:message key="owner"/>:</div> |
|
| 49 <div> |
|
| 50 <c:if test="${not empty project.owner}"><c:out value="${project.owner.displayname}"/></c:if> |
|
| 51 </div> |
|
| 52 <div class="caption"><fmt:message key="repoUrl"/>:</div> |
|
| 53 <div> |
|
| 54 <c:if test="${not empty project.repoUrl}"> |
|
| 55 <a target="_blank" href="<c:out value="${project.repoUrl}"/>"><c:out |
|
| 56 value="${project.repoUrl}"/></a> |
|
| 57 </c:if> |
|
| 58 </div> |
|
| 59 </div> |
|
| 60 </div> |
|
| 61 |
35 |
| 62 <div id="tool-area"> |
36 <div id="tool-area"> |
| 63 <a href="./projects/versions/edit" class="button"><fmt:message key="button.version.create"/></a> |
37 <a href="./projects/versions/edit" class="button"><fmt:message key="button.version.create"/></a> |
| 64 <a href="./projects/issues/edit" class="button"><fmt:message key="button.issue.create"/></a> |
38 <a href="./projects/issues/edit?pid=${project.id}" class="button"><fmt:message key="button.issue.create"/></a> |
| 65 <a href="./projects/issues/" class="button"><fmt:message key="button.issue.list"/></a> |
|
| 66 <c:if test="${not statsHideZeros}"> |
|
| 67 <a href="./projects/view?reduced=1" class="button"><fmt:message key="button.stats.hidezeros"/></a> |
|
| 68 </c:if> |
|
| 69 <c:if test="${statsHideZeros}"> |
|
| 70 <a href="./projects/view?reduced=0" class="button"><fmt:message key="button.stats.showzeros"/></a> |
|
| 71 </c:if> |
|
| 72 </div> |
39 </div> |
| 73 |
40 |
| 74 <div id="version-stats"> |
41 <h2><fmt:message key="progress" /></h2> |
| 75 <c:forEach var="version" items="${versions}" varStatus="iter"> |
42 |
| |
43 <c:set var="summary" value="${viewmodel.issuesTotal}" /> |
| |
44 <%@include file="../jspf/issue-summary.jsp"%> |
| |
45 |
| |
46 <h2><fmt:message key="issue.without-version" /></h2> |
| |
47 |
| |
48 <c:set var="issues" value="${viewmodel.issuesWithoutVersion}"/> |
| |
49 <c:set var="summary" value="${viewmodel.issuesWithoutVersionTotal}" /> |
| |
50 <%@include file="../jspf/issue-summary.jsp"%> |
| |
51 <%@include file="../jspf/issue-list.jsp"%> |
| |
52 |
| |
53 <c:forEach var="versionInfo" items="${viewmodel.versionInfos}"> |
| 76 <h2> |
54 <h2> |
| 77 <fmt:message key="version.label" /> <c:out value="${version.name}" /> - <fmt:message key="version.status.${version.status}"/> |
55 <fmt:message key="version.label" /> <c:out value="${versionInfo.version.name}" /> - <fmt:message key="version.status.${versionInfo.version.status}"/> |
| 78 <a href="./projects/versions/edit?id=${version.id}">✎</a> |
56 (<a href="./projects/versions/view?vid=${versionInfo.version.id}">open</a>) |
| 79 </h2> |
57 </h2> |
| 80 |
58 |
| 81 <h3><fmt:message key="version.statistics.affected" /></h3> |
59 <h3><fmt:message key="issues.reported"/> </h3> |
| 82 <c:set var="stats" value="${statsAffected[iter.index]}" /> |
60 <c:set var="summary" value="${versionInfo.reportedTotal}"/> |
| 83 <%@include file="../jspf/version-stats.jsp" %> |
61 <c:set var="issues" value="${versionInfo.reported}"/> |
| |
62 <%@include file="../jspf/issue-summary.jsp"%> |
| 84 |
63 |
| 85 <h3><fmt:message key="version.statistics.scheduled" /></h3> |
64 <h3><fmt:message key="issues.scheduled"/> </h3> |
| 86 <c:set var="stats" value="${statsScheduled[iter.index]}" /> |
65 <c:set var="summary" value="${versionInfo.scheduledTotal}"/> |
| 87 <%@include file="../jspf/version-stats.jsp" %> |
66 <c:set var="issues" value="${versionInfo.scheduled}"/> |
| |
67 <%@include file="../jspf/issue-summary.jsp"%> |
| 88 |
68 |
| 89 <h3><fmt:message key="version.statistics.resolved" /></h3> |
69 <h3><fmt:message key="issues.resolved"/> </h3> |
| 90 <c:set var="stats" value="${statsResolved[iter.index]}" /> |
70 <c:set var="summary" value="${versionInfo.resolvedTotal}"/> |
| 91 <%@include file="../jspf/version-stats.jsp" %> |
71 <c:set var="issues" value="${versionInfo.resolved}"/> |
| |
72 <%@include file="../jspf/issue-summary.jsp"%> |
| 92 </c:forEach> |
73 </c:forEach> |
| 93 </div> |
|