Skip to content

Commit da71511

Browse files
committed
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.
1 parent 3928544 commit da71511

File tree

5 files changed

+26
-1
lines changed

5 files changed

+26
-1
lines changed

releases.moxie

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,15 @@ r19: {
1818
- Added pptx extension for tree page icon lookup
1919
- Fixed project links on dashboard page when web.mountParameters=false
2020
changes: ~
21-
additions: ~
21+
additions:
22+
- Add setting for maximum number of days of activity to that may be requested
2223
dependencyChanges: ~
2324
contributors:
2425
- github/guriguri
2526
- Doug Ayers
27+
- Ori Livneh
28+
settings:
29+
- { name: 'web.activityDurationMaximum', defaultValue: 30 }
2630
}
2731

2832
#

src/main/distrib/data/gitblit.properties

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -882,6 +882,11 @@ web.activityDuration = 7
882882
# SINCE 1.3.0
883883
web.activityDurationChoices = 1 3 7 14 21 28
884884

885+
# Maximum number of days of activity that may be displayed on the activity page.
886+
#
887+
# SINCE 1.3.2
888+
web.activityDurationMaximum = 30
889+
885890
# The number of days of commits to cache in memory for the dashboard, activity,
886891
# and project pages. A value of 0 will disable all caching and will parse commits
887892
# in each repository per-request. If the value > 0 these pages will try to fulfill

src/main/java/com/gitblit/wicket/pages/BasePage.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -325,6 +325,7 @@ protected List<ProjectModel> getProjects(PageParameters params) {
325325
String regex = WicketUtils.getRegEx(params);
326326
String team = WicketUtils.getTeam(params);
327327
int daysBack = params.getInt("db", 0);
328+
int maxDaysBack = GitBlit.getInteger(Keys.web.activityDurationMaximum, 30);
328329

329330
List<ProjectModel> availableModels = getProjectModels();
330331
Set<ProjectModel> models = new HashSet<ProjectModel>();
@@ -372,6 +373,9 @@ protected List<ProjectModel> getProjects(PageParameters params) {
372373

373374
// time-filter the list
374375
if (daysBack > 0) {
376+
if (maxDaysBack > 0 && daysBack > maxDaysBack) {
377+
daysBack = maxDaysBack;
378+
}
375379
Calendar cal = Calendar.getInstance();
376380
cal.set(Calendar.HOUR_OF_DAY, 0);
377381
cal.set(Calendar.MINUTE, 0);

src/main/java/com/gitblit/wicket/pages/MyDashboardPage.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,9 +96,13 @@ private void setup(PageParameters params) {
9696

9797
// parameters
9898
int daysBack = params == null ? 0 : WicketUtils.getDaysBack(params);
99+
int maxDaysBack = GitBlit.getInteger(Keys.web.activityDurationMaximum, 30);
99100
if (daysBack < 1) {
100101
daysBack = GitBlit.getInteger(Keys.web.activityDuration, 7);
101102
}
103+
if (maxDaysBack > 0 && daysBack > maxDaysBack) {
104+
daysBack = maxDaysBack;
105+
}
102106
Calendar c = Calendar.getInstance();
103107
c.add(Calendar.DATE, -1*daysBack);
104108
Date minimumDate = c.getTime();

src/main/java/com/gitblit/wicket/pages/RootPage.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -345,9 +345,13 @@ protected List<DropDownMenuItem> getRepositoryFilterItems(PageParameters params)
345345
protected List<DropDownMenuItem> getTimeFilterItems(PageParameters params) {
346346
// days back choices - additive parameters
347347
int daysBack = GitBlit.getInteger(Keys.web.activityDuration, 7);
348+
int maxDaysBack = GitBlit.getInteger(Keys.web.activityDurationMaximum, 30);
348349
if (daysBack < 1) {
349350
daysBack = 7;
350351
}
352+
if (daysBack > maxDaysBack) {
353+
daysBack = maxDaysBack;
354+
}
351355
PageParameters clonedParams;
352356
if (params == null) {
353357
clonedParams = new PageParameters();
@@ -397,6 +401,7 @@ protected List<RepositoryModel> getRepositories(PageParameters params) {
397401
String regex = WicketUtils.getRegEx(params);
398402
String team = WicketUtils.getTeam(params);
399403
int daysBack = params.getInt("db", 0);
404+
int maxDaysBack = GitBlit.getInteger(Keys.web.activityDurationMaximum, 30);
400405

401406
List<RepositoryModel> availableModels = getRepositoryModels();
402407
Set<RepositoryModel> models = new HashSet<RepositoryModel>();
@@ -487,6 +492,9 @@ protected List<RepositoryModel> getRepositories(PageParameters params) {
487492

488493
// time-filter the list
489494
if (daysBack > 0) {
495+
if (maxDaysBack > 0 && daysBack > maxDaysBack) {
496+
daysBack = maxDaysBack;
497+
}
490498
Calendar cal = Calendar.getInstance();
491499
cal.set(Calendar.HOUR_OF_DAY, 0);
492500
cal.set(Calendar.MINUTE, 0);

0 commit comments

Comments
 (0)