From 7847af6e63e7adef6ec8d99a1809e91472d2bc2d Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 05 Sep 2013 09:14:22 -0400
Subject: [PATCH] Restore blockpush and localclone hooks to binaries (issue-303)

---
 src/main/java/com/gitblit/wicket/pages/MyDashboardPage.java |   25 ++++++++++++++++++++++---
 1 files changed, 22 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/gitblit/wicket/pages/MyDashboardPage.java b/src/main/java/com/gitblit/wicket/pages/MyDashboardPage.java
index f6f9685..0768b2a 100644
--- a/src/main/java/com/gitblit/wicket/pages/MyDashboardPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/MyDashboardPage.java
@@ -43,11 +43,14 @@
 import com.gitblit.utils.ArrayUtils;
 import com.gitblit.utils.MarkdownUtils;
 import com.gitblit.utils.StringUtils;
+import com.gitblit.wicket.CacheControl;
 import com.gitblit.wicket.GitBlitWebSession;
 import com.gitblit.wicket.WicketUtils;
+import com.gitblit.wicket.CacheControl.LastModified;
 import com.gitblit.wicket.panels.FilterableProjectList;
 import com.gitblit.wicket.panels.FilterableRepositoryList;
 
+@CacheControl(LastModified.ACTIVITY)
 public class MyDashboardPage extends DashboardPage {
 
 	public MyDashboardPage() {
@@ -93,8 +96,12 @@
 
 		// parameters
 		int daysBack = params == null ? 0 : WicketUtils.getDaysBack(params);
+		int maxDaysBack = GitBlit.getInteger(Keys.web.activityDurationMaximum, 30);
 		if (daysBack < 1) {
-			daysBack = 7;
+			daysBack = GitBlit.getInteger(Keys.web.activityDuration, 7);
+		}
+		if (maxDaysBack > 0 && daysBack > maxDaysBack) {
+			daysBack = maxDaysBack;
 		}
 		Calendar c = Calendar.getInstance();
 		c.add(Calendar.DATE, -1*daysBack);
@@ -130,14 +137,26 @@
 		Collections.sort(starred, lastUpdateSort);
 		Collections.sort(active, lastUpdateSort);
 		
+		String activityTitle;
 		Set<RepositoryModel> feed = new HashSet<RepositoryModel>();
 		feed.addAll(starred);
 		feed.addAll(owned);
 		if (feed.isEmpty()) {
+			// no starred or owned, go with recent activity
+			activityTitle = getString("gb.recentActivity");
 			feed.addAll(active);
+		} else if (starred.isEmpty()){
+			// no starred, owned repos feed
+			activityTitle = getString("gb.owned");
+		} else if (owned.isEmpty()){
+			// no owned, starred repos feed
+			activityTitle = getString("gb.starred");
+		} else {
+			// starred and owned repositories
+			activityTitle = getString("gb.starredAndOwned");
 		}
 		
-		addActivity(user, feed, starred.size() > 0 || owned.size() > 0, daysBack);
+		addActivity(user, feed, activityTitle, daysBack);
 		
 		Fragment repositoryTabs;
 		if (UserModel.ANONYMOUS.equals(user)) {
@@ -174,7 +193,7 @@
 		if (ArrayUtils.isEmpty(owned)) {
 			repositoryTabs.add(new Label("owned").setVisible(false));
 		} else {
-			FilterableRepositoryList repoList = new FilterableRepositoryList("owned", starred);
+			FilterableRepositoryList repoList = new FilterableRepositoryList("owned", owned);
 			repoList.setTitle(getString("gb.myRepositories"), "icon-user");
 			repoList.setAllowCreate(user.canCreate() || user.canAdmin());
 			repositoryTabs.add(repoList);

--
Gitblit v1.9.1