From d376abaca317746fed3b557045432302b8f0b82f Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 30 Sep 2011 19:49:03 -0400
Subject: [PATCH] Clarified page hierarchy. Fixed TicGit pages.

---
 src/com/gitblit/wicket/pages/RepositoriesPage.java           |    1 
 src/com/gitblit/wicket/pages/EditRepositoryPage.java         |    2 
 src/com/gitblit/wicket/pages/EditUserPage.java               |    6 +-
 src/com/gitblit/wicket/pages/FederationRegistrationPage.java |   13 ---
 src/com/gitblit/wicket/pages/FederationPage.html             |    6 +-
 src/com/gitblit/wicket/pages/ReviewProposalPage.java         |    4 
 src/com/gitblit/wicket/pages/SendProposalPage.java           |    6 +-
 src/com/gitblit/wicket/pages/RootSubPage.html                |   18 ++++++
 /dev/null                                                    |   32 ----------
 src/com/gitblit/wicket/pages/TicketPage.java                 |    2 
 src/com/gitblit/wicket/WicketUtils.java                      |    8 +-
 src/com/gitblit/wicket/pages/FederationPage.java             |    1 
 src/com/gitblit/wicket/pages/ChangePasswordPage.java         |    2 
 src/com/gitblit/wicket/pages/RootPage.java                   |   38 +++++-------
 src/com/gitblit/wicket/pages/SendProposalPage.html           |    2 
 src/com/gitblit/wicket/pages/ReviewProposalPage.html         |    2 
 src/com/gitblit/wicket/pages/TicketPage.html                 |    2 
 src/com/gitblit/wicket/pages/RootSubPage.java                |   21 ++++---
 src/com/gitblit/wicket/pages/UsersPage.java                  |    1 
 19 files changed, 72 insertions(+), 95 deletions(-)

