| 23 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
23 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
| 24 OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
24 OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| 25 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
25 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 26 --%> |
26 --%> |
| 27 <%@page pageEncoding="UTF-8" %> |
27 <%@page pageEncoding="UTF-8" %> |
| 28 <%@page import="de.uapcore.lightpit.modules.ProjectsModule" %> |
|
| 29 <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> |
28 <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> |
| 30 <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> |
29 <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> |
| 31 |
30 |
| 32 <c:set scope="page" var="selectedProject" value="${sessionScope[ProjectsModule.SESSION_ATTR_SELECTED_PROJECT]}"/> |
31 <jsp:useBean id="viewmodel" type="de.uapcore.lightpit.viewmodel.ProjectIndexView" scope="request"/> |
| 33 |
32 |
| 34 <jsp:useBean id="projects" type="java.util.List<de.uapcore.lightpit.entities.Project>" scope="request"/> |
33 <c:if test="${empty viewmodel.projects}"> |
| 35 |
|
| 36 <c:if test="${empty projects}"> |
|
| 37 <div class="info-box"> |
34 <div class="info-box"> |
| 38 <fmt:message key="no-projects"/> |
35 <fmt:message key="no-projects"/> |
| 39 </div> |
36 </div> |
| 40 </c:if> |
37 </c:if> |
| 41 |
38 |
| 42 <div id="tool-area"> |
39 <div id="tool-area"> |
| 43 <a href="./projects/edit" class="button"><fmt:message key="button.create"/></a> |
40 <a href="./projects/edit" class="button"><fmt:message key="button.create"/></a> |
| 44 </div> |
41 </div> |
| 45 |
42 |
| 46 <c:if test="${not empty projects}"> |
43 <c:if test="${not empty viewmodel.projects}"> |
| 47 <table id="project-list" class="datatable medskip"> |
44 <table id="project-list" class="datatable medskip"> |
| 48 <colgroup> |
45 <colgroup> |
| 49 <col> |
46 <col> |
| 50 <col width="20%"> |
47 <col width="20%"> |
| 51 <col width="50%"> |
48 <col width="50%"> |
| 52 <col width="10%"> |
49 <col width="6%"> |
| 53 <col width="10%"> |
50 <col width="6%"> |
| 54 <col width="10%"> |
51 <col width="6%"> |
| |
52 <col width="6%"> |
| |
53 <col width="6%"> |
| 55 </colgroup> |
54 </colgroup> |
| 56 <thead> |
55 <thead> |
| 57 <tr> |
56 <tr> |
| 58 <th></th> |
57 <th></th> |
| 59 <th><fmt:message key="name"/></th> |
58 <th><fmt:message key="name"/></th> |
| 60 <th><fmt:message key="repoUrl"/></th> |
59 <th><fmt:message key="repoUrl"/></th> |
| 61 <th><fmt:message key="issues.open"/></th> |
60 <th class="hcenter"><fmt:message key="version.latest"/></th> |
| 62 <th><fmt:message key="issues.active"/></th> |
61 <th class="hcenter"><fmt:message key="version.next"/></th> |
| 63 <th><fmt:message key="issues.done"/></th> |
62 <th class="hcenter"><fmt:message key="issues.open"/></th> |
| |
63 <th class="hcenter"><fmt:message key="issues.active"/></th> |
| |
64 <th class="hcenter"><fmt:message key="issues.done"/></th> |
| 64 </tr> |
65 </tr> |
| 65 </thead> |
66 </thead> |
| 66 <tbody> |
67 <tbody> |
| 67 <c:forEach var="project" items="${projects}"> |
68 <c:forEach var="projectInfo" items="${viewmodel.projects}"> |
| |
69 <c:set var="project" scope="page" value="${projectInfo.project}"/> |
| 68 <tr class="nowrap"> |
70 <tr class="nowrap"> |
| 69 <td style="width: 2em;"><a href="./projects/edit?id=${project.id}">✎</a></td> |
71 <td style="width: 2em;"><a href="./projects/edit?pid=${project.id}">✎</a></td> |
| 70 <td><a href="./projects/view?pid=${project.id}"><c:out value="${project.name}"/></a> |
72 <td><a href="./projects/view?pid=${project.id}"><c:out value="${project.name}"/></a> |
| 71 </td> |
73 </td> |
| 72 <td> |
74 <td> |
| 73 <c:if test="${not empty project.repoUrl}"> |
75 <c:if test="${not empty project.repoUrl}"> |
| 74 <a target="_blank" href="<c:out value="${project.repoUrl}"/>"><c:out |
76 <a target="_blank" href="<c:out value="${project.repoUrl}"/>"><c:out |
| 75 value="${project.repoUrl}"/></a> |
77 value="${project.repoUrl}"/></a> |
| 76 </c:if> |
78 </c:if> |
| 77 </td> |
79 </td> |
| 78 <td>${project.openIssues}</td> |
80 <td class="hright"> |
| 79 <td>${project.activeIssues}</td> |
81 <c:if test="${not empty projectInfo.latestVersion}"> |
| 80 <td>${project.doneIssues}</td> |
82 <a href="./projects/versions/view?vid=${projectInfo.latestVersion.id}"><c:out value="${projectInfo.latestVersion.name}"/></a> |
| |
83 </c:if> |
| |
84 </td> |
| |
85 <td class="hright"> |
| |
86 <c:if test="${not empty projectInfo.nextVersion}"> |
| |
87 <a href="./projects/versions/view?vid=${projectInfo.nextVersion.id}"><c:out value="${projectInfo.nextVersion.name}"/></a> |
| |
88 </c:if> |
| |
89 </td> |
| |
90 <td class="hright">${projectInfo.issueSummary.open}</td> |
| |
91 <td class="hright">${projectInfo.issueSummary.active}</td> |
| |
92 <td class="hright">${projectInfo.issueSummary.done}</td> |
| 81 </tr> |
93 </tr> |
| 82 </c:forEach> |
94 </c:forEach> |
| 83 </tbody> |
95 </tbody> |
| 84 </table> |
96 </table> |
| 85 </c:if> |
97 </c:if> |