From da71511be5a4d205e571b548d6330ed7f7b72d99 Mon Sep 17 00:00:00 2001 From: Ori Livneh Date: Sun, 11 Aug 2013 10:05:10 +0800 Subject: [PATCH] Add setting to cap number of activity days to display This patch adds a setting, 'web.activityDurationMaximum', that specifies the maximum number of days of activity that may be requested. The default value is 30. When the number of days requested exceeds this value, the request is handled as though the maximum value was requested. --- releases.moxie | 6 +++++- src/main/distrib/data/gitblit.properties | 5 +++++ src/main/java/com/gitblit/wicket/pages/BasePage.java | 4 ++++ .../java/com/gitblit/wicket/pages/MyDashboardPage.java | 4 ++++ src/main/java/com/gitblit/wicket/pages/RootPage.java | 8 ++++++++ 5 files changed, 26 insertions(+), 1 deletion(-) diff --git a/releases.moxie b/releases.moxie index fcbdb7b76..fea449950 100644 --- a/releases.moxie +++ b/releases.moxie @@ -18,11 +18,15 @@ r19: { - Added pptx extension for tree page icon lookup - Fixed project links on dashboard page when web.mountParameters=false changes: ~ - additions: ~ + additions: + - Add setting for maximum number of days of activity to that may be requested dependencyChanges: ~ contributors: - github/guriguri - Doug Ayers + - Ori Livneh + settings: + - { name: 'web.activityDurationMaximum', defaultValue: 30 } } # diff --git a/src/main/distrib/data/gitblit.properties b/src/main/distrib/data/gitblit.properties index 7f2f8b48c..770bd39d5 100644 --- a/src/main/distrib/data/gitblit.properties +++ b/src/main/distrib/data/gitblit.properties @@ -882,6 +882,11 @@ web.activityDuration = 7 # SINCE 1.3.0 web.activityDurationChoices = 1 3 7 14 21 28 +# Maximum number of days of activity that may be displayed on the activity page. +# +# SINCE 1.3.2 +web.activityDurationMaximum = 30 + # The number of days of commits to cache in memory for the dashboard, activity, # and project pages. A value of 0 will disable all caching and will parse commits # in each repository per-request. If the value > 0 these pages will try to fulfill diff --git a/src/main/java/com/gitblit/wicket/pages/BasePage.java b/src/main/java/com/gitblit/wicket/pages/BasePage.java index c9e11b089..2bab11839 100644 --- a/src/main/java/com/gitblit/wicket/pages/BasePage.java +++ b/src/main/java/com/gitblit/wicket/pages/BasePage.java @@ -325,6 +325,7 @@ protected List getProjects(PageParameters params) { String regex = WicketUtils.getRegEx(params); String team = WicketUtils.getTeam(params); int daysBack = params.getInt("db", 0); + int maxDaysBack = GitBlit.getInteger(Keys.web.activityDurationMaximum, 30); List availableModels = getProjectModels(); Set models = new HashSet(); @@ -372,6 +373,9 @@ protected List getProjects(PageParameters params) { // time-filter the list if (daysBack > 0) { + if (maxDaysBack > 0 && daysBack > maxDaysBack) { + daysBack = maxDaysBack; + } Calendar cal = Calendar.getInstance(); cal.set(Calendar.HOUR_OF_DAY, 0); cal.set(Calendar.MINUTE, 0); diff --git a/src/main/java/com/gitblit/wicket/pages/MyDashboardPage.java b/src/main/java/com/gitblit/wicket/pages/MyDashboardPage.java index 32c128da2..0768b2acc 100644 --- a/src/main/java/com/gitblit/wicket/pages/MyDashboardPage.java +++ b/src/main/java/com/gitblit/wicket/pages/MyDashboardPage.java @@ -96,9 +96,13 @@ private void setup(PageParameters params) { // parameters int daysBack = params == null ? 0 : WicketUtils.getDaysBack(params); + int maxDaysBack = GitBlit.getInteger(Keys.web.activityDurationMaximum, 30); if (daysBack < 1) { daysBack = GitBlit.getInteger(Keys.web.activityDuration, 7); } + if (maxDaysBack > 0 && daysBack > maxDaysBack) { + daysBack = maxDaysBack; + } Calendar c = Calendar.getInstance(); c.add(Calendar.DATE, -1*daysBack); Date minimumDate = c.getTime(); diff --git a/src/main/java/com/gitblit/wicket/pages/RootPage.java b/src/main/java/com/gitblit/wicket/pages/RootPage.java index 7739e6dff..a81d63f47 100644 --- a/src/main/java/com/gitblit/wicket/pages/RootPage.java +++ b/src/main/java/com/gitblit/wicket/pages/RootPage.java @@ -345,9 +345,13 @@ protected List getRepositoryFilterItems(PageParameters params) protected List getTimeFilterItems(PageParameters params) { // days back choices - additive parameters int daysBack = GitBlit.getInteger(Keys.web.activityDuration, 7); + int maxDaysBack = GitBlit.getInteger(Keys.web.activityDurationMaximum, 30); if (daysBack < 1) { daysBack = 7; } + if (daysBack > maxDaysBack) { + daysBack = maxDaysBack; + } PageParameters clonedParams; if (params == null) { clonedParams = new PageParameters(); @@ -397,6 +401,7 @@ protected List getRepositories(PageParameters params) { String regex = WicketUtils.getRegEx(params); String team = WicketUtils.getTeam(params); int daysBack = params.getInt("db", 0); + int maxDaysBack = GitBlit.getInteger(Keys.web.activityDurationMaximum, 30); List availableModels = getRepositoryModels(); Set models = new HashSet(); @@ -487,6 +492,9 @@ protected List getRepositories(PageParameters params) { // time-filter the list if (daysBack > 0) { + if (maxDaysBack > 0 && daysBack > maxDaysBack) { + daysBack = maxDaysBack; + } Calendar cal = Calendar.getInstance(); cal.set(Calendar.HOUR_OF_DAY, 0); cal.set(Calendar.MINUTE, 0);