From e19d3da3cdb4e3d0524e3a3ffc6a2cfa8876e927 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Wed, 16 Nov 2011 22:33:18 -0500
Subject: [PATCH] Metric object now implements comparable. Adjust gravatar css.

---
 src/com/gitblit/client/GitblitClient.java |   53 +++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 37 insertions(+), 16 deletions(-)

diff --git a/src/com/gitblit/client/GitblitClient.java b/src/com/gitblit/client/GitblitClient.java
index dcc7dfc..c027537 100644
--- a/src/com/gitblit/client/GitblitClient.java
+++ b/src/com/gitblit/client/GitblitClient.java
@@ -25,17 +25,18 @@
 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;
 import com.gitblit.GitBlitException.UnknownRequestException;
 import com.gitblit.Keys;
 import com.gitblit.models.FederationModel;
+import com.gitblit.models.FeedEntryModel;
 import com.gitblit.models.FeedModel;
 import com.gitblit.models.RepositoryModel;
 import com.gitblit.models.ServerSettings;
 import com.gitblit.models.ServerStatus;
-import com.gitblit.models.SyndicatedEntryModel;
 import com.gitblit.models.UserModel;
 import com.gitblit.utils.RpcUtils;
 import com.gitblit.utils.StringUtils;
@@ -76,7 +77,7 @@
 
 	private final List<FeedModel> availableFeeds;
 
-	private final List<SyndicatedEntryModel> syndicatedEntries;
+	private final List<FeedEntryModel> syndicatedEntries;
 
 	private final Set<String> subscribedRepositories;
 
@@ -92,7 +93,7 @@
 		this.allRepositories = new ArrayList<RepositoryModel>();
 		this.federationRegistrations = new ArrayList<FederationModel>();
 		this.availableFeeds = new ArrayList<FeedModel>();
-		this.syndicatedEntries = new ArrayList<SyndicatedEntryModel>();
+		this.syndicatedEntries = new ArrayList<FeedEntryModel>();
 		this.subscribedRepositories = new HashSet<String>();
 	}
 
@@ -100,13 +101,7 @@
 		refreshSettings();
 		refreshAvailableFeeds();
 		refreshRepositories();
-
-		try {
-			// RSS feeds may be disabled by server
-			refreshSubscribedFeeds();
-		} catch (IOException e) {
-			e.printStackTrace();
-		}
+		refreshSubscribedFeeds(0);
 
 		try {
 			// credentials may not have administrator access
@@ -213,17 +208,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);
 			}
 		}
@@ -238,14 +247,14 @@
 		return availableFeeds;
 	}
 
-	public List<SyndicatedEntryModel> refreshSubscribedFeeds() throws IOException {
-		Set<SyndicatedEntryModel> allEntries = new HashSet<SyndicatedEntryModel>();
+	public List<FeedEntryModel> refreshSubscribedFeeds(int page) throws IOException {
+		Set<FeedEntryModel> allEntries = new HashSet<FeedEntryModel>();
 		if (reg.feeds.size() > 0) {
 			for (FeedModel feed : reg.feeds) {
 				feed.lastRefreshDate = feed.currentRefreshDate;
 				feed.currentRefreshDate = new Date();
-				List<SyndicatedEntryModel> entries = SyndicationUtils.readFeed(url,
-						feed.repository, feed.branch, -1, account, password);
+				List<FeedEntryModel> entries = SyndicationUtils.readFeed(url,
+						feed.repository, feed.branch, -1, page, account, password);
 				allEntries.addAll(entries);
 			}
 		}
@@ -288,10 +297,22 @@
 		return subscribedRepositories.contains(repository.name.toLowerCase());
 	}
 
-	public List<SyndicatedEntryModel> getSyndicatedEntries() {
+	public List<FeedEntryModel> getSyndicatedEntries() {
 		return syndicatedEntries;
 	}
 
+	public List<FeedEntryModel> log(String repository, String branch, int numberOfEntries,
+			int page) throws IOException {
+		return SyndicationUtils.readFeed(url, repository, branch, numberOfEntries, page, account,
+				password);
+	}
+
+	public List<FeedEntryModel> search(String repository, String branch, String fragment,
+			Constants.SearchType type, int numberOfEntries, int page) throws IOException {
+		return SyndicationUtils.readSearchFeed(url, repository, branch, fragment, type,
+				numberOfEntries, page, account, password);
+	}
+
 	public List<FederationModel> refreshFederationRegistrations() throws IOException {
 		List<FederationModel> list = RpcUtils.getFederationRegistrations(url, account, password);
 		federationRegistrations.clear();

--
Gitblit v1.9.1