From 9bb31c888eaa3f3949c190c0d0848ec480526ae5 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 02 May 2014 16:05:37 -0400
Subject: [PATCH] Documentation

---
 src/main/java/com/gitblit/wicket/pages/EditMilestonePage.java |  115 ++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 69 insertions(+), 46 deletions(-)

diff --git a/src/main/java/com/gitblit/wicket/pages/EditMilestonePage.java b/src/main/java/com/gitblit/wicket/pages/EditMilestonePage.java
index 4407788..b844442 100644
--- a/src/main/java/com/gitblit/wicket/pages/EditMilestonePage.java
+++ b/src/main/java/com/gitblit/wicket/pages/EditMilestonePage.java
@@ -21,20 +21,24 @@
 
 import org.apache.wicket.PageParameters;
 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.model.IModel;
 import org.apache.wicket.model.Model;
-import org.parboiled.common.StringUtils;
 
 import com.gitblit.models.RepositoryModel;
 import com.gitblit.models.TicketModel;
 import com.gitblit.models.TicketModel.Status;
 import com.gitblit.models.UserModel;
 import com.gitblit.tickets.TicketMilestone;
+import com.gitblit.utils.StringUtils;
 import com.gitblit.wicket.GitBlitWebSession;
 import com.gitblit.wicket.WicketUtils;
 
@@ -47,13 +51,13 @@
 public class EditMilestonePage extends RepositoryPage {
 
 	private final String oldName;
-	
+
 	private IModel<String> nameModel;
 
 	private IModel<Date> dueModel;
-	
+
 	private IModel<Status> statusModel;
-	
+
 	private IModel<Boolean> notificationModel;
 
 	public EditMilestonePage(PageParameters params) {
@@ -64,7 +68,7 @@
 			// ticket service is read-only
 			throw new RestartResponseException(TicketsPage.class, WicketUtils.newRepositoryParameter(repositoryName));
 		}
-		
+
 		UserModel currentUser = GitBlitWebSession.get().getUser();
 		if (currentUser == null) {
 			currentUser = UserModel.ANONYMOUS;
@@ -74,13 +78,13 @@
 			// administration prohibited
 			throw new RestartResponseException(TicketsPage.class, WicketUtils.newRepositoryParameter(repositoryName));
 		}
-		
+
 		oldName = WicketUtils.getObject(params);
 		if (StringUtils.isEmpty(oldName)) {
 			// milestone not specified
 			throw new RestartResponseException(TicketsPage.class, WicketUtils.newRepositoryParameter(repositoryName));
 		}
-		
+
 		TicketMilestone tm = app().tickets().getMilestone(getRepositoryModel(), oldName);
 		if (tm == null) {
 			// milestone does not exist
@@ -90,57 +94,58 @@
 		setStatelessHint(false);
 		setOutputMarkupId(true);
 
-		Form<Void> form = new Form<Void>("editForm") {
-
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			protected void onSubmit() {
-				
-				String name = nameModel.getObject();
-				if (StringUtils.isEmpty(name)) {
-					return;
-				}
-				
-				Date due = dueModel.getObject();
-				Status status = statusModel.getObject();
-				boolean rename = !name.equals(oldName);
-				boolean notify = notificationModel.getObject();
-				
-				UserModel currentUser = GitBlitWebSession.get().getUser();
-				String createdBy = currentUser.username;
-				
-				TicketMilestone tm = app().tickets().getMilestone(getRepositoryModel(), oldName);
-				tm.setName(name);
-				tm.setDue(due);
-				tm.status = status;
-				
-				boolean success = true;
-				if (rename) {
-					success = app().tickets().renameMilestone(getRepositoryModel(), oldName, name, createdBy, notify);
-				}
-				
-				if (success && app().tickets().updateMilestone(getRepositoryModel(), tm, createdBy)) {
-					setResponsePage(TicketsPage.class, WicketUtils.newRepositoryParameter(getRepositoryModel().name));
-				} else {
-					// TODO error
-				}
-			}
-		};
+		Form<Void> form = new Form<Void>("editForm");
 		add(form);
 
 		nameModel = Model.of(tm.name);
 		dueModel = Model.of(tm.due);
 		statusModel = Model.of(tm.status);
 		notificationModel = Model.of(true);
-		
+
 		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));
 
-		form.add(new Button("save"));
+		form.add(new AjaxButton("save") {
+
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
+				String name = nameModel.getObject();
+				if (StringUtils.isEmpty(name)) {
+					return;
+				}
+
+				Date due = dueModel.getObject();
+				Status status = statusModel.getObject();
+				boolean rename = !name.equals(oldName);
+				boolean notify = notificationModel.getObject();
+
+				UserModel currentUser = GitBlitWebSession.get().getUser();
+				String createdBy = currentUser.username;
+
+				TicketMilestone tm = app().tickets().getMilestone(getRepositoryModel(), oldName);
+				tm.setName(name);
+				tm.setDue(due);
+				tm.status = status;
+
+				boolean success = true;
+				if (rename) {
+					success = app().tickets().renameMilestone(getRepositoryModel(), oldName, name, createdBy, notify);
+				}
+
+				if (success && app().tickets().updateMilestone(getRepositoryModel(), tm, createdBy)) {
+					setResponsePage(TicketsPage.class, WicketUtils.newRepositoryParameter(getRepositoryModel().name));
+				} else {
+					// TODO error
+				}
+			}
+		});
 		Button cancel = new Button("cancel") {
 			private static final long serialVersionUID = 1L;
 
@@ -152,6 +157,24 @@
 		cancel.setDefaultFormProcessing(false);
 		form.add(cancel);
 
+		Button delete = new Button("delete") {
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			public void onSubmit() {
+				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));
+				} else {
+					// TODO error processing
+				}
+			}
+		};
+		delete.setDefaultFormProcessing(false);
+		form.add(delete);
 	}
 
 	@Override

--
Gitblit v1.9.1