From a502d96a860456ec5e8c96761db70f7cabb74751 Mon Sep 17 00:00:00 2001
From: Paul Martin <paul@paulsputer.com>
Date: Sat, 30 Apr 2016 04:19:14 -0400
Subject: [PATCH] Merge pull request #1073 from gitblit/1062-DocEditorUpdates

---
 src/main/java/com/gitblit/wicket/panels/ProjectRepositoryPanel.java |  119 +++++++++++++----------------------------------------------
 1 files changed, 27 insertions(+), 92 deletions(-)

diff --git a/src/main/java/com/gitblit/wicket/panels/ProjectRepositoryPanel.java b/src/main/java/com/gitblit/wicket/panels/ProjectRepositoryPanel.java
index 7b4ee9f..efcb1cb 100644
--- a/src/main/java/com/gitblit/wicket/panels/ProjectRepositoryPanel.java
+++ b/src/main/java/com/gitblit/wicket/panels/ProjectRepositoryPanel.java
@@ -15,9 +15,6 @@
  */
 package com.gitblit.wicket.panels;
 
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.List;
 import java.util.Map;
 
 import org.apache.wicket.Component;
@@ -26,25 +23,20 @@
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.link.BookmarkablePageLink;
 import org.apache.wicket.markup.html.link.ExternalLink;
-import org.apache.wicket.markup.html.link.Link;
 import org.apache.wicket.markup.html.panel.Fragment;
 
 import com.gitblit.Constants.AccessRestrictionType;
-import com.gitblit.GitBlit;
 import com.gitblit.Keys;
-import com.gitblit.SyndicationServlet;
 import com.gitblit.models.RepositoryModel;
 import com.gitblit.models.UserModel;
+import com.gitblit.servlet.SyndicationServlet;
 import com.gitblit.utils.ArrayUtils;
 import com.gitblit.utils.StringUtils;
 import com.gitblit.wicket.GitBlitWebSession;
 import com.gitblit.wicket.WicketUtils;
-import com.gitblit.wicket.pages.BasePage;
-import com.gitblit.wicket.pages.DocsPage;
 import com.gitblit.wicket.pages.EditRepositoryPage;
 import com.gitblit.wicket.pages.LogPage;
 import com.gitblit.wicket.pages.SummaryPage;
-import com.gitblit.wicket.pages.TicketsPage;
 import com.gitblit.wicket.pages.TreePage;
 
 public class ProjectRepositoryPanel extends BasePanel {
@@ -56,21 +48,8 @@
 			final Map<AccessRestrictionType, String> accessRestrictions) {
 		super(wicketId);
 
-		final boolean showSwatch = GitBlit.getBoolean(Keys.web.repositoryListSwatches, true);
-		final boolean gitServlet = GitBlit.getBoolean(Keys.git.enableGitServlet, true);
-		final boolean showSize = GitBlit.getBoolean(Keys.web.showRepositorySizes, true);
-
-		// repository swatch
-		Component swatch;
-		if (entry.isBare) {
-			swatch = new Label("repositorySwatch", "&nbsp;").setEscapeModelStrings(false);
-		} else {
-			swatch = new Label("repositorySwatch", "!");
-			WicketUtils.setHtmlTooltip(swatch, localizer.getString("gb.workingCopyWarning", parent));
-		}
-		WicketUtils.setCssBackground(swatch, entry.toString());
-		add(swatch);
-		swatch.setVisible(showSwatch);
+		final boolean showSwatch = app().settings().getBoolean(Keys.web.repositoryListSwatches, true);
+		final boolean showSize = app().settings().getBoolean(Keys.web.showRepositorySizes, true);
 
 		PageParameters pp = WicketUtils.newRepositoryParameter(entry.name);
 		add(new LinkPanel("repositoryName", "list", StringUtils.getRelativePath(entry.projectPath,
@@ -78,11 +57,26 @@
 		add(new Label("repositoryDescription", entry.description).setVisible(!StringUtils
 				.isEmpty(entry.description)));
 
+		Fragment iconFragment;
+		if (entry.isMirror) {
+			iconFragment = new Fragment("repoIcon", "mirrorIconFragment", this);
+		} else if (entry.isFork()) {
+			iconFragment = new Fragment("repoIcon", "forkIconFragment", this);
+		} else if (entry.isBare) {
+			iconFragment = new Fragment("repoIcon", "repoIconFragment", this);
+		} else {
+			iconFragment = new Fragment("repoIcon", "cloneIconFragment", this);
+		}
+		if (showSwatch) {
+			WicketUtils.setCssStyle(iconFragment, "color:" + StringUtils.getColor(entry.toString()));
+		}
+		add(iconFragment);
+
 		if (StringUtils.isEmpty(entry.originRepository)) {
 			add(new Label("originRepository").setVisible(false));
 		} else {
 			Fragment forkFrag = new Fragment("originRepository", "originFragment", this);
-			forkFrag.add(new LinkPanel("originRepository", null, StringUtils.stripDotGit(entry.originRepository), 
+			forkFrag.add(new LinkPanel("originRepository", null, StringUtils.stripDotGit(entry.originRepository),
 					SummaryPage.class, WicketUtils.newRepositoryParameter(entry.originRepository)));
 			add(forkFrag);
 		}
@@ -93,10 +87,7 @@
 			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));
-
-		if (entry.isFrozen) {
+		if (!entry.isMirror && entry.isFrozen) {
 			add(WicketUtils.newImage("frozenIcon", "cold_16x16.png", localizer.getString("gb.isFrozen", parent)));
 		} else {
 			add(WicketUtils.newClearPixel("frozenIcon").setVisible(false));
@@ -107,36 +98,17 @@
 		} else {
 			add(WicketUtils.newClearPixel("federatedIcon").setVisible(false));
 		}
-		switch (entry.accessRestriction) {
-		case NONE:
-			add(WicketUtils.newBlankImage("accessRestrictionIcon").setVisible(false));
-			break;
-		case PUSH:
-			add(WicketUtils.newImage("accessRestrictionIcon", "lock_go_16x16.png",
-					accessRestrictions.get(entry.accessRestriction)));
-			break;
-		case CLONE:
-			add(WicketUtils.newImage("accessRestrictionIcon", "lock_pull_16x16.png",
-					accessRestrictions.get(entry.accessRestriction)));
-			break;
-		case VIEW:
-			add(WicketUtils.newImage("accessRestrictionIcon", "shield_16x16.png",
-					accessRestrictions.get(entry.accessRestriction)));
-			break;
-		default:
-			add(WicketUtils.newBlankImage("accessRestrictionIcon"));
-		}
 
 		if (ArrayUtils.isEmpty(entry.owners)) {
 			add(new Label("repositoryOwner").setVisible(false));
 		} else {
 			String owner = "";
 			for (String username : entry.owners) {
-				UserModel ownerModel = GitBlit.self().getUserModel(username);
-			
+				UserModel ownerModel = app().users().getUserModel(username);
+
 				if (ownerModel != null) {
 					owner = ownerModel.getDisplayName();
-				}				
+				}
 			}
 			if (entry.owners.size() > 1) {
 				owner += ", ...";
@@ -152,38 +124,10 @@
 			user = UserModel.ANONYMOUS;
 		}
 		Fragment repositoryLinks;
-		boolean showOwner = entry.isOwner(user.username);
-		// owner of personal repository gets admin powers
-		boolean showAdmin = isAdmin || entry.isUsersPersonalRepository(user.username);
-
-		if (showAdmin || showOwner) {
-			repositoryLinks = new Fragment("repositoryLinks", showAdmin ? "repositoryAdminLinks"
-					: "repositoryOwnerLinks", this);
+		if (user.canAdmin(entry)) {
+			repositoryLinks = new Fragment("repositoryLinks", "repositoryOwnerLinks", this);
 			repositoryLinks.add(new BookmarkablePageLink<Void>("editRepository", EditRepositoryPage.class,
 					WicketUtils.newRepositoryParameter(entry.name)));
-			if (showAdmin) {
-				Link<Void> deleteLink = new Link<Void>("deleteRepository") {
-
-					private static final long serialVersionUID = 1L;
-
-					@Override
-					public void onClick() {
-						if (GitBlit.self().deleteRepositoryModel(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));
-						}
-					}
-				};
-				deleteLink.add(new JavascriptEventConfirmation("onclick", MessageFormat.format(
-						localizer.getString("gb.deleteRepository", parent), entry)));
-				repositoryLinks.add(deleteLink);
-			}
 		} else {
 			repositoryLinks = new Fragment("repositoryLinks", "repositoryUserLinks", this);
 		}
@@ -214,16 +158,7 @@
 			add(new Label("repositorySize", localizer.getString("gb.empty", parent)).setEscapeModelStrings(false));
 		}
 
-		add(new ExternalLink("syndication", SyndicationServlet.asLink("", entry.name, null, 0)));
-
-		List<String> repositoryUrls = new ArrayList<String>();
-		if (gitServlet) {
-			// add the Gitblit repository url
-			repositoryUrls.add(BasePage.getRepositoryUrl(entry));
-		}
-		repositoryUrls.addAll(GitBlit.self().getOtherCloneUrls(entry.name));
-
-		String primaryUrl = ArrayUtils.isEmpty(repositoryUrls) ? "" : repositoryUrls.remove(0);
-		add(new RepositoryUrlPanel("repositoryCloneUrl", primaryUrl));
+		add(new ExternalLink("syndication", SyndicationServlet.asLink(getRequest()
+				.getRelativePathPrefixToContextRoot(), entry.name, null, 0)));
 	}
 }

--
Gitblit v1.9.1