From d3d4a66f078b64f5cf33ce424e5877657d329836 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Thu, 01 May 2014 14:24:50 -0400 Subject: [PATCH] Merged #53 "New|Edit Ticket page fails on submit with empty title" --- src/main/java/com/gitblit/wicket/pages/NewTicketPage.java | 110 +++++++++++++++++++++++++++++------------------------- 1 files changed, 59 insertions(+), 51 deletions(-) diff --git a/src/main/java/com/gitblit/wicket/pages/NewTicketPage.java b/src/main/java/com/gitblit/wicket/pages/NewTicketPage.java index fda2e9f..cc0474a 100644 --- a/src/main/java/com/gitblit/wicket/pages/NewTicketPage.java +++ b/src/main/java/com/gitblit/wicket/pages/NewTicketPage.java @@ -21,6 +21,8 @@ import java.util.List; import org.apache.wicket.PageParameters; +import org.apache.wicket.ajax.AjaxRequestTarget; +import org.apache.wicket.ajax.markup.html.form.AjaxButton; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.form.Button; import org.apache.wicket.markup.html.form.DropDownChoice; @@ -94,56 +96,7 @@ setStatelessHint(false); setOutputMarkupId(true); - Form<Void> form = new Form<Void>("editForm") { - - private static final long serialVersionUID = 1L; - - @Override - protected void onSubmit() { - String createdBy = GitBlitWebSession.get().getUsername(); - Change change = new Change(createdBy); - change.setField(Field.title, titleModel.getObject()); - change.setField(Field.body, descriptionEditor.getText()); - String topic = topicModel.getObject(); - if (!StringUtils.isEmpty(topic)) { - change.setField(Field.topic, topic); - } - - // type - TicketModel.Type type = TicketModel.Type.defaultType; - if (typeModel.getObject() != null) { - type = typeModel.getObject(); - } - change.setField(Field.type, type); - - // responsible - TicketResponsible responsible = responsibleModel == null ? null : responsibleModel.getObject(); - if (responsible != null) { - change.setField(Field.responsible, responsible.username); - } - - // milestone - TicketMilestone milestone = milestoneModel == null ? null : milestoneModel.getObject(); - if (milestone != null) { - change.setField(Field.milestone, milestone.name); - } - - // integration branch - String mergeTo = mergeToModel.getObject(); - if (!StringUtils.isEmpty(mergeTo)) { - change.setField(Field.mergeTo, mergeTo); - } - - TicketModel ticket = app().tickets().createTicket(getRepositoryModel(), 0L, change); - if (ticket != null) { - TicketNotifier notifier = app().tickets().createNotifier(); - notifier.sendMailing(ticket); - setResponsePage(TicketsPage.class, WicketUtils.newObjectParameter(getRepositoryModel().name, "" + ticket.number)); - } else { - // TODO error - } - } - }; + Form<Void> form = new Form<Void>("editForm"); add(form); form.add(new DropDownChoice<TicketModel.Type>("type", typeModel, Arrays.asList(TicketModel.Type.choices()))); @@ -203,7 +156,62 @@ form.add(new Label("mergeto").setVisible(false)); } - form.add(new Button("create")); + form.add(new AjaxButton("create") { + + private static final long serialVersionUID = 1L; + + @Override + protected void onSubmit(AjaxRequestTarget target, Form<?> form) { + String title = titleModel.getObject(); + if (StringUtils.isEmpty(title)) { + return; + } + + String createdBy = GitBlitWebSession.get().getUsername(); + Change change = new Change(createdBy); + change.setField(Field.title, title); + change.setField(Field.body, descriptionEditor.getText()); + String topic = topicModel.getObject(); + if (!StringUtils.isEmpty(topic)) { + change.setField(Field.topic, topic); + } + + // type + TicketModel.Type type = TicketModel.Type.defaultType; + if (typeModel.getObject() != null) { + type = typeModel.getObject(); + } + change.setField(Field.type, type); + + // responsible + TicketResponsible responsible = responsibleModel == null ? null : responsibleModel.getObject(); + if (responsible != null) { + change.setField(Field.responsible, responsible.username); + } + + // milestone + TicketMilestone milestone = milestoneModel == null ? null : milestoneModel.getObject(); + if (milestone != null) { + change.setField(Field.milestone, milestone.name); + } + + // integration branch + String mergeTo = mergeToModel.getObject(); + if (!StringUtils.isEmpty(mergeTo)) { + change.setField(Field.mergeTo, mergeTo); + } + + TicketModel ticket = app().tickets().createTicket(getRepositoryModel(), 0L, change); + if (ticket != null) { + TicketNotifier notifier = app().tickets().createNotifier(); + notifier.sendMailing(ticket); + setResponsePage(TicketsPage.class, WicketUtils.newObjectParameter(getRepositoryModel().name, "" + ticket.number)); + } else { + // TODO error + } + } + }); + Button cancel = new Button("cancel") { private static final long serialVersionUID = 1L; -- Gitblit v1.9.1