From fb6bf3a22e1bcaca11c1519328c73bf016b5cac0 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Mon, 01 Oct 2012 22:54:48 -0400
Subject: [PATCH] Show display name for owner, when possible

---
 src/com/gitblit/wicket/pages/UserPage.java                |    2 +-
 src/com/gitblit/wicket/panels/RepositoriesPanel.java      |    9 ++++++++-
 src/com/gitblit/wicket/pages/SummaryPage.java             |   14 +++++++++++++-
 src/com/gitblit/wicket/panels/ProjectRepositoryPanel.java |   25 +++++++++++++++++--------
 4 files changed, 39 insertions(+), 11 deletions(-)

diff --git a/src/com/gitblit/wicket/pages/SummaryPage.java b/src/com/gitblit/wicket/pages/SummaryPage.java
index 22b1c1a..8df2ceb 100644
--- a/src/com/gitblit/wicket/pages/SummaryPage.java
+++ b/src/com/gitblit/wicket/pages/SummaryPage.java
@@ -45,12 +45,14 @@
 import com.gitblit.models.Metric;
 import com.gitblit.models.PathModel;
 import com.gitblit.models.RepositoryModel;
+import com.gitblit.models.UserModel;
 import com.gitblit.utils.ArrayUtils;
 import com.gitblit.utils.JGitUtils;
 import com.gitblit.utils.MarkdownUtils;
 import com.gitblit.utils.StringUtils;
 import com.gitblit.wicket.WicketUtils;
 import com.gitblit.wicket.panels.BranchesPanel;
+import com.gitblit.wicket.panels.LinkPanel;
 import com.gitblit.wicket.panels.LogPanel;
 import com.gitblit.wicket.panels.RepositoryUrlPanel;
 import com.gitblit.wicket.panels.TagsPanel;
@@ -80,7 +82,17 @@
 
 		// repository description
 		add(new Label("repositoryDescription", getRepositoryModel().description));
-		add(new Label("repositoryOwner", getRepositoryModel().owner));
+		String owner = getRepositoryModel().owner;
+		if (StringUtils.isEmpty(owner)) {
+			add(new Label("repositoryOwner").setVisible(false));
+		} else {
+			UserModel ownerModel = GitBlit.self().getUserModel(owner);
+			if (ownerModel != null) {
+				add(new LinkPanel("repositoryOwner", null, ownerModel.getDisplayName(), UserPage.class, WicketUtils.newUsernameParameter(owner)));
+			} else {
+				add(new Label("repositoryOwner", owner));
+			}
+		}
 
 		add(WicketUtils.createTimestampLabel("repositoryLastChange",
 				JGitUtils.getLastChange(r), getTimeZone(), getTimeUtils()));
diff --git a/src/com/gitblit/wicket/pages/UserPage.java b/src/com/gitblit/wicket/pages/UserPage.java
index cabefb4..e366146 100644
--- a/src/com/gitblit/wicket/pages/UserPage.java
+++ b/src/com/gitblit/wicket/pages/UserPage.java
@@ -87,7 +87,7 @@
 		
 		ProjectModel project = GitBlit.self().getProjectModel(projectName);
 		if (project == null) {
-			throw new RedirectException(GitBlitWebApp.get().getHomePage());
+			project = new ProjectModel(projectName);
 		}
 		
 		add(new Label("userDisplayName", user.getDisplayName()));
diff --git a/src/com/gitblit/wicket/panels/ProjectRepositoryPanel.java b/src/com/gitblit/wicket/panels/ProjectRepositoryPanel.java
index f7deaf1..c66fa60 100644
--- a/src/com/gitblit/wicket/panels/ProjectRepositoryPanel.java
+++ b/src/com/gitblit/wicket/panels/ProjectRepositoryPanel.java
@@ -51,7 +51,7 @@
 
 	private static final long serialVersionUID = 1L;
 
-	public ProjectRepositoryPanel(String wicketId, Localizer localizer, Component owner,
+	public ProjectRepositoryPanel(String wicketId, Localizer localizer, Component parent,
 			final boolean isAdmin, final RepositoryModel entry,
 			final Map<AccessRestrictionType, String> accessRestrictions) {
 		super(wicketId);
@@ -66,7 +66,7 @@
 			swatch = new Label("repositorySwatch", "&nbsp;").setEscapeModelStrings(false);
 		} else {
 			swatch = new Label("repositorySwatch", "!");
-			WicketUtils.setHtmlTooltip(swatch, localizer.getString("gb.workingCopyWarning", owner));
+			WicketUtils.setHtmlTooltip(swatch, localizer.getString("gb.workingCopyWarning", parent));
 		}
 		WicketUtils.setCssBackground(swatch, entry.toString());
 		add(swatch);
@@ -91,13 +91,13 @@
 		add(new BookmarkablePageLink<Void>("docs", DocsPage.class, pp).setVisible(entry.useDocs));
 
 		if (entry.isFrozen) {
-			add(WicketUtils.newImage("frozenIcon", "cold_16x16.png", localizer.getString("gb.isFrozen", owner)));
+			add(WicketUtils.newImage("frozenIcon", "cold_16x16.png", localizer.getString("gb.isFrozen", parent)));
 		} else {
 			add(WicketUtils.newClearPixel("frozenIcon").setVisible(false));
 		}
 
 		if (entry.isFederated) {
-			add(WicketUtils.newImage("federatedIcon", "federated_16x16.png", localizer.getString("gb.isFederated", owner)));
+			add(WicketUtils.newImage("federatedIcon", "federated_16x16.png", localizer.getString("gb.isFederated", parent)));
 		} else {
 			add(WicketUtils.newClearPixel("federatedIcon").setVisible(false));
 		}
@@ -121,8 +121,17 @@
 			add(WicketUtils.newBlankImage("accessRestrictionIcon"));
 		}
 
-		add(new Label("repositoryOwner", StringUtils.isEmpty(entry.owner) ? "" : (entry.owner + " ("
-				+ localizer.getString("gb.owner", owner) + ")")));
+		if (StringUtils.isEmpty(entry.owner)) {
+			add(new Label("repositoryOwner").setVisible(false));
+		} else {
+			UserModel ownerModel = GitBlit.self().getUserModel(entry.owner);
+			String owner = entry.owner;
+			if (ownerModel != null) {
+				owner = ownerModel.getDisplayName();
+			}
+			add(new Label("repositoryOwner", owner + " (" +
+					localizer.getString("gb.owner", parent) + ")"));
+		}
 
 		UserModel user = GitBlitWebSession.get().getUser();
 		Fragment repositoryLinks;
@@ -151,7 +160,7 @@
 					}
 				};
 				deleteLink.add(new JavascriptEventConfirmation("onclick", MessageFormat.format(
-						localizer.getString("gb.deleteRepository", owner), entry)));
+						localizer.getString("gb.deleteRepository", parent), entry)));
 				repositoryLinks.add(deleteLink);
 			}
 		} else {
@@ -181,7 +190,7 @@
 			add(new Label("repositorySize", entry.size).setVisible(showSize));
 		} else {
 			// New repository
-			add(new Label("repositorySize", localizer.getString("gb.empty", owner)).setEscapeModelStrings(false));
+			add(new Label("repositorySize", localizer.getString("gb.empty", parent)).setEscapeModelStrings(false));
 		}
 
 		add(new ExternalLink("syndication", SyndicationServlet.asLink("", entry.name, null, 0)));
diff --git a/src/com/gitblit/wicket/panels/RepositoriesPanel.java b/src/com/gitblit/wicket/panels/RepositoriesPanel.java
index 0855780..4c9ed28 100644
--- a/src/com/gitblit/wicket/panels/RepositoriesPanel.java
+++ b/src/com/gitblit/wicket/panels/RepositoriesPanel.java
@@ -271,7 +271,14 @@
 					row.add(WicketUtils.newBlankImage("accessRestrictionIcon"));
 				}
 
-				row.add(new Label("repositoryOwner", entry.owner));
+				String owner = entry.owner;
+				if (!StringUtils.isEmpty(owner)) {
+					UserModel ownerModel = GitBlit.self().getUserModel(owner);
+					if (ownerModel != null) {
+						owner = ownerModel.getDisplayName();
+					}
+				}
+				row.add(new Label("repositoryOwner", owner));
 
 				String lastChange;
 				if (entry.lastChange.getTime() == 0) {

--
Gitblit v1.9.1