From c5dfd60d174a9841e64e4097cecab5aea5c422d0 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Sat, 12 Apr 2014 12:26:17 -0400 Subject: [PATCH] Documentation --- src/main/java/com/gitblit/wicket/pages/EditTicketPage.java | 55 +++++++++++++++++++++++++++---------------------------- 1 files changed, 27 insertions(+), 28 deletions(-) diff --git a/src/main/java/com/gitblit/wicket/pages/EditTicketPage.java b/src/main/java/com/gitblit/wicket/pages/EditTicketPage.java index ac7ff97..00cd47d 100644 --- a/src/main/java/com/gitblit/wicket/pages/EditTicketPage.java +++ b/src/main/java/com/gitblit/wicket/pages/EditTicketPage.java @@ -88,11 +88,6 @@ currentUser = UserModel.ANONYMOUS; } - if (!currentUser.isAuthenticated || !app().tickets().isAcceptingTicketUpdates(getRepositoryModel())) { - // tickets prohibited - setResponsePage(TicketsPage.class, WicketUtils.newRepositoryParameter(repositoryName)); - } - long ticketId = 0L; try { String h = WicketUtils.getObject(params); @@ -102,8 +97,10 @@ } TicketModel ticket = app().tickets().getTicket(getRepositoryModel(), ticketId); - if (ticket == null) { - setResponsePage(TicketsPage.class, WicketUtils.newRepositoryParameter(repositoryName)); + if (ticket == null + || !currentUser.canEdit(ticket, getRepositoryModel()) + || !app().tickets().isAcceptingTicketUpdates(getRepositoryModel())) { + setResponsePage(TicketsPage.class, WicketUtils.newObjectParameter(repositoryName, "" + ticketId)); } typeModel = Model.of(ticket.type); @@ -111,7 +108,7 @@ topicModel = Model.of(ticket.topic == null ? "" : ticket.topic); responsibleModel = Model.of(); milestoneModel = Model.of(); - mergeToModel = Model.of(ticket.mergeTo == null ? "" : ticket.mergeTo); + mergeToModel = Model.of(ticket.mergeTo == null ? getRepositoryModel().mergeTo : ticket.mergeTo); statusModel = Model.of(ticket.status); setStatelessHint(false); @@ -137,13 +134,14 @@ Change change = new Change(createdBy); String title = titleModel.getObject(); - if (!ticket.title.equals(title)) { + if (!StringUtils.isEmpty(title) && !ticket.title.equals(title)) { // title change change.setField(Field.title, title); } String description = descriptionEditor.getText(); - if (!ticket.body.equals(description)) { + if ((StringUtils.isEmpty(ticket.body) && !StringUtils.isEmpty(description)) + || (!StringUtils.isEmpty(ticket.body) && !ticket.body.equals(description))) { // description change change.setField(Field.body, description); } @@ -223,18 +221,6 @@ } 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)); @@ -249,7 +235,22 @@ descriptionEditor.setText(ticket.body); form.add(descriptionEditor); - if (currentUser != null && currentUser.isAuthenticated && currentUser.canPush(getRepositoryModel())) { + // status + 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); + } + Fragment status = new Fragment("status", "statusFragment", this); + status.add(new DropDownChoice<TicketModel.Status>("status", statusModel, statusChoices)); + form.add(status); + + if (currentUser.canAdmin(ticket, getRepositoryModel())) { // responsible Set<String> userlist = new TreeSet<String>(ticket.getParticipants()); @@ -308,20 +309,18 @@ branches.add(Repository.shortenRefName(branch)); } } - branches.remove(Repository.shortenRefName(getRepositoryModel().HEAD)); - branches.add(0, Repository.shortenRefName(getRepositoryModel().HEAD)); + branches.remove(Repository.shortenRefName(getRepositoryModel().mergeTo)); + branches.add(0, Repository.shortenRefName(getRepositoryModel().mergeTo)); Fragment mergeto = new Fragment("mergeto", "mergeToFragment", this); mergeto.add(new DropDownChoice<String>("mergeto", mergeToModel, branches)); form.add(mergeto.setVisible(!branches.isEmpty())); - } else { - // user does not have permission to assign milestone or responsible + // user can not admin this ticket form.add(new Label("responsible").setVisible(false)); form.add(new Label("milestone").setVisible(false)); form.add(new Label("mergeto").setVisible(false)); } - form.add(new Button("update")); Button cancel = new Button("cancel") { private static final long serialVersionUID = 1L; -- Gitblit v1.9.1