1.1 --- a/src/main/webapp/WEB-INF/jsp/issue-view.jsp Fri Dec 30 13:21:09 2022 +0100 1.2 +++ b/src/main/webapp/WEB-INF/jsp/issue-view.jsp Fri Dec 30 19:04:34 2022 +0100 1.3 @@ -155,7 +155,73 @@ 1.4 </a> 1.5 </div> 1.6 1.7 -<hr class="comments-separator"/> 1.8 +<hr class="issue-view-separator"/> 1.9 +<h2> 1.10 + <fmt:message key="issue.relations"/> 1.11 +</h2> 1.12 +<form id="relation-form" action="${issuesHref}${issue.id}/relation" method="post"> 1.13 +<c:if test="${not empty viewmodel.relationError}"> 1.14 + <div class="error-box"> 1.15 + <fmt:message key="${viewmodel.relationError}"/> 1.16 + </div> 1.17 +</c:if> 1.18 +<table class="issue-view relation-editor fullwidth"> 1.19 + <colgroup> 1.20 + <col> 1.21 + <col> 1.22 + <col class="fullwidth"> 1.23 + </colgroup> 1.24 + <thead> 1.25 + <tr> 1.26 + <th></th> 1.27 + <th><fmt:message key="issue.relations.type"/></th> 1.28 + <th><fmt:message key="issue.relations.issue"/></th> 1.29 + </tr> 1.30 + </thead> 1.31 + <tbody> 1.32 + <tr> 1.33 + <td> 1.34 + <button type="submit"><fmt:message key="button.add"/></button> 1.35 + </td> 1.36 + <td> 1.37 + <select name="type"> 1.38 + <c:forEach var="type" items="${viewmodel.relationTypes}"> 1.39 + <option value="${type}"><fmt:message key="issue.relations.type.${type}"/></option> 1.40 + <c:if test="${not type.bidi}"> 1.41 + <option value="!${type}"><fmt:message key="issue.relations.type.${type}.rev"/></option> 1.42 + </c:if> 1.43 + </c:forEach> 1.44 + </select> 1.45 + </td> 1.46 + <td> 1.47 + <input name="issue" list="linkable-issues"> 1.48 + <datalist id="linkable-issues"> 1.49 + <c:forEach var="linkableIssue" items="${viewmodel.linkableIssues}"> 1.50 + <option value="#${linkableIssue.id} - <c:out value="${linkableIssue.subject}"/> (<fmt:message key="issue.status.${linkableIssue.status}" />)"></option> 1.51 + </c:forEach> 1.52 + </datalist> 1.53 + </td> 1.54 + </tr> 1.55 + <c:forEach var="relation" items="${viewmodel.currentRelations}"> 1.56 + <tr> 1.57 + <td> 1.58 + <a href="${issuesHref}${issue.id}/removeRelation?to=${relation.to.id}&type=${relation.type}&reverse=${relation.reverse}" class="button submit"> 1.59 + <fmt:message key="button.remove"/> 1.60 + </a> 1.61 + </td> 1.62 + <td><fmt:message key="issue.relations.type.${relation.type}${relation.reverse?'.rev':''}"/></td> 1.63 + <td> 1.64 + <a href="${issuesHref}${relation.to.id}"> 1.65 + #${relation.to.id} - <c:out value="${relation.to.subject}"/> (<fmt:message key="issue.status.${relation.to.status}" />) 1.66 + </a> 1.67 + </td> 1.68 + </tr> 1.69 + </c:forEach> 1.70 + </tbody> 1.71 +</table> 1.72 +</form> 1.73 + 1.74 +<hr class="issue-view-separator"/> 1.75 <h2> 1.76 <fmt:message key="issue.comments"/> 1.77 <c:if test="${not empty viewmodel.comments}">