| | |
| | | import com.gitblit.tickets.TicketResponsible;
|
| | | import com.gitblit.utils.StringUtils;
|
| | | import com.gitblit.wicket.GitBlitWebSession;
|
| | | import com.gitblit.wicket.SafeTextModel;
|
| | | import com.gitblit.wicket.SafeTextModel.Mode;
|
| | | import com.gitblit.wicket.WicketUtils;
|
| | | import com.gitblit.wicket.panels.MarkdownTextArea;
|
| | | import com.google.common.base.Optional;
|
| | |
|
| | | /**
|
| | | * Page for editing a ticket.
|
| | |
| | | }
|
| | |
|
| | | typeModel = Model.of(ticket.type);
|
| | | titleModel = SafeTextModel.none(ticket.title);
|
| | | topicModel = SafeTextModel.none(ticket.topic == null ? "" : ticket.topic);
|
| | | titleModel = Model.of(ticket.title);
|
| | | topicModel = Model.of(ticket.topic == null ? "" : ticket.topic);
|
| | | responsibleModel = Model.of();
|
| | | milestoneModel = Model.of();
|
| | | mergeToModel = Model.of(ticket.mergeTo == null ? getRepositoryModel().mergeTo : ticket.mergeTo);
|
| | |
| | | form.add(new TextField<String>("title", titleModel));
|
| | | form.add(new TextField<String>("topic", topicModel));
|
| | |
|
| | | final SafeTextModel markdownPreviewModel = new SafeTextModel(Mode.none);
|
| | | final IModel<String> markdownPreviewModel = Model.of(ticket.body == null ? "" : ticket.body);
|
| | | descriptionPreview = new Label("descriptionPreview", markdownPreviewModel);
|
| | | descriptionPreview.setEscapeModelStrings(false);
|
| | | descriptionPreview.setOutputMarkupId(true);
|
| | |
| | | change.setField(Field.title, title);
|
| | | }
|
| | |
|
| | | String description = descriptionEditor.getText();
|
| | | String description = Optional.fromNullable(descriptionEditor.getText()).or("");
|
| | | if ((StringUtils.isEmpty(ticket.body) && !StringUtils.isEmpty(description))
|
| | | || (!StringUtils.isEmpty(ticket.body) && !ticket.body.equals(description))) {
|
| | | // description change
|
| | |
| | | change.setField(Field.type, type);
|
| | | }
|
| | |
|
| | | String topic = topicModel.getObject();
|
| | | String topic = Optional.fromNullable(topicModel.getObject()).or("");
|
| | | if ((StringUtils.isEmpty(ticket.topic) && !StringUtils.isEmpty(topic))
|
| | | || (!StringUtils.isEmpty(topic) && !topic.equals(ticket.topic))) {
|
| | | || (!StringUtils.isEmpty(ticket.topic) && !ticket.topic.equals(topic))) {
|
| | | // topic change
|
| | | change.setField(Field.topic, topic);
|
| | | }
|
| | |
| | | if (ticket != null) {
|
| | | TicketNotifier notifier = app().tickets().createNotifier();
|
| | | notifier.sendMailing(ticket);
|
| | | setResponsePage(TicketsPage.class, WicketUtils.newObjectParameter(getRepositoryModel().name, "" + ticket.number));
|
| | | redirectTo(TicketsPage.class, WicketUtils.newObjectParameter(getRepositoryModel().name, "" + ticket.number));
|
| | | } else {
|
| | | // TODO error
|
| | | }
|
| | | } else {
|
| | | // nothing to change?!
|
| | | setResponsePage(TicketsPage.class, WicketUtils.newObjectParameter(getRepositoryModel().name, "" + ticket.number));
|
| | | redirectTo(TicketsPage.class, WicketUtils.newObjectParameter(getRepositoryModel().name, "" + ticket.number));
|
| | | }
|
| | | }
|
| | | });
|