153 <a href="${issuesHref}${issue.id}/edit" class="button submit"> |
153 <a href="${issuesHref}${issue.id}/edit" class="button submit"> |
154 <fmt:message key="button.issue.edit"/> |
154 <fmt:message key="button.issue.edit"/> |
155 </a> |
155 </a> |
156 </div> |
156 </div> |
157 |
157 |
158 <hr class="comments-separator"/> |
158 <hr class="issue-view-separator"/> |
|
159 <h2> |
|
160 <fmt:message key="issue.relations"/> |
|
161 </h2> |
|
162 <form id="relation-form" action="${issuesHref}${issue.id}/relation" method="post"> |
|
163 <c:if test="${not empty viewmodel.relationError}"> |
|
164 <div class="error-box"> |
|
165 <fmt:message key="${viewmodel.relationError}"/> |
|
166 </div> |
|
167 </c:if> |
|
168 <table class="issue-view relation-editor fullwidth"> |
|
169 <colgroup> |
|
170 <col> |
|
171 <col> |
|
172 <col class="fullwidth"> |
|
173 </colgroup> |
|
174 <thead> |
|
175 <tr> |
|
176 <th></th> |
|
177 <th><fmt:message key="issue.relations.type"/></th> |
|
178 <th><fmt:message key="issue.relations.issue"/></th> |
|
179 </tr> |
|
180 </thead> |
|
181 <tbody> |
|
182 <tr> |
|
183 <td> |
|
184 <button type="submit"><fmt:message key="button.add"/></button> |
|
185 </td> |
|
186 <td> |
|
187 <select name="type"> |
|
188 <c:forEach var="type" items="${viewmodel.relationTypes}"> |
|
189 <option value="${type}"><fmt:message key="issue.relations.type.${type}"/></option> |
|
190 <c:if test="${not type.bidi}"> |
|
191 <option value="!${type}"><fmt:message key="issue.relations.type.${type}.rev"/></option> |
|
192 </c:if> |
|
193 </c:forEach> |
|
194 </select> |
|
195 </td> |
|
196 <td> |
|
197 <input name="issue" list="linkable-issues"> |
|
198 <datalist id="linkable-issues"> |
|
199 <c:forEach var="linkableIssue" items="${viewmodel.linkableIssues}"> |
|
200 <option value="#${linkableIssue.id} - <c:out value="${linkableIssue.subject}"/> (<fmt:message key="issue.status.${linkableIssue.status}" />)"></option> |
|
201 </c:forEach> |
|
202 </datalist> |
|
203 </td> |
|
204 </tr> |
|
205 <c:forEach var="relation" items="${viewmodel.currentRelations}"> |
|
206 <tr> |
|
207 <td> |
|
208 <a href="${issuesHref}${issue.id}/removeRelation?to=${relation.to.id}&type=${relation.type}&reverse=${relation.reverse}" class="button submit"> |
|
209 <fmt:message key="button.remove"/> |
|
210 </a> |
|
211 </td> |
|
212 <td><fmt:message key="issue.relations.type.${relation.type}${relation.reverse?'.rev':''}"/></td> |
|
213 <td> |
|
214 <a href="${issuesHref}${relation.to.id}"> |
|
215 #${relation.to.id} - <c:out value="${relation.to.subject}"/> (<fmt:message key="issue.status.${relation.to.status}" />) |
|
216 </a> |
|
217 </td> |
|
218 </tr> |
|
219 </c:forEach> |
|
220 </tbody> |
|
221 </table> |
|
222 </form> |
|
223 |
|
224 <hr class="issue-view-separator"/> |
159 <h2> |
225 <h2> |
160 <fmt:message key="issue.comments"/> |
226 <fmt:message key="issue.comments"/> |
161 <c:if test="${not empty viewmodel.comments}"> |
227 <c:if test="${not empty viewmodel.comments}"> |
162 (${fn:length(viewmodel.comments)}) |
228 (${fn:length(viewmodel.comments)}) |
163 </c:if> |
229 </c:if> |