From cb285cbfddfc0b633d6b8cdb4dc0d2bd2b8b51ef Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 05 Jan 2012 17:34:05 -0500
Subject: [PATCH] Fixed bug in receive hook for repositories in subfolders

---
 src/com/gitblit/client/GitblitRegistration.java |   36 +++++++++++++++++++++++++++++++++---
 1 files changed, 33 insertions(+), 3 deletions(-)

diff --git a/src/com/gitblit/client/GitblitRegistration.java b/src/com/gitblit/client/GitblitRegistration.java
index bdd8b23..f9d0748 100644
--- a/src/com/gitblit/client/GitblitRegistration.java
+++ b/src/com/gitblit/client/GitblitRegistration.java
@@ -16,8 +16,11 @@
 package com.gitblit.client;
 
 import java.io.Serializable;
+import java.util.ArrayList;
 import java.util.Date;
+import java.util.List;
 
+import com.gitblit.models.FeedModel;
 import com.gitblit.utils.StringUtils;
 
 /**
@@ -28,29 +31,56 @@
  */
 public class GitblitRegistration implements Serializable, Comparable<GitblitRegistration> {
 
-	public static final GitblitRegistration LOCALHOST = new GitblitRegistration("localhost",
-			"https://localhost:8443", "admin", "admin".toCharArray());
 	private static final long serialVersionUID = 1L;
 
 	String name;
 	String url;
 	String account;
 	char[] password;
+	boolean savePassword;
 	Date lastLogin;
+	final List<FeedModel> feeds;
 
 	public GitblitRegistration(String name, String url, String account, char[] password) {
 		this.url = url;
 		this.account = account;
 		this.password = password;
+		this.savePassword = password != null && password.length > 0;
 		if (StringUtils.isEmpty(name)) {
 			this.name = url.substring(url.indexOf("//") + 2);
 		} else {
 			this.name = name;
 		}
+		feeds = new ArrayList<FeedModel>();
+	}
+
+	public void updateSubscribedFeeds(List<FeedModel> list) {
+		for (FeedModel feed : list) {
+			if (feeds.contains(feed)) {
+				// possibly unsubscribe/remove feed
+				int index = feeds.indexOf(feed);
+				FeedModel existingFeed = feeds.get(index);
+				existingFeed.subscribed = feed.subscribed;
+				if (!existingFeed.subscribed) {
+					feeds.remove(index);
+				}
+			} else if (feed.subscribed) {
+				// new subscription
+				feeds.add(feed);
+			}
+		}
+	}
+
+	protected void cacheFeeds() {
 	}
 
 	@Override
 	public int compareTo(GitblitRegistration o) {
-		return name.compareTo(o.name);
+		return name.toLowerCase().compareTo(o.name.toLowerCase());
+	}
+
+	@Override
+	public String toString() {
+		return name + " (" + url + ")";
 	}
 }

--
Gitblit v1.9.1