James Moger
2015-11-19 e41e8f8c3bc9f5edab1d271464364f95620ece8c
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;
@@ -30,6 +31,7 @@
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;
@@ -41,6 +43,7 @@
import com.gitblit.utils.StringUtils;
import com.gitblit.wicket.GitBlitWebSession;
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);
@@ -140,7 +143,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 +154,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);
   }