From 7ae1fac1236d61c6b60d295bdc06caa654fa8098 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Wed, 05 Mar 2014 11:42:34 -0500 Subject: [PATCH] Allow changing status from edit ticket page --- src/main/java/com/gitblit/wicket/pages/EditTicketPage.java | 22 ++++++++++++++++++++++ src/main/java/com/gitblit/wicket/pages/EditTicketPage.html | 1 + src/main/java/com/gitblit/wicket/pages/TicketPage.java | 5 ++++- 3 files changed, 27 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/gitblit/wicket/pages/EditTicketPage.html b/src/main/java/com/gitblit/wicket/pages/EditTicketPage.html index 424eece..b3c102d 100644 --- a/src/main/java/com/gitblit/wicket/pages/EditTicketPage.html +++ b/src/main/java/com/gitblit/wicket/pages/EditTicketPage.html @@ -39,6 +39,7 @@ </div> </td></tr> <tr><th><wicket:message key="gb.type"></wicket:message><span style="color:red;">*</span></th><td class="edit"><select class="input-large" wicket:id="type"></select></td></tr> + <tr><th><wicket:message key="gb.status"></wicket:message><span style="color:red;">*</span></th><td class="edit"><select class="input-large" wicket:id="status"></select></td></tr> <tr wicket:id="responsible"></tr> <tr wicket:id="milestone"></tr> <tr wicket:id="mergeto"></tr> diff --git a/src/main/java/com/gitblit/wicket/pages/EditTicketPage.java b/src/main/java/com/gitblit/wicket/pages/EditTicketPage.java index aad1d6f..32b202f 100644 --- a/src/main/java/com/gitblit/wicket/pages/EditTicketPage.java +++ b/src/main/java/com/gitblit/wicket/pages/EditTicketPage.java @@ -72,6 +72,8 @@ private IModel<String> mergeToModel; + private IModel<Status> statusModel; + private IModel<TicketResponsible> responsibleModel; private IModel<TicketMilestone> milestoneModel; @@ -110,6 +112,7 @@ responsibleModel = Model.of(); milestoneModel = Model.of(); mergeToModel = Model.of(ticket.mergeTo == null ? "" : ticket.mergeTo); + statusModel = Model.of(ticket.status); setStatelessHint(false); setOutputMarkupId(true); @@ -143,6 +146,12 @@ if (!ticket.body.equals(description)) { // description change change.setField(Field.body, description); + } + + Status status = statusModel.getObject(); + if (!ticket.status.equals(status)) { + // status change + change.setField(Field.status, status); } Type type = typeModel.getObject(); @@ -213,6 +222,19 @@ typeChoices = Arrays.asList(TicketModel.Type.choices()); } form.add(new DropDownChoice<TicketModel.Type>("type", typeModel, typeChoices)); + + List<Status> statusChoices; + if (ticket.isClosed()) { + statusChoices = Arrays.asList(ticket.status, Status.Open); + } else if (ticket.isProposal()) { + statusChoices = Arrays.asList(TicketModel.Status.proposalWorkflow); + } else if (ticket.isBug()) { + statusChoices = Arrays.asList(TicketModel.Status.bugWorkflow); + } else { + statusChoices = Arrays.asList(TicketModel.Status.requestWorkflow); + } + form.add(new DropDownChoice<TicketModel.Status>("status", statusModel, statusChoices)); + form.add(new TextField<String>("title", titleModel)); form.add(new TextField<String>("topic", topicModel)); diff --git a/src/main/java/com/gitblit/wicket/pages/TicketPage.java b/src/main/java/com/gitblit/wicket/pages/TicketPage.java index 3c1dbdf..07382ad 100644 --- a/src/main/java/com/gitblit/wicket/pages/TicketPage.java +++ b/src/main/java/com/gitblit/wicket/pages/TicketPage.java @@ -335,7 +335,10 @@ * STATUS */ List<Status> choices = new ArrayList<Status>(); - if (ticket.isProposal()) { + if (ticket.isClosed()) { + // re-open + choices.addAll(Arrays.asList(TicketModel.Status.Open)); + } else if (ticket.isProposal()) { choices.addAll(Arrays.asList(TicketModel.Status.proposalWorkflow)); } else if (ticket.isBug()) { choices.addAll(Arrays.asList(TicketModel.Status.bugWorkflow)); -- Gitblit v1.9.1