From 9effe1630d97039b3e01cd9b58ed07e75be1d63c Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Mon, 25 Feb 2013 08:40:30 -0500
Subject: [PATCH] Merge pull request #75 from thefake/master

---
 src/com/gitblit/wicket/panels/ProjectRepositoryPanel.java |   39 ++++++++++++++++++++++++++++++---------
 1 files changed, 30 insertions(+), 9 deletions(-)

diff --git a/src/com/gitblit/wicket/panels/ProjectRepositoryPanel.java b/src/com/gitblit/wicket/panels/ProjectRepositoryPanel.java
index c66fa60..7b4ee9f 100644
--- a/src/com/gitblit/wicket/panels/ProjectRepositoryPanel.java
+++ b/src/com/gitblit/wicket/panels/ProjectRepositoryPanel.java
@@ -87,6 +87,12 @@
 			add(forkFrag);
 		}
 
+		if (entry.isSparkleshared()) {
+			add(WicketUtils.newImage("sparkleshareIcon", "star_16x16.png", localizer.getString("gb.isSparkleshared", parent)));
+		} else {
+			add(WicketUtils.newClearPixel("sparkleshareIcon").setVisible(false));
+		}
+
 		add(new BookmarkablePageLink<Void>("tickets", TicketsPage.class, pp).setVisible(entry.useTickets));
 		add(new BookmarkablePageLink<Void>("docs", DocsPage.class, pp).setVisible(entry.useDocs));
 
@@ -121,21 +127,32 @@
 			add(WicketUtils.newBlankImage("accessRestrictionIcon"));
 		}
 
-		if (StringUtils.isEmpty(entry.owner)) {
+		if (ArrayUtils.isEmpty(entry.owners)) {
 			add(new Label("repositoryOwner").setVisible(false));
 		} else {
-			UserModel ownerModel = GitBlit.self().getUserModel(entry.owner);
-			String owner = entry.owner;
-			if (ownerModel != null) {
-				owner = ownerModel.getDisplayName();
+			String owner = "";
+			for (String username : entry.owners) {
+				UserModel ownerModel = GitBlit.self().getUserModel(username);
+			
+				if (ownerModel != null) {
+					owner = ownerModel.getDisplayName();
+				}				
 			}
-			add(new Label("repositoryOwner", owner + " (" +
+			if (entry.owners.size() > 1) {
+				owner += ", ...";
+			}
+			Label ownerLabel = (new Label("repositoryOwner", owner + " (" +
 					localizer.getString("gb.owner", parent) + ")"));
+			WicketUtils.setHtmlTooltip(ownerLabel, ArrayUtils.toString(entry.owners));
+			add(ownerLabel);
 		}
 
 		UserModel user = GitBlitWebSession.get().getUser();
+		if (user == null) {
+			user = UserModel.ANONYMOUS;
+		}
 		Fragment repositoryLinks;
-		boolean showOwner = user != null && user.username.equalsIgnoreCase(entry.owner);
+		boolean showOwner = entry.isOwner(user.username);
 		// owner of personal repository gets admin powers
 		boolean showAdmin = isAdmin || entry.isUsersPersonalRepository(user.username);
 
@@ -152,8 +169,12 @@
 					@Override
 					public void onClick() {
 						if (GitBlit.self().deleteRepositoryModel(entry)) {
-							info(MessageFormat.format(getString("gb.repositoryDeleted"), entry));
-							// TODO dp.remove(entry);
+							// redirect to the owning page
+							if (entry.isPersonalRepository()) {
+								setResponsePage(getPage().getClass(), WicketUtils.newUsernameParameter(entry.projectPath.substring(1)));
+							} else {
+								setResponsePage(getPage().getClass(), WicketUtils.newProjectParameter(entry.projectPath));
+							}
 						} else {
 							error(MessageFormat.format(getString("gb.repositoryDeleteFailed"), entry));
 						}

--
Gitblit v1.9.1