src/main/webapp/WEB-INF/jsp/issue-view.jsp

Sat, 31 Oct 2020 10:54:20 +0100

author
Mike Becker <universe@uap-core.de>
date
Sat, 31 Oct 2020 10:54:20 +0100
changeset 156
c5d6820d884e
parent 150
822b7e3d064d
child 162
2adc8623dd89
permissions
-rw-r--r--

fixes #33 - display time tooltip for created/update dates

universe@75 1 <%--
universe@75 2 DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
universe@75 3
universe@75 4 Copyright 2018 Mike Becker. All rights reserved.
universe@75 5
universe@75 6 Redistribution and use in source and binary forms, with or without
universe@75 7 modification, are permitted provided that the following conditions are met:
universe@75 8
universe@75 9 1. Redistributions of source code must retain the above copyright
universe@75 10 notice, this list of conditions and the following disclaimer.
universe@75 11
universe@75 12 2. Redistributions in binary form must reproduce the above copyright
universe@75 13 notice, this list of conditions and the following disclaimer in the
universe@75 14 documentation and/or other materials provided with the distribution.
universe@75 15
universe@75 16 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
universe@75 17 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
universe@75 18 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
universe@75 19 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
universe@75 20 FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
universe@75 21 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
universe@75 22 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
universe@75 23 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
universe@75 24 OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
universe@75 25 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
universe@75 26 --%>
universe@75 27 <%@page pageEncoding="UTF-8" %>
universe@75 28 <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
universe@75 29 <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
universe@75 30
universe@146 31 <jsp:useBean id="viewmodel" type="de.uapcore.lightpit.viewmodel.IssueDetailView" scope="request"/>
universe@86 32 <c:set var="issue" scope="page" value="${viewmodel.issue}" />
universe@75 33
universe@146 34 <table class="formtable fullwidth">
universe@146 35 <colgroup>
universe@146 36 <col>
universe@146 37 <col style="width: 100%">
universe@146 38 </colgroup>
universe@146 39 <tbody>
universe@146 40 <c:if test="${viewmodel.issue.id ge 0}">
universe@146 41 <tr>
universe@146 42 <th><fmt:message key="issue.id"/></th>
universe@146 43 <td>${issue.id}</td>
universe@146 44 </tr>
universe@146 45 </c:if>
universe@146 46 <tr>
universe@146 47 <th><fmt:message key="issue.project"/></th>
universe@146 48 <td>
universe@146 49 <c:out value="${issue.project.name}" />
universe@146 50 </td>
universe@146 51 </tr>
universe@146 52 <tr>
universe@146 53 <th><fmt:message key="issue.created"/></th>
universe@156 54 <td>
universe@156 55 <c:set var="dateValue" value="${issue.created}"/>
universe@156 56 <%@include file="../jspf/date-with-tooltip.jspf"%>
universe@156 57 </td>
universe@146 58 </tr>
universe@146 59 <tr>
universe@146 60 <th><fmt:message key="issue.updated"/></th>
universe@156 61 <td>
universe@156 62 <c:set var="dateValue" value="${issue.updated}"/>
universe@156 63 <%@include file="../jspf/date-with-tooltip.jspf"%>
universe@156 64 </td>
universe@146 65 </tr>
universe@146 66 <tr>
universe@146 67 <th><fmt:message key="issue.component"/></th>
universe@146 68 <td>
universe@146 69 <c:if test="${not empty issue.component}">
universe@146 70 <c:out value="${issue.component.name}"/>
universe@146 71 </c:if>
universe@146 72 <c:if test="${empty issue.component}">
universe@146 73 <fmt:message key="placeholder.null-component"/>
universe@146 74 </c:if>
universe@146 75 </td>
universe@146 76 </tr>
universe@146 77 <tr>
universe@146 78 <th><fmt:message key="issue.category"/></th>
universe@146 79 <td>
universe@146 80 <div class="issue-tag ${issue.category}" style="width: auto">
universe@146 81 <fmt:message key="issue.category.${issue.category}" />
universe@146 82 </div>
universe@146 83 </td>
universe@146 84 </tr>
universe@146 85 <tr>
universe@146 86 <th><fmt:message key="issue.status"/></th>
universe@146 87 <td>
universe@150 88 <div class="issue-tag phase-${issue.status.phase.number}" style="width: auto">
universe@146 89 <fmt:message key="issue.status.${issue.status}" />
universe@146 90 </div>
universe@146 91 </td>
universe@146 92 </tr>
universe@146 93 <tr>
universe@146 94 <th><fmt:message key="issue.subject"/></th>
universe@146 95 <td><c:out value="${issue.subject}"/></td>
universe@146 96 </tr>
universe@146 97 <tr>
universe@146 98 <th class="vtop"><fmt:message key="issue.description"/></th>
universe@146 99 <td>
universe@146 100 <textarea readonly rows="10"><c:out value="${issue.description}"/></textarea>
universe@146 101 </td>
universe@146 102 </tr>
universe@146 103 <tr>
universe@146 104 <th><fmt:message key="issue.assignee"/></th>
universe@146 105 <td>
universe@146 106 <c:if test="${not empty issue.assignee}">
universe@146 107 <c:out value="${issue.assignee.displayname}"/>
universe@146 108 </c:if>
universe@146 109 <c:if test="${empty issue.assignee}">
universe@146 110 <fmt:message key="placeholder.null-assignee" />
universe@146 111 </c:if>
universe@146 112 </td>
universe@146 113 </tr>
universe@146 114 <tr>
universe@146 115 <th class="vtop"><fmt:message key="issue.affected-versions"/></th>
universe@146 116 <td>
universe@146 117 <c:forEach var="version" items="${issue.affectedVersions}">
universe@146 118 <c:out value="${version.name}"/>
universe@146 119 </c:forEach>
universe@146 120 </td>
universe@146 121 </tr>
universe@146 122 <tr>
universe@146 123 <th class="vtop"><fmt:message key="issue.resolved-versions"/></th>
universe@146 124 <td>
universe@146 125 <c:forEach var="version" items="${issue.resolvedVersions}">
universe@146 126 <c:out value="${version.name}"/>
universe@146 127 </c:forEach>
universe@146 128 </td>
universe@146 129 </tr>
universe@146 130 <tr>
universe@146 131 <th><fmt:message key="issue.eta"/></th>
universe@146 132 <td><fmt:formatDate value="${issue.eta}" /></td>
universe@146 133 </tr>
universe@146 134 </tbody>
universe@146 135 <tfoot>
universe@146 136 <tr>
universe@146 137 <td colspan="2">
universe@146 138 <%-- TODO: fix #14 --%>
universe@146 139 <a href="./projects/${issue.project.node}/all-components/all-versions/issues/" class="button">
universe@146 140 <fmt:message bundle="${lightpit_bundle}" key="button.cancel"/>
universe@146 141 </a>
universe@146 142 <a href="./projects/${issue.project.node}/issues/${issue.id}/edit" class="button submit">
universe@146 143 <fmt:message key="button.issue.edit"/>
universe@146 144 </a>
universe@146 145 </td>
universe@146 146 </tr>
universe@146 147 </tfoot>
universe@146 148 </table>
universe@146 149
universe@124 150 <hr class="comments-separator"/>
universe@124 151 <h2><fmt:message key="issue.comments"/></h2>
universe@124 152 <c:if test="${viewmodel.issue.id ge 0}">
universe@131 153 <form id="comment-form" action="./projects/commit-issue-comment" method="post">
universe@124 154 <table class="formtable fullwidth">
universe@124 155 <tbody>
universe@124 156 <tr>
universe@125 157 <td><textarea rows="5" name="comment" required></textarea></td>
universe@124 158 </tr>
universe@124 159 </tbody>
universe@124 160 <tfoot>
universe@124 161 <tr>
universe@124 162 <td>
universe@124 163 <input type="hidden" name="issueid" value="${issue.id}"/>
universe@124 164 <button type="submit"><fmt:message key="button.comment"/></button>
universe@124 165 </td>
universe@124 166 </tr>
universe@124 167 </tfoot>
universe@124 168 </table>
universe@124 169 </form>
universe@124 170 <c:forEach var="comment" items="${viewmodel.comments}">
universe@124 171 <div class="comment">
universe@124 172 <div class="caption">
universe@124 173 <c:if test="${not empty comment.author}">
universe@124 174 <c:out value="${comment.author.displayname}"/>
universe@124 175 </c:if>
universe@124 176 <c:if test="${empty comment.author}">
universe@124 177 <fmt:message key="issue.comments.anonauthor"/>
universe@124 178 </c:if>
universe@124 179 </div>
universe@124 180 <div class="smalltext">
universe@124 181 <fmt:formatDate type="BOTH" value="${comment.created}" />
universe@124 182 <c:if test="${comment.updateCount gt 0}">
universe@124 183 <!-- TODO: update count -->
universe@124 184 </c:if>
universe@124 185 </div>
universe@124 186 <div class="medskip">
universe@124 187 <c:out value="${comment.comment}"/>
universe@124 188 </div>
universe@124 189 </div>
universe@124 190 </c:forEach>
universe@124 191 </c:if>
universe@124 192

mercurial