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/RepositoryPage.java | 26 ++++++++++++++++++++++++++ 1 files changed, 26 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/gitblit/wicket/pages/RepositoryPage.java b/src/main/java/com/gitblit/wicket/pages/RepositoryPage.java index 372b68d..f5b8c96 100644 --- a/src/main/java/com/gitblit/wicket/pages/RepositoryPage.java +++ b/src/main/java/com/gitblit/wicket/pages/RepositoryPage.java @@ -19,6 +19,7 @@ import java.text.MessageFormat; import java.util.ArrayList; import java.util.Arrays; +import java.util.Date; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.LinkedHashSet; @@ -63,6 +64,7 @@ import com.gitblit.utils.RefLogUtils; import com.gitblit.utils.StringUtils; import com.gitblit.utils.TicgitUtils; +import com.gitblit.wicket.CacheControl; import com.gitblit.wicket.GitBlitWebSession; import com.gitblit.wicket.PageRegistration; import com.gitblit.wicket.PageRegistration.OtherPageLink; @@ -572,6 +574,30 @@ setupPage(repositoryName, "/ " + getPageName()); super.onBeforeRender(); } + + @Override + protected void setLastModified() { + if (getClass().isAnnotationPresent(CacheControl.class)) { + CacheControl cacheControl = getClass().getAnnotation(CacheControl.class); + switch (cacheControl.value()) { + case REPOSITORY: + RepositoryModel repository = getRepositoryModel(); + if (repository != null) { + setLastModified(repository.lastChange); + } + break; + case COMMIT: + RevCommit commit = getCommit(); + if (commit != null) { + Date commitDate = JGitUtils.getCommitDate(commit); + setLastModified(commitDate); + } + break; + default: + super.setLastModified(); + } + } + } protected PageParameters newRepositoryParameter() { return WicketUtils.newRepositoryParameter(repositoryName); -- Gitblit v1.9.1