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/wicket/pages/ActivityPage.java | 80 +++++++++++++++++++++++----------------- 1 files changed, 46 insertions(+), 34 deletions(-) diff --git a/src/com/gitblit/wicket/pages/ActivityPage.java b/src/com/gitblit/wicket/pages/ActivityPage.java index 011eef1..d548cfb 100644 --- a/src/com/gitblit/wicket/pages/ActivityPage.java +++ b/src/com/gitblit/wicket/pages/ActivityPage.java @@ -17,7 +17,6 @@ import java.text.MessageFormat; import java.text.SimpleDateFormat; -import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; @@ -25,18 +24,20 @@ import java.util.Map; import java.util.Set; +import org.apache.wicket.Application; import org.apache.wicket.PageParameters; import org.apache.wicket.behavior.HeaderContributor; import org.apache.wicket.markup.html.basic.Label; import com.gitblit.GitBlit; +import com.gitblit.Keys; import com.gitblit.models.Activity; import com.gitblit.models.Metric; import com.gitblit.models.RepositoryModel; -import com.gitblit.models.UserModel; import com.gitblit.utils.ActivityUtils; -import com.gitblit.utils.StringUtils; -import com.gitblit.wicket.GitBlitWebSession; +import com.gitblit.wicket.PageRegistration; +import com.gitblit.wicket.PageRegistration.DropDownMenuItem; +import com.gitblit.wicket.PageRegistration.DropDownMenuRegistration; import com.gitblit.wicket.WicketUtils; import com.gitblit.wicket.charting.GoogleChart; import com.gitblit.wicket.charting.GoogleCharts; @@ -54,7 +55,7 @@ public class ActivityPage extends RootPage { public ActivityPage(PageParameters params) { - super(); + super(params); setupPage("", ""); // parameters @@ -96,40 +97,33 @@ } } - private List<RepositoryModel> getRepositories(PageParameters params) { - final UserModel user = GitBlitWebSession.get().getUser(); - String set = WicketUtils.getSet(params); - String repositoryName = WicketUtils.getRepositoryName(params); + @Override + protected boolean reusePageParameters() { + return true; + } - List<RepositoryModel> models = null; - if (!StringUtils.isEmpty(repositoryName)) { - // named repository - models = new ArrayList<RepositoryModel>(); - RepositoryModel model = GitBlit.self().getRepositoryModel(repositoryName); - if (user.canAccessRepository(model)) { - models.add(model); - } + @Override + protected void addDropDownMenus(List<PageRegistration> pages) { + DropDownMenuRegistration filters = new DropDownMenuRegistration("gb.filters", + ActivityPage.class); + + PageParameters currentParameters = getPageParameters(); + int daysBack = GitBlit.getInteger(Keys.web.activityDuration, 14); + if (currentParameters != null && !currentParameters.containsKey("db")) { + currentParameters.put("db", daysBack); } - // get all user accessible repositories - if (models == null) { - models = GitBlit.self().getRepositoryModels(user); - } + // preserve time filter options on repository choices + filters.menuItems.addAll(getRepositoryFilterItems(currentParameters)); - // filter the repositories by the specified set - if (!StringUtils.isEmpty(set)) { - List<String> sets = StringUtils.getStringsFromValue(set, ","); - List<RepositoryModel> setModels = new ArrayList<RepositoryModel>(); - for (RepositoryModel model : models) { - for (String curr : sets) { - if (model.federationSets.contains(curr)) { - setModels.add(model); - } - } - } - models = setModels; + // preserve repository filter options on time choices + filters.menuItems.addAll(getTimeFilterItems(currentParameters)); + + if (filters.menuItems.size() > 0) { + // Reset Filter + filters.menuItems.add(new DropDownMenuItem(getString("gb.reset"), null, null)); } - return models; + pages.add(filters); } /** @@ -208,4 +202,22 @@ return charts; } + + @Override + protected void onBeforeRender() { + if (GitBlit.isDebugMode()) { + // strip Wicket tags in debug mode for jQuery DOM traversal + Application.get().getMarkupSettings().setStripWicketTags(true); + } + super.onBeforeRender(); + } + + @Override + protected void onAfterRender() { + if (GitBlit.isDebugMode()) { + // restore Wicket debug tags + Application.get().getMarkupSettings().setStripWicketTags(false); + } + super.onAfterRender(); + } } -- Gitblit v1.9.1