From fa5e6f97aab0faca8e11ab8a264b0190c145b07f Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 04 Nov 2011 17:25:00 -0400
Subject: [PATCH] Documentation.

---
 src/com/gitblit/client/GitblitClient.java |   54 +++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 51 insertions(+), 3 deletions(-)

diff --git a/src/com/gitblit/client/GitblitClient.java b/src/com/gitblit/client/GitblitClient.java
index cc2b458..e8460f5 100644
--- a/src/com/gitblit/client/GitblitClient.java
+++ b/src/com/gitblit/client/GitblitClient.java
@@ -25,6 +25,7 @@
 import java.util.Map;
 import java.util.Set;
 
+import com.gitblit.Constants;
 import com.gitblit.GitBlitException.ForbiddenException;
 import com.gitblit.GitBlitException.NotAllowedException;
 import com.gitblit.GitBlitException.UnauthorizedException;
@@ -38,6 +39,7 @@
 import com.gitblit.models.SyndicatedEntryModel;
 import com.gitblit.models.UserModel;
 import com.gitblit.utils.RpcUtils;
+import com.gitblit.utils.StringUtils;
 import com.gitblit.utils.SyndicationUtils;
 
 /**
@@ -96,6 +98,7 @@
 	}
 
 	public void login() throws IOException {
+		refreshSettings();
 		refreshAvailableFeeds();
 		refreshRepositories();
 
@@ -110,7 +113,6 @@
 			// credentials may not have administrator access
 			// or server may have disabled rpc management
 			refreshUsers();
-			refreshSettings();
 			allowManagement = true;
 		} catch (UnauthorizedException e) {
 		} catch (ForbiddenException e) {
@@ -132,7 +134,6 @@
 		} catch (IOException e) {
 			e.printStackTrace();
 		}
-
 	}
 
 	public boolean allowManagement() {
@@ -145,6 +146,33 @@
 
 	public boolean isOwner(RepositoryModel model) {
 		return account != null && account.equalsIgnoreCase(model.owner);
+	}
+
+	public String getURL(String action, String repository, String objectId) {
+		boolean mounted = settings.get(Keys.web.mountParameters).getBoolean(true);
+		StringBuilder sb = new StringBuilder();
+		sb.append(url);
+		sb.append('/');
+		sb.append(action);
+		sb.append('/');
+		if (mounted) {
+			// mounted url/action/repository/objectId
+			sb.append(StringUtils.encodeURL(repository));
+			if (!StringUtils.isEmpty(objectId)) {
+				sb.append('/');
+				sb.append(objectId);
+			}
+			return sb.toString();
+		} else {
+			// parameterized url/action/&r=repository&h=objectId
+			sb.append("?r=");
+			sb.append(repository);
+			if (!StringUtils.isEmpty(objectId)) {
+				sb.append("&h=");
+				sb.append(objectId);
+			}
+			return sb.toString();
+		}
 	}
 
 	public ServerSettings getSettings() {
@@ -186,17 +214,31 @@
 		return status;
 	}
 
+	public List<String> getBranches(String repository) {
+		List<FeedModel> feeds = getAvailableFeeds(repository);
+		List<String> branches = new ArrayList<String>();
+		for (FeedModel feed : feeds) {
+			branches.add(feed.branch);
+		}
+		Collections.sort(branches);
+		return branches;
+	}
+
 	public List<FeedModel> getAvailableFeeds() {
 		return availableFeeds;
 	}
 
 	public List<FeedModel> getAvailableFeeds(RepositoryModel repository) {
+		return getAvailableFeeds(repository.name);
+	}
+
+	public List<FeedModel> getAvailableFeeds(String repository) {
 		List<FeedModel> repositoryFeeds = new ArrayList<FeedModel>();
 		if (repository == null) {
 			return repositoryFeeds;
 		}
 		for (FeedModel feed : availableFeeds) {
-			if (feed.repository.equalsIgnoreCase(repository.name)) {
+			if (feed.repository.equalsIgnoreCase(repository)) {
 				repositoryFeeds.add(feed);
 			}
 		}
@@ -265,6 +307,12 @@
 		return syndicatedEntries;
 	}
 
+	public List<SyndicatedEntryModel> search(String repository, String branch, String fragment,
+			Constants.SearchType type, int numberOfEntries) throws IOException {
+		return SyndicationUtils.readSearchFeed(url, repository, branch, fragment, type,
+				numberOfEntries, account, password);
+	}
+
 	public List<FederationModel> refreshFederationRegistrations() throws IOException {
 		List<FederationModel> list = RpcUtils.getFederationRegistrations(url, account, password);
 		federationRegistrations.clear();

--
Gitblit v1.9.1