James Moger
2014-05-08 9ff0c16b05cb0eb7c3cc63eda763b0f75d84853c
src/main/java/com/gitblit/wicket/pages/EditMilestonePage.java
@@ -24,7 +24,9 @@
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;
@@ -64,7 +66,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();
@@ -74,19 +76,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);
@@ -102,6 +104,8 @@
      form.add(new TextField<String>("name", nameModel));
      form.add(new DateTextField("due", dueModel, "yyyy-MM-dd"));
      form.add(new Label("dueFormat", "yyyy-MM-dd"));
      form.add(new CheckBox("notify", notificationModel));
      List<Status> statusChoices = Arrays.asList(Status.Open, Status.Closed);
      form.add(new DropDownChoice<TicketModel.Status>("status", statusModel, statusChoices));
@@ -136,7 +140,7 @@
            }
            if (success && app().tickets().updateMilestone(getRepositoryModel(), tm, createdBy)) {
               setResponsePage(TicketsPage.class, WicketUtils.newRepositoryParameter(getRepositoryModel().name));
               setResponsePage(TicketsPage.class, WicketUtils.newOpenTicketsParameter(repositoryName));
            } else {
               // TODO error
            }
@@ -147,7 +151,7 @@
         @Override
         public void onSubmit() {
            setResponsePage(TicketsPage.class, WicketUtils.newRepositoryParameter(repositoryName));
            setResponsePage(TicketsPage.class, WicketUtils.newOpenTicketsParameter(repositoryName));
         }
      };
      cancel.setDefaultFormProcessing(false);
@@ -160,9 +164,10 @@
         public void onSubmit() {
            UserModel currentUser = GitBlitWebSession.get().getUser();
            String createdBy = currentUser.username;
            boolean notify = notificationModel.getObject();
            if (app().tickets().deleteMilestone(getRepositoryModel(), oldName, createdBy)) {
               setResponsePage(TicketsPage.class, WicketUtils.newRepositoryParameter(repositoryName));
            if (app().tickets().deleteMilestone(getRepositoryModel(), oldName, createdBy, notify)) {
               setResponsePage(TicketsPage.class, WicketUtils.newOpenTicketsParameter(repositoryName));
            } else {
               // TODO error processing
            }