| 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> |