From acb5bdf953e4242c175b22b4ddd2197079ee6ace Mon Sep 17 00:00:00 2001
From: Florian Zschocke <florian.zschocke@cycos.com>
Date: Wed, 21 Aug 2013 08:30:01 -0400
Subject: [PATCH] Maintain repository 'description' file.

---
 src/main/java/com/gitblit/wicket/pages/MyDashboardPage.java |   21 ++++++++++++++++++---
 1 files changed, 18 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..32c128d 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() {
@@ -94,7 +97,7 @@
 		// parameters
 		int daysBack = params == null ? 0 : WicketUtils.getDaysBack(params);
 		if (daysBack < 1) {
-			daysBack = 7;
+			daysBack = GitBlit.getInteger(Keys.web.activityDuration, 7);
 		}
 		Calendar c = Calendar.getInstance();
 		c.add(Calendar.DATE, -1*daysBack);
@@ -130,14 +133,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 +189,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