From 0096569bfdb8eb3cd7483a0d40f42c99b5be93bb Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 19 Jul 2013 11:13:41 -0400
Subject: [PATCH] Fixed missing clone url on the empty repository page

---
 src/main/java/com/gitblit/wicket/pages/ProjectPage.java |   30 ++++++++++++++++++++++++++----
 1 files changed, 26 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/gitblit/wicket/pages/ProjectPage.java b/src/main/java/com/gitblit/wicket/pages/ProjectPage.java
index bfc8493..c938891 100644
--- a/src/main/java/com/gitblit/wicket/pages/ProjectPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/ProjectPage.java
@@ -33,6 +33,8 @@
 import com.gitblit.models.UserModel;
 import com.gitblit.utils.MarkdownUtils;
 import com.gitblit.utils.StringUtils;
+import com.gitblit.wicket.CacheControl;
+import com.gitblit.wicket.CacheControl.LastModified;
 import com.gitblit.wicket.GitBlitWebApp;
 import com.gitblit.wicket.GitBlitWebSession;
 import com.gitblit.wicket.GitblitRedirectException;
@@ -42,6 +44,7 @@
 import com.gitblit.wicket.WicketUtils;
 import com.gitblit.wicket.panels.FilterableRepositoryList;
 
+@CacheControl(LastModified.PROJECT)
 public class ProjectPage extends DashboardPage {
 	
 	List<ProjectModel> projectModels = new ArrayList<ProjectModel>();
@@ -60,6 +63,26 @@
 		return RepositoriesPage.class;
 	}
 
+	@Override
+	protected void setLastModified() {
+		if (getClass().isAnnotationPresent(CacheControl.class)) {
+			CacheControl cacheControl = getClass().getAnnotation(CacheControl.class);
+			switch (cacheControl.value()) {
+			case PROJECT:
+				String projectName = WicketUtils.getProjectName(getPageParameters());
+				if (!StringUtils.isEmpty(projectName)) {
+					ProjectModel project = getProjectModel(projectName);
+					if (project != null) {
+						setLastModified(project.lastChange);
+					}
+				}
+				break;
+			default:
+				super.setLastModified();
+			}
+		}
+	}
+	
 	private void setup(PageParameters params) {
 		setupPage("", "");
 		// check to see if we should display a login message
@@ -106,12 +129,12 @@
 		}
 		int daysBack = params == null ? 0 : WicketUtils.getDaysBack(params);
 		if (daysBack < 1) {
-			daysBack = 7;
+			daysBack = GitBlit.getInteger(Keys.web.activityDuration, 7);
 		}
 		// reset the daysback parameter so that we have a complete project
 		// repository list.  the recent activity will be built up by the
 		// reflog utils.
-		params.put("db", 0);
+		params.remove("db");
 		
 		List<RepositoryModel> repositories = getRepositories(params);
 		Collections.sort(repositories, new Comparator<RepositoryModel>() {
@@ -122,8 +145,7 @@
 			}
 		});
 
-		
-		addActivity(user, repositories, false, daysBack);
+		addActivity(user, repositories, getString("gb.recentActivity"), daysBack);
 		
 		if (repositories.isEmpty()) {
 			add(new Label("repositoryList").setVisible(false));

--
Gitblit v1.9.1