From e33b91aa4d43246ad62832e66e2acfad3dfb3608 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 04 Nov 2011 22:28:32 -0400
Subject: [PATCH] Support pagination in RSS feeds. Standardize pg as page parameter.

---
 src/com/gitblit/SyndicationServlet.java |   14 +++++++++++---
 1 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/com/gitblit/SyndicationServlet.java b/src/com/gitblit/SyndicationServlet.java
index 128df43..39e37ca 100644
--- a/src/com/gitblit/SyndicationServlet.java
+++ b/src/com/gitblit/SyndicationServlet.java
@@ -129,6 +129,7 @@
 		String repositoryName = url;
 		String objectId = request.getParameter("h");
 		String l = request.getParameter("l");
+		String page = request.getParameter("pg");
 		String searchString = request.getParameter("s");
 		Constants.SearchType searchType = Constants.SearchType.COMMIT;
 		if (!StringUtils.isEmpty(request.getParameter("st"))) {
@@ -147,6 +148,13 @@
 			} catch (NumberFormatException x) {
 			}
 		}
+		int offset = 0;
+		if (!StringUtils.isEmpty(page)) {
+			try {
+				offset = length * Integer.parseInt(page);
+			} catch (NumberFormatException x) {
+			}
+		}
 
 		response.setContentType("application/rss+xml; charset=UTF-8");
 		Repository repository = GitBlit.self().getRepository(repositoryName);
@@ -154,11 +162,11 @@
 		List<RevCommit> commits;
 		if (StringUtils.isEmpty(searchString)) {
 			// standard log/history lookup
-			commits = JGitUtils.getRevLog(repository, objectId, 0, length);
+			commits = JGitUtils.getRevLog(repository, objectId, offset, length);
 		} else {
 			// repository search
-			commits = JGitUtils.searchRevlogs(repository, objectId, searchString, searchType, 0,
-					length);
+			commits = JGitUtils.searchRevlogs(repository, objectId, searchString, searchType,
+					offset, length);
 		}
 		Map<ObjectId, List<RefModel>> allRefs = JGitUtils.getAllRefs(repository);
 		List<SyndicatedEntryModel> entries = new ArrayList<SyndicatedEntryModel>();

--
Gitblit v1.9.1