From a502d96a860456ec5e8c96761db70f7cabb74751 Mon Sep 17 00:00:00 2001 From: Paul Martin <paul@paulsputer.com> Date: Sat, 30 Apr 2016 04:19:14 -0400 Subject: [PATCH] Merge pull request #1073 from gitblit/1062-DocEditorUpdates --- src/main/java/com/gitblit/wicket/pages/EditMilestonePage.java | 37 +++++++++++++++++++++++-------------- 1 files changed, 23 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/gitblit/wicket/pages/EditMilestonePage.java b/src/main/java/com/gitblit/wicket/pages/EditMilestonePage.java index b844442..dc32665 100644 --- a/src/main/java/com/gitblit/wicket/pages/EditMilestonePage.java +++ b/src/main/java/com/gitblit/wicket/pages/EditMilestonePage.java @@ -15,6 +15,7 @@ */ package com.gitblit.wicket.pages; +import java.text.MessageFormat; import java.util.Arrays; import java.util.Date; import java.util.List; @@ -23,13 +24,13 @@ import org.apache.wicket.RestartResponseException; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.markup.html.form.AjaxButton; -import org.apache.wicket.extensions.markup.html.form.DateTextField; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.form.Button; import org.apache.wicket.markup.html.form.CheckBox; import org.apache.wicket.markup.html.form.DropDownChoice; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.form.TextField; +import org.apache.wicket.markup.html.link.Link; import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; @@ -40,7 +41,9 @@ import com.gitblit.tickets.TicketMilestone; import com.gitblit.utils.StringUtils; import com.gitblit.wicket.GitBlitWebSession; +import com.gitblit.wicket.Html5DateField; import com.gitblit.wicket.WicketUtils; +import com.gitblit.wicket.panels.BasePanel.JavascriptEventConfirmation; /** * Page for creating a new milestone. @@ -66,7 +69,7 @@ RepositoryModel model = getRepositoryModel(); if (!app().tickets().isAcceptingTicketUpdates(model)) { // ticket service is read-only - throw new RestartResponseException(TicketsPage.class, WicketUtils.newRepositoryParameter(repositoryName)); + throw new RestartResponseException(TicketsPage.class, WicketUtils.newOpenTicketsParameter(repositoryName)); } UserModel currentUser = GitBlitWebSession.get().getUser(); @@ -76,19 +79,19 @@ if (!currentUser.isAuthenticated || !currentUser.canAdmin(model)) { // administration prohibited - throw new RestartResponseException(TicketsPage.class, WicketUtils.newRepositoryParameter(repositoryName)); + throw new RestartResponseException(TicketsPage.class, WicketUtils.newOpenTicketsParameter(repositoryName)); } oldName = WicketUtils.getObject(params); if (StringUtils.isEmpty(oldName)) { // milestone not specified - throw new RestartResponseException(TicketsPage.class, WicketUtils.newRepositoryParameter(repositoryName)); + throw new RestartResponseException(TicketsPage.class, WicketUtils.newOpenTicketsParameter(repositoryName)); } TicketMilestone tm = app().tickets().getMilestone(getRepositoryModel(), oldName); if (tm == null) { // milestone does not exist - throw new RestartResponseException(TicketsPage.class, WicketUtils.newRepositoryParameter(repositoryName)); + throw new RestartResponseException(TicketsPage.class, WicketUtils.newOpenTicketsParameter(repositoryName)); } setStatelessHint(false); @@ -103,10 +106,12 @@ notificationModel = Model.of(true); form.add(new TextField<String>("name", nameModel)); - form.add(new DateTextField("due", dueModel, "yyyy-MM-dd")); + form.add(new Html5DateField("due", dueModel, "yyyy-MM-dd")); form.add(new Label("dueFormat", "yyyy-MM-dd")); form.add(new CheckBox("notify", notificationModel)); - + addBottomScriptInline("{var e=document.createElement('input');e.type='date';if(e.type=='date'){$('[name=\"due\"]~.help-inline').hide()}}"); + addBottomScript("scripts/wicketHtml5Patch.js"); + List<Status> statusChoices = Arrays.asList(Status.Open, Status.Closed); form.add(new DropDownChoice<TicketModel.Status>("status", statusModel, statusChoices)); @@ -140,7 +145,7 @@ } if (success && app().tickets().updateMilestone(getRepositoryModel(), tm, createdBy)) { - setResponsePage(TicketsPage.class, WicketUtils.newRepositoryParameter(getRepositoryModel().name)); + redirectTo(TicketsPage.class, WicketUtils.newOpenTicketsParameter(repositoryName)); } else { // TODO error } @@ -151,29 +156,33 @@ @Override public void onSubmit() { - setResponsePage(TicketsPage.class, WicketUtils.newRepositoryParameter(repositoryName)); + setResponsePage(TicketsPage.class, WicketUtils.newOpenTicketsParameter(repositoryName)); } }; cancel.setDefaultFormProcessing(false); form.add(cancel); - Button delete = new Button("delete") { + Link<Void> delete = new Link<Void>("delete") { + private static final long serialVersionUID = 1L; @Override - public void onSubmit() { + public void onClick() { UserModel currentUser = GitBlitWebSession.get().getUser(); String createdBy = currentUser.username; boolean notify = notificationModel.getObject(); if (app().tickets().deleteMilestone(getRepositoryModel(), oldName, createdBy, notify)) { - setResponsePage(TicketsPage.class, WicketUtils.newRepositoryParameter(repositoryName)); + setResponsePage(TicketsPage.class, WicketUtils.newOpenTicketsParameter(repositoryName)); } else { - // TODO error processing + error(MessageFormat.format(getString("gb.milestoneDeleteFailed"), oldName)); } } }; - delete.setDefaultFormProcessing(false); + + delete.add(new JavascriptEventConfirmation("onclick", MessageFormat.format( + getString("gb.deleteMilestone"), oldName))); + form.add(delete); } -- Gitblit v1.9.1