]> source.dussan.org Git - gitblit.git/commitdiff
Add setting to cap number of activity days to display 111/head
authorOri Livneh <ori@wikimedia.org>
Sun, 11 Aug 2013 02:05:10 +0000 (10:05 +0800)
committerOri Livneh <ori@wikimedia.org>
Sun, 11 Aug 2013 03:33:54 +0000 (11:33 +0800)
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
src/main/distrib/data/gitblit.properties
src/main/java/com/gitblit/wicket/pages/BasePage.java
src/main/java/com/gitblit/wicket/pages/MyDashboardPage.java
src/main/java/com/gitblit/wicket/pages/RootPage.java

index fcbdb7b76fd2d514d1474f5f816821ddacfc19f0..fea4499506b9dc86adf6ea431379bf3e420f9d4b 100644 (file)
@@ -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 }
 }
 
 #
index 7f2f8b48ca5fa256a604f66f4e9bcade5d5bb95c..770bd39d5f42631c2c227632ed2e8a473c459687 100644 (file)
@@ -882,6 +882,11 @@ web.activityDuration = 7
 # SINCE 1.3.0\r
 web.activityDurationChoices = 1 3 7 14 21 28\r
 \r
+# Maximum number of days of activity that may be displayed on the activity page.\r
+#\r
+# SINCE 1.3.2\r
+web.activityDurationMaximum = 30\r
+\r
 # The number of days of commits to cache in memory for the dashboard, activity,\r
 # and project pages.  A value of 0 will disable all caching and will parse commits\r
 # in each repository per-request.  If the value > 0 these pages will try to fulfill\r
index c9e11b0899f098443b453bee9608fd6f870174d2..2bab1183966feaeebd335a4a9ab9027cad957f01 100644 (file)
@@ -325,6 +325,7 @@ public abstract class BasePage extends SessionPage {
                String regex = WicketUtils.getRegEx(params);\r
                String team = WicketUtils.getTeam(params);\r
                int daysBack = params.getInt("db", 0);\r
+               int maxDaysBack = GitBlit.getInteger(Keys.web.activityDurationMaximum, 30);\r
 \r
                List<ProjectModel> availableModels = getProjectModels();\r
                Set<ProjectModel> models = new HashSet<ProjectModel>();\r
@@ -372,6 +373,9 @@ public abstract class BasePage extends SessionPage {
 \r
                // time-filter the list\r
                if (daysBack > 0) {\r
+                       if (maxDaysBack > 0 && daysBack > maxDaysBack) {\r
+                               daysBack = maxDaysBack;\r
+                       }\r
                        Calendar cal = Calendar.getInstance();\r
                        cal.set(Calendar.HOUR_OF_DAY, 0);\r
                        cal.set(Calendar.MINUTE, 0);\r
index 32c128da2b74520f1cc289ad0134d788ccfcd227..0768b2acce6ccd876f995f3a21d3dbc8633aaf76 100644 (file)
@@ -96,9 +96,13 @@ public class MyDashboardPage extends DashboardPage {
 \r
                // parameters\r
                int daysBack = params == null ? 0 : WicketUtils.getDaysBack(params);\r
+               int maxDaysBack = GitBlit.getInteger(Keys.web.activityDurationMaximum, 30);\r
                if (daysBack < 1) {\r
                        daysBack = GitBlit.getInteger(Keys.web.activityDuration, 7);\r
                }\r
+               if (maxDaysBack > 0 && daysBack > maxDaysBack) {\r
+                       daysBack = maxDaysBack;\r
+               }\r
                Calendar c = Calendar.getInstance();\r
                c.add(Calendar.DATE, -1*daysBack);\r
                Date minimumDate = c.getTime();\r
index 7739e6dffce5d8e9ed2a35ee1e2e5695d574efe3..a81d63f47cf8d2a2285ac6f922e3e28a274b1fe5 100644 (file)
@@ -345,9 +345,13 @@ public abstract class RootPage extends BasePage {
        protected List<DropDownMenuItem> getTimeFilterItems(PageParameters params) {\r
                // days back choices - additive parameters\r
                int daysBack = GitBlit.getInteger(Keys.web.activityDuration, 7);\r
+               int maxDaysBack = GitBlit.getInteger(Keys.web.activityDurationMaximum, 30);\r
                if (daysBack < 1) {\r
                        daysBack = 7;\r
                }\r
+               if (daysBack > maxDaysBack) {\r
+                       daysBack = maxDaysBack;\r
+               }\r
                PageParameters clonedParams;\r
                if (params == null) {\r
                        clonedParams = new PageParameters();\r
@@ -397,6 +401,7 @@ public abstract class RootPage extends BasePage {
                String regex = WicketUtils.getRegEx(params);\r
                String team = WicketUtils.getTeam(params);\r
                int daysBack = params.getInt("db", 0);\r
+               int maxDaysBack = GitBlit.getInteger(Keys.web.activityDurationMaximum, 30);\r
 \r
                List<RepositoryModel> availableModels = getRepositoryModels();\r
                Set<RepositoryModel> models = new HashSet<RepositoryModel>();\r
@@ -487,6 +492,9 @@ public abstract class RootPage extends BasePage {
 \r
                // time-filter the list\r
                if (daysBack > 0) {\r
+                       if (maxDaysBack > 0 && daysBack > maxDaysBack) {\r
+                               daysBack = maxDaysBack;\r
+                       }\r
                        Calendar cal = Calendar.getInstance();\r
                        cal.set(Calendar.HOUR_OF_DAY, 0);\r
                        cal.set(Calendar.MINUTE, 0);\r