diff --git a/src/com/gitblit/wicket/WicketUtils.java b/src/com/gitblit/wicket/WicketUtils.java
index 3ffd6cd..e5b7f69 100644
--- a/src/com/gitblit/wicket/WicketUtils.java
+++ b/src/com/gitblit/wicket/WicketUtils.java
@@ -88,13 +88,13 @@
 	public static void setTicketCssClass(Component container, String state) {
 		String css = null;
 		if (state.equals("open")) {
-			css = "bug_open";
+			css = "label important";
 		} else if (state.equals("hold")) {
-			css = "bug_hold";
+			css = "label warning";
 		} else if (state.equals("resolved")) {
-			css = "bug_resolved";
+			css = "label success";
 		} else if (state.equals("invalid")) {
-			css = "bug_invalid";
+			css = "label";
 		}
 		if (css != null) {
 			setCssClass(container, css);
diff --git a/src/com/gitblit/wicket/pages/ChangePasswordPage.java b/src/com/gitblit/wicket/pages/ChangePasswordPage.java
index 660a813..fec2414 100644
--- a/src/com/gitblit/wicket/pages/ChangePasswordPage.java
+++ b/src/com/gitblit/wicket/pages/ChangePasswordPage.java
@@ -32,7 +32,7 @@
 import com.gitblit.utils.StringUtils;
 import com.gitblit.wicket.GitBlitWebSession;
 
-public class ChangePasswordPage extends StandardPage {
+public class ChangePasswordPage extends RootSubPage {
 
 	IModel<String> password = new Model<String>("");
 	IModel<String> confirmPassword = new Model<String>("");
diff --git a/src/com/gitblit/wicket/pages/EditRepositoryPage.java b/src/com/gitblit/wicket/pages/EditRepositoryPage.java
index ae7966d..2afe014 100644
--- a/src/com/gitblit/wicket/pages/EditRepositoryPage.java
+++ b/src/com/gitblit/wicket/pages/EditRepositoryPage.java
@@ -47,7 +47,7 @@
 import com.gitblit.wicket.GitBlitWebSession;
 import com.gitblit.wicket.WicketUtils;
 
-public class EditRepositoryPage extends StandardPage {
+public class EditRepositoryPage extends RootSubPage {
 
 	private final boolean isCreate;
 
diff --git a/src/com/gitblit/wicket/pages/EditUserPage.java b/src/com/gitblit/wicket/pages/EditUserPage.java
index 8dbb0d9..446ab89 100644
--- a/src/com/gitblit/wicket/pages/EditUserPage.java
+++ b/src/com/gitblit/wicket/pages/EditUserPage.java
@@ -44,7 +44,7 @@
 import com.gitblit.wicket.WicketUtils;
 
 @RequiresAdminRole
-public class EditUserPage extends StandardPage {
+public class EditUserPage extends RootSubPage {
 
 	private final boolean isCreate;
 
@@ -157,8 +157,8 @@
 							userModel.username));
 					setResponsePage(EditUserPage.class);
 				} else {
-					// back to home
-					setResponsePage(RepositoriesPage.class);
+					// back to users page
+					setResponsePage(UsersPage.class);
 				}
 			}
 		};
diff --git a/src/com/gitblit/wicket/pages/FederationPage.html b/src/com/gitblit/wicket/pages/FederationPage.html
index ab8a941..bb39d34 100644
--- a/src/com/gitblit/wicket/pages/FederationPage.html
+++ b/src/com/gitblit/wicket/pages/FederationPage.html
@@ -6,12 +6,12 @@
 <body>
 <wicket:extend>
 
-	<div wicket:id="federationProposalsPanel">[federation proposals panel]</div>
+	<div wicket:id="federationTokensPanel">[federation tokens panel]</div>
+		
+	<div style="padding-top: 10px;" wicket:id="federationProposalsPanel">[federation proposals panel]</div>
 
 	<div style="padding-top: 10px;" wicket:id="federationRegistrationsPanel">[federation registrations panel]</div>
 
-	<div wicket:id="federationTokensPanel">[federation tokens panel]</div>
-		
 </wicket:extend>
 </body>
 </html>
\ No newline at end of file
diff --git a/src/com/gitblit/wicket/pages/FederationPage.java b/src/com/gitblit/wicket/pages/FederationPage.java
index b993f71..1f98c17 100644
--- a/src/com/gitblit/wicket/pages/FederationPage.java
+++ b/src/com/gitblit/wicket/pages/FederationPage.java
@@ -25,6 +25,7 @@
 
 	public FederationPage() {
 		super();
+		setupPage("", "");
 
 		boolean showFederation = showAdmin && GitBlit.canFederate();
 		add(new FederationTokensPanel("federationTokensPanel", showFederation)
diff --git a/src/com/gitblit/wicket/pages/FederationRegistrationPage.java b/src/com/gitblit/wicket/pages/FederationRegistrationPage.java
index aed94a4..e480eb7 100644
--- a/src/com/gitblit/wicket/pages/FederationRegistrationPage.java
+++ b/src/com/gitblit/wicket/pages/FederationRegistrationPage.java
@@ -25,24 +25,15 @@
 import org.apache.wicket.markup.repeater.data.ListDataProvider;
 
 import com.gitblit.GitBlit;
-import com.gitblit.Keys;
 import com.gitblit.models.FederationModel;
 import com.gitblit.models.FederationModel.RepositoryStatus;
-import com.gitblit.wicket.GitBlitWebSession;
 import com.gitblit.wicket.WicketUtils;
 
-public class FederationRegistrationPage extends StandardPage {
+public class FederationRegistrationPage extends RootSubPage {
 
 	public FederationRegistrationPage(PageParameters params) {
 		super(params);
-
-		final boolean showAdmin;
-		if (GitBlit.getBoolean(Keys.web.authenticateAdminPages, true)) {
-			boolean allowAdmin = GitBlit.getBoolean(Keys.web.allowAdministration, false);
-			showAdmin = allowAdmin && GitBlitWebSession.get().canAdmin();
-		} else {
-			showAdmin = false;
-		}
+		
 		setStatelessHint(true);
 
 		String url = WicketUtils.getUrlParameter(params);
diff --git a/src/com/gitblit/wicket/pages/RepositoriesPage.java b/src/com/gitblit/wicket/pages/RepositoriesPage.java
index 5339760..289006f 100644
--- a/src/com/gitblit/wicket/pages/RepositoriesPage.java
+++ b/src/com/gitblit/wicket/pages/RepositoriesPage.java
@@ -35,6 +35,7 @@
 
 	public RepositoriesPage() {
 		super();
+		setupPage("", "");
 
 		// Load the markdown welcome message
 		String messageSource = GitBlit.getString(Keys.web.repositoriesMessage, "gitblit");
diff --git a/src/com/gitblit/wicket/pages/ReviewProposalPage.html b/src/com/gitblit/wicket/pages/ReviewProposalPage.html
index 7f26f28..6487a0a 100644
--- a/src/com/gitblit/wicket/pages/ReviewProposalPage.html
+++ b/src/com/gitblit/wicket/pages/ReviewProposalPage.html
@@ -16,7 +16,7 @@
 		<tr><th valign="top"><wicket:message key="gb.proposal">proposal</wicket:message></th><td><span class="sha1" wicket:id="definition">[definition]</span></td></tr>
 	</table>
 		
-	<div wicket:id="repositories"></div>
+	<div wicket:id="repositoriesPanel"></div>
 	
 </wicket:extend>    
 </body>
diff --git a/src/com/gitblit/wicket/pages/ReviewProposalPage.java b/src/com/gitblit/wicket/pages/ReviewProposalPage.java
index 2f2d6f3..1d9092a 100644
--- a/src/com/gitblit/wicket/pages/ReviewProposalPage.java
+++ b/src/com/gitblit/wicket/pages/ReviewProposalPage.java
@@ -33,7 +33,7 @@
 import com.gitblit.wicket.panels.RepositoriesPanel;
 
 @RequiresAdminRole
-public class ReviewProposalPage extends StandardPage {
+public class ReviewProposalPage extends RootSubPage {
 
 	private final String PROPS_PATTERN = "{0} = {1}\n";
 
@@ -91,7 +91,7 @@
 
 		List<RepositoryModel> repositories = new ArrayList<RepositoryModel>(
 				proposal.repositories.values());
-		RepositoriesPanel repositoriesPanel = new RepositoriesPanel("repositories", false,
+		RepositoriesPanel repositoriesPanel = new RepositoriesPanel("repositoriesPanel", false,
 				repositories, getAccessRestrictions());
 		add(repositoriesPanel);
 	}
diff --git a/src/com/gitblit/wicket/pages/RootPage.java b/src/com/gitblit/wicket/pages/RootPage.java
index dd64de6..37f6ad1 100644
--- a/src/com/gitblit/wicket/pages/RootPage.java
+++ b/src/com/gitblit/wicket/pages/RootPage.java
@@ -17,15 +17,13 @@
 
 import java.text.MessageFormat;
 
-import javax.servlet.http.Cookie;
-
+import org.apache.wicket.PageParameters;
 import org.apache.wicket.markup.html.form.PasswordTextField;
 import org.apache.wicket.markup.html.form.StatelessForm;
 import org.apache.wicket.markup.html.form.TextField;
 import org.apache.wicket.markup.html.link.BookmarkablePageLink;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
-import org.apache.wicket.protocol.http.WebRequest;
 import org.apache.wicket.protocol.http.WebResponse;
 
 import com.gitblit.Constants;
@@ -35,23 +33,30 @@
 import com.gitblit.utils.StringUtils;
 import com.gitblit.wicket.GitBlitWebSession;
 
+/**
+ * Root page is a topbar, navigable page like Repositories, Users, or
+ * Federation.
+ * 
+ * @author James Moger
+ * 
+ */
 public abstract class RootPage extends BasePage {
 
-	final boolean showAdmin;
+	boolean showAdmin;
 
 	IModel<String> username = new Model<String>("");
 	IModel<String> password = new Model<String>("");
 
 	public RootPage() {
 		super();
-		setupPage("", "");
+	}
 
-		// try to automatically login from cookie
-		if (!GitBlitWebSession.get().isLoggedIn()
-				&& GitBlit.getBoolean(Keys.web.allowCookieAuthentication, false)) {
-			loginByCookie();
-		}
+	public RootPage(PageParameters params) {
+		super(params);
+	}
 
+	@Override
+	protected void setupPage(String repositoryName, String pageName) {
 		if (GitBlit.getBoolean(Keys.web.authenticateAdminPages, true)) {
 			boolean allowAdmin = GitBlit.getBoolean(Keys.web.allowAdministration, false);
 			showAdmin = allowAdmin && GitBlitWebSession.get().canAdmin();
@@ -122,19 +127,8 @@
 						pendingProposals));
 			}
 		}
-	}
 
-	private void loginByCookie() {
-		UserModel user = null;
-
-		// Grab cookie from Browser Session
-		Cookie[] cookies = ((WebRequest) getRequestCycle().getRequest()).getCookies();
-		if (cookies != null && cookies.length > 0) {
-			user = GitBlit.self().authenticate(cookies);
-		}
-
-		// Login the user
-		loginUser(user);
+		super.setupPage(repositoryName, pageName);
 	}
 
 	private void loginUser(UserModel user) {
diff --git a/src/com/gitblit/wicket/pages/RootSubPage.html b/src/com/gitblit/wicket/pages/RootSubPage.html
new file mode 100644
index 0000000..554da11
--- /dev/null
+++ b/src/com/gitblit/wicket/pages/RootSubPage.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"  
+      xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd"  
+      xml:lang="en"  
+      lang="en"> 
+
+<body>
+<wicket:extend>
+	<!-- page header -->
+	<div class="page-header">
+		<h2><span wicket:id="pageName">[page name]</span> <small><span wicket:id="pageSubName">[sub name]</span></small></h2>
+	</div>
+	
+	<!-- Subclass Content -->
+	<wicket:child/>
+</wicket:extend>
+</body>
+</html>
\ No newline at end of file
diff --git a/src/com/gitblit/wicket/pages/StandardPage.java b/src/com/gitblit/wicket/pages/RootSubPage.java
similarity index 76%
rename from src/com/gitblit/wicket/pages/StandardPage.java
rename to src/com/gitblit/wicket/pages/RootSubPage.java
index 4598931..f7572b1 100644
--- a/src/com/gitblit/wicket/pages/StandardPage.java
+++ b/src/com/gitblit/wicket/pages/RootSubPage.java
@@ -20,21 +20,24 @@
 
 import com.gitblit.utils.StringUtils;
 
-public abstract class StandardPage extends BasePage {
-	
-	public StandardPage() {
-		// create constructor
+/**
+ * RootSubPage is a non-topbar navigable RootPage. It also has a page header.
+ * 
+ * @author James Moger
+ * 
+ */
+public abstract class RootSubPage extends RootPage {
+
+	public RootSubPage() {
 		super();
-		setStatelessHint(true);
 	}
 
-	public StandardPage(PageParameters params) {
-		// edit constructor
+	public RootSubPage(PageParameters params) {
 		super(params);
-		setStatelessHint(true);
 	}
 
-	protected void setupPage(String pageName, String subName) {		
+	@Override
+	protected void setupPage(String pageName, String subName) {
 		add(new Label("pageName", pageName));
 		if (!StringUtils.isEmpty(subName)) {
 			subName = "/ " + subName;
diff --git a/src/com/gitblit/wicket/pages/SendProposalPage.html b/src/com/gitblit/wicket/pages/SendProposalPage.html
index 794cb70..8a28906 100644
--- a/src/com/gitblit/wicket/pages/SendProposalPage.html
+++ b/src/com/gitblit/wicket/pages/SendProposalPage.html
@@ -18,7 +18,7 @@
 	</table>
 	</form>
 	
-	<div style="padding-top:10px;" wicket:id="repositories"></div>
+	<div style="padding-top:10px;" wicket:id="repositoriesPanel"></div>
 </body>
 </wicket:extend>    
 </html>
\ No newline at end of file
diff --git a/src/com/gitblit/wicket/pages/SendProposalPage.java b/src/com/gitblit/wicket/pages/SendProposalPage.java
index 11f97a0..ed20049 100644
--- a/src/com/gitblit/wicket/pages/SendProposalPage.java
+++ b/src/com/gitblit/wicket/pages/SendProposalPage.java
@@ -37,7 +37,7 @@
 import com.gitblit.wicket.panels.RepositoriesPanel;
 
 @RequiresAdminRole
-public class SendProposalPage extends StandardPage {
+public class SendProposalPage extends RootSubPage {
 
 	public String myUrl;
 
@@ -139,7 +139,7 @@
 
 			@Override
 			public void onSubmit() {
-				setResponsePage(RepositoriesPage.class);
+				setResponsePage(FederationPage.class);
 			}
 		};
 		cancel.setDefaultFormProcessing(false);
@@ -148,7 +148,7 @@
 
 		List<RepositoryModel> repositories = new ArrayList<RepositoryModel>(
 				proposal.repositories.values());
-		RepositoriesPanel repositoriesPanel = new RepositoriesPanel("repositories", false,
+		RepositoriesPanel repositoriesPanel = new RepositoriesPanel("repositoriesPanel", false,
 				repositories, getAccessRestrictions());
 		add(repositoriesPanel);
 	}
diff --git a/src/com/gitblit/wicket/pages/StandardPage.html b/src/com/gitblit/wicket/pages/StandardPage.html
deleted file mode 100644
index 14ec15c..0000000
--- a/src/com/gitblit/wicket/pages/StandardPage.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml"  
-      xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd"  
-      xml:lang="en"  
-      lang="en"> 
-
-<body>
-<wicket:extend>
-	<!-- topbar header -->
-	<div class="topbar">
-		<div class="fill">
-			<div class="container">
-				<a class="brand" wicket:id="rootLink">
-					<img src="gitblt_25_white.png" width="79" height="25" alt="gitblit" class="logo"/>
-				</a>
-			</div>
-		</div>
-	</div>
-	
-	<!-- feedback panel -->
-	<div style="text-align:center;padding-top:5px;" wicket:id="feedback">[Feedback Panel]</div>
-	
-	<!-- page header -->
-	<div class="page-header">
-		<h2><span wicket:id="pageName">[page name]</span> <small><span wicket:id="pageSubName">[sub name]</span></small></h2>
-	</div>
-	
-	<!-- Subclass Content -->
-	<wicket:child/>
-</wicket:extend>
-</body>
-</html>
\ No newline at end of file
diff --git a/src/com/gitblit/wicket/pages/TicketPage.html b/src/com/gitblit/wicket/pages/TicketPage.html
index 160bc0c..ed3eb22 100644
--- a/src/com/gitblit/wicket/pages/TicketPage.html
+++ b/src/com/gitblit/wicket/pages/TicketPage.html
@@ -8,7 +8,7 @@
 <wicket:extend>
 
 	<!-- ticket title -->
-	<div style="font-size:150%;padding-top:5px;" wicket:id="ticketTitle">[ticket title]</div>
+	<div style="font-size:150%;padding-top:5px;padding-bottom:5px;" wicket:id="ticketTitle">[ticket title]</div>
 		
 	<!-- ticket info -->
 	<table class="plain">
diff --git a/src/com/gitblit/wicket/pages/TicketPage.java b/src/com/gitblit/wicket/pages/TicketPage.java
index 48db1ce..d250a45 100644
--- a/src/com/gitblit/wicket/pages/TicketPage.java
+++ b/src/com/gitblit/wicket/pages/TicketPage.java
@@ -34,7 +34,7 @@
 	public TicketPage(PageParameters params) {
 		super(params);
 
-		final String ticketFolder = WicketUtils.getPath(params);
+		final String ticketFolder = WicketUtils.getObject(params);
 
 		Repository r = getRepository();
 		TicketModel t = TicgitUtils.getTicket(r, ticketFolder);
diff --git a/src/com/gitblit/wicket/pages/UsersPage.java b/src/com/gitblit/wicket/pages/UsersPage.java
index 9a7f8a5..b54b968 100644
--- a/src/com/gitblit/wicket/pages/UsersPage.java
+++ b/src/com/gitblit/wicket/pages/UsersPage.java
@@ -23,6 +23,7 @@
 
 	public UsersPage() {
 		super();		
+		setupPage("", "");
 
 		add(new UsersPanel("usersPanel", showAdmin).setVisible(showAdmin));
 	}

--
Gitblit v1.9.1