From 27ae9095639bb228a1b7ff86a3ebe4264abf05be Mon Sep 17 00:00:00 2001
From: mschaefers <mschaefers@scoop-gmbh.de>
Date: Thu, 29 Nov 2012 12:33:09 -0500
Subject: [PATCH] feature: when using LdapUserService one can configure Gitblit to fetch all users from ldap that can possibly login. This allows to see newly generated LDAP users instantly in Gitblit. By now an LDAP user had to log in once to appear in GitBlit.

---
 src/com/gitblit/wicket/pages/EmptyRepositoryPage.java |   29 +++++++++++++++++++++--------
 1 files changed, 21 insertions(+), 8 deletions(-)

diff --git a/src/com/gitblit/wicket/pages/EmptyRepositoryPage.java b/src/com/gitblit/wicket/pages/EmptyRepositoryPage.java
index b5f4a35..be0dad9 100644
--- a/src/com/gitblit/wicket/pages/EmptyRepositoryPage.java
+++ b/src/com/gitblit/wicket/pages/EmptyRepositoryPage.java
@@ -22,9 +22,11 @@
 import org.apache.wicket.PageParameters;
 import org.apache.wicket.markup.html.basic.Label;
 
-import com.gitblit.Constants;
 import com.gitblit.GitBlit;
 import com.gitblit.Keys;
+import com.gitblit.models.RepositoryModel;
+import com.gitblit.utils.ArrayUtils;
+import com.gitblit.wicket.GitblitRedirectException;
 import com.gitblit.wicket.WicketUtils;
 import com.gitblit.wicket.panels.RepositoryUrlPanel;
 
@@ -33,22 +35,33 @@
 	public EmptyRepositoryPage(PageParameters params) {
 		super(params);
 
+		setVersioned(false);
+
 		String repositoryName = WicketUtils.getRepositoryName(params);
+		RepositoryModel repository = GitBlit.self().getRepositoryModel(repositoryName);
+		if (repository == null) {
+			error(getString("gb.canNotLoadRepository") + " " + repositoryName, true);
+		}
+		
+		if (repository.hasCommits) {
+			// redirect to the summary page if this repository is not empty
+			throw new GitblitRedirectException(SummaryPage.class, params);
+		}
+		
 		setupPage(repositoryName, getString("gb.emptyRepository"));
 
 		List<String> repositoryUrls = new ArrayList<String>();
 
 		if (GitBlit.getBoolean(Keys.git.enableGitServlet, true)) {
-			StringBuilder sb = new StringBuilder();
-			sb.append(WicketUtils.getGitblitURL(getRequestCycle().getRequest()));
-			sb.append(Constants.GIT_PATH);
-			sb.append(repositoryName);
-			repositoryUrls.add(sb.toString());
+			// add the Gitblit repository url
+			repositoryUrls.add(getRepositoryUrl(repository));
 		}
 		repositoryUrls.addAll(GitBlit.self().getOtherCloneUrls(repositoryName));
 		
+		String primaryUrl = ArrayUtils.isEmpty(repositoryUrls) ? "" : repositoryUrls.get(0);
 		add(new Label("repository", repositoryName));
-		add(new RepositoryUrlPanel("pushurl", repositoryUrls.get(0)));
-		add(new Label("syntax", MessageFormat.format("git remote add gitblit {0}\ngit push gitblit master", repositoryUrls.get(0))));
+		add(new RepositoryUrlPanel("pushurl", primaryUrl));
+		add(new Label("cloneSyntax", MessageFormat.format("git clone {0}", repositoryUrls.get(0))));
+		add(new Label("remoteSyntax", MessageFormat.format("git remote add gitblit {0}\ngit push gitblit master", primaryUrl)));
 	}
 }

--
Gitblit v1.9.1