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

Tue, 03 Aug 2021 15:10:43 +0200

author
Mike Becker <universe@uap-core.de>
date
Tue, 03 Aug 2021 15:10:43 +0200
changeset 212
c50da26a6d31
parent 207
479dd7993ef9
child 214
69647ddb57f2
permissions
-rw-r--r--

#154 improves issue view

universe@75 1 <%--
universe@75 2 DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
universe@75 3
universe@180 4 Copyright 2021 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@184 32
universe@184 33 <c:set var="project" scope="page" value="${viewmodel.project}"/>
universe@184 34 <c:set var="component" scope="page" value="${viewmodel.component}"/>
universe@184 35 <c:set var="version" scope="page" value="${viewmodel.version}"/>
universe@86 36 <c:set var="issue" scope="page" value="${viewmodel.issue}" />
universe@75 37
universe@184 38 <c:set var="issuesHref" scope="page" value="./projects/${project.node}/issues/${empty version ? '-' : version.node }/${empty component ? '-' : component.node}/"/>
universe@184 39
universe@212 40 <table class="issue-view fullwidth">
universe@146 41 <colgroup>
universe@146 42 <col>
universe@212 43 <col style="width: 50%">
universe@212 44 <col>
universe@212 45 <col style="width: 50%">
universe@146 46 </colgroup>
universe@146 47 <tbody>
universe@146 48 <tr>
universe@146 49 <th><fmt:message key="issue.id"/></th>
universe@146 50 <td>${issue.id}</td>
universe@212 51 <td colspan="2"></td>
universe@146 52 </tr>
universe@146 53 <tr>
universe@146 54 <th><fmt:message key="issue.created"/></th>
universe@156 55 <td>
universe@156 56 <c:set var="dateValue" value="${issue.created}"/>
universe@156 57 <%@include file="../jspf/date-with-tooltip.jspf"%>
universe@156 58 </td>
universe@146 59 <th><fmt:message key="issue.updated"/></th>
universe@156 60 <td>
universe@156 61 <c:set var="dateValue" value="${issue.updated}"/>
universe@156 62 <%@include file="../jspf/date-with-tooltip.jspf"%>
universe@156 63 </td>
universe@146 64 </tr>
universe@146 65 <tr>
universe@212 66 <th><fmt:message key="project"/></th>
universe@212 67 <td>
universe@212 68 <c:out value="${issue.project.name}" />
universe@212 69 </td>
universe@181 70 <th><fmt:message key="component"/></th>
universe@146 71 <td>
universe@146 72 <c:if test="${not empty issue.component}">
universe@146 73 <c:out value="${issue.component.name}"/>
universe@146 74 </c:if>
universe@146 75 <c:if test="${empty issue.component}">
universe@146 76 <fmt:message key="placeholder.null-component"/>
universe@146 77 </c:if>
universe@146 78 </td>
universe@146 79 </tr>
universe@146 80 <tr>
universe@146 81 <th><fmt:message key="issue.category"/></th>
universe@146 82 <td>
universe@146 83 <div class="issue-tag ${issue.category}" style="width: auto">
universe@146 84 <fmt:message key="issue.category.${issue.category}" />
universe@146 85 </div>
universe@146 86 </td>
universe@146 87 <th><fmt:message key="issue.status"/></th>
universe@146 88 <td>
universe@150 89 <div class="issue-tag phase-${issue.status.phase.number}" style="width: auto">
universe@146 90 <fmt:message key="issue.status.${issue.status}" />
universe@146 91 </div>
universe@146 92 </td>
universe@146 93 </tr>
universe@146 94 <tr>
universe@212 95 <th><fmt:message key="issue.resolved-versions"/></th>
universe@212 96 <td>
universe@212 97 <c:forEach var="version" items="${issue.resolvedVersions}">
universe@212 98 <c:out value="${version.name}"/>
universe@212 99 </c:forEach>
universe@212 100 </td>
universe@212 101 <th><fmt:message key="issue.affected-versions"/></th>
universe@212 102 <td>
universe@212 103 <c:forEach var="version" items="${issue.affectedVersions}">
universe@212 104 <c:out value="${version.name}"/>
universe@212 105 </c:forEach>
universe@212 106 </td>
universe@212 107 </tr>
universe@212 108 </tbody>
universe@212 109 </table>
universe@212 110 <table class="issue-view fullwidth">
universe@212 111 <colgroup>
universe@212 112 <col>
universe@212 113 <col style="width: 100%">
universe@212 114 </colgroup>
universe@212 115 <tbody>
universe@212 116 <tr>
universe@146 117 <th><fmt:message key="issue.subject"/></th>
universe@146 118 <td><c:out value="${issue.subject}"/></td>
universe@146 119 </tr>
universe@146 120 <tr>
universe@146 121 <th class="vtop"><fmt:message key="issue.description"/></th>
universe@146 122 <td>
universe@162 123 <div class="markdown-styled">
universe@162 124 ${issue.description}
universe@162 125 </div>
universe@146 126 </td>
universe@146 127 </tr>
universe@146 128 <tr>
universe@146 129 <th><fmt:message key="issue.assignee"/></th>
universe@146 130 <td>
universe@146 131 <c:if test="${not empty issue.assignee}">
universe@146 132 <c:out value="${issue.assignee.displayname}"/>
universe@146 133 </c:if>
universe@146 134 <c:if test="${empty issue.assignee}">
universe@146 135 <fmt:message key="placeholder.null-assignee" />
universe@146 136 </c:if>
universe@146 137 </td>
universe@146 138 </tr>
universe@146 139 <tr>
universe@146 140 <th><fmt:message key="issue.eta"/></th>
universe@146 141 <td><fmt:formatDate value="${issue.eta}" /></td>
universe@146 142 </tr>
universe@146 143 </tbody>
universe@146 144 </table>
universe@212 145 <div class="hright">
universe@212 146 <a href="${issuesHref}" class="button">
universe@212 147 <fmt:message key="button.back"/>
universe@212 148 </a>
universe@212 149 <a href="${issuesHref}${issue.id}/edit" class="button submit">
universe@212 150 <fmt:message key="button.issue.edit"/>
universe@212 151 </a>
universe@212 152 </div>
universe@146 153
universe@124 154 <hr class="comments-separator"/>
universe@124 155 <h2><fmt:message key="issue.comments"/></h2>
universe@124 156 <c:if test="${viewmodel.issue.id ge 0}">
universe@184 157 <form id="comment-form" action="${issuesHref}${issue.id}/comment" method="post">
universe@124 158 <table class="formtable fullwidth">
universe@124 159 <tbody>
universe@124 160 <tr>
universe@125 161 <td><textarea rows="5" name="comment" required></textarea></td>
universe@124 162 </tr>
universe@124 163 </tbody>
universe@124 164 <tfoot>
universe@124 165 <tr>
universe@124 166 <td>
universe@124 167 <button type="submit"><fmt:message key="button.comment"/></button>
universe@124 168 </td>
universe@124 169 </tr>
universe@124 170 </tfoot>
universe@124 171 </table>
universe@124 172 </form>
universe@124 173 <c:forEach var="comment" items="${viewmodel.comments}">
universe@124 174 <div class="comment">
universe@207 175 <div class="comment-author">
universe@124 176 <c:if test="${not empty comment.author}">
universe@165 177 <c:if test="${not empty comment.author.mail}">
universe@207 178 <a class="comment-author-name" href="mailto:${comment.author.mail}">
universe@165 179 </c:if>
universe@124 180 <c:out value="${comment.author.displayname}"/>
universe@165 181 <c:if test="${not empty comment.author.mail}">
universe@165 182 </a>
universe@165 183 </c:if>
universe@207 184 <c:if test="${comment.author.username eq pageContext.request.remoteUser}">
universe@207 185 <a class="comment-edit-icon" onclick="showCommentEditor(${comment.id})">&#x270e;</a>
universe@207 186 </c:if>
universe@124 187 </c:if>
universe@124 188 <c:if test="${empty comment.author}">
universe@124 189 <fmt:message key="issue.comments.anonauthor"/>
universe@124 190 </c:if>
universe@124 191 </div>
universe@124 192 <div class="smalltext">
universe@124 193 <fmt:formatDate type="BOTH" value="${comment.created}" />
universe@124 194 <c:if test="${comment.updateCount gt 0}">
universe@207 195 <span class="comment-edit-info">
universe@207 196 (<fmt:message key="issue.comments.lastupdate"/> <fmt:formatDate type="BOTH" value="${comment.updated}" />, ${comment.updateCount} <fmt:message key="issue.comments.updateCount"/>)
universe@207 197 </span>
universe@124 198 </c:if>
universe@124 199 </div>
universe@207 200 <div id="comment-view-${comment.id}" class="medskip markdown-styled">
universe@207 201 ${comment.commentFormatted}
universe@207 202 </div>
universe@207 203 <div id="comment-editor-${comment.id}" style="display: none">
universe@207 204 <form id="comment-form-${comment.id}" action="${issuesHref}${issue.id}/comment" method="post">
universe@207 205 <input type="hidden" name="commentid" value="${comment.id}">
universe@207 206 <table class="formtable fullwidth">
universe@207 207 <tbody>
universe@207 208 <tr>
universe@207 209 <td>
universe@207 210 <textarea rows="5" name="comment" required><c:out value="${comment.comment}"/></textarea>
universe@207 211 </td>
universe@207 212 </tr>
universe@207 213 </tbody>
universe@207 214 <tfoot>
universe@207 215 <tr>
universe@207 216 <td>
universe@207 217 <button type="submit"><fmt:message key="button.comment.edit"/></button>
universe@207 218 </td>
universe@207 219 </tr>
universe@207 220 </tfoot>
universe@207 221 </table>
universe@207 222 </form>
universe@124 223 </div>
universe@124 224 </div>
universe@124 225 </c:forEach>
universe@124 226 </c:if>
universe@124 227

mercurial