From 01995873731e7efa517ca66246547b3084f8d529 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 01 May 2014 14:27:28 -0400
Subject: [PATCH] Allow milestone deletion within the edit milestone page
---
src/main/java/com/gitblit/wicket/pages/ActivityPage.java | 91 +++++++++++++++++++++++++++++----------------
1 files changed, 59 insertions(+), 32 deletions(-)
diff --git a/src/main/java/com/gitblit/wicket/pages/ActivityPage.java b/src/main/java/com/gitblit/wicket/pages/ActivityPage.java
index bceac8f..f0e390d 100644
--- a/src/main/java/com/gitblit/wicket/pages/ActivityPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/ActivityPage.java
@@ -27,31 +27,34 @@
import org.apache.wicket.PageParameters;
import org.apache.wicket.behavior.HeaderContributor;
import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.panel.Fragment;
-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.utils.ActivityUtils;
import com.gitblit.utils.StringUtils;
+import com.gitblit.wicket.CacheControl;
+import com.gitblit.wicket.CacheControl.LastModified;
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;
-import com.gitblit.wicket.charting.GoogleLineChart;
-import com.gitblit.wicket.charting.GooglePieChart;
+import com.gitblit.wicket.charting.Chart;
+import com.gitblit.wicket.charting.Charts;
+import com.gitblit.wicket.charting.Flotr2Charts;
import com.gitblit.wicket.panels.ActivityPanel;
/**
* Activity Page shows a list of recent commits across all visible Gitblit
* repositories.
- *
+ *
* @author James Moger
- *
+ *
*/
+
+@CacheControl(LastModified.ACTIVITY)
public class ActivityPage extends RootPage {
public ActivityPage(PageParameters params) {
@@ -61,19 +64,42 @@
// parameters
int daysBack = WicketUtils.getDaysBack(params);
if (daysBack < 1) {
- daysBack = 14;
+ daysBack = app().settings().getInteger(Keys.web.activityDuration, 7);
}
String objectId = WicketUtils.getObject(params);
// determine repositories to view and retrieve the activity
List<RepositoryModel> models = getRepositories(params);
- List<Activity> recentActivity = ActivityUtils.getRecentActivity(models,
- daysBack, objectId, getTimeZone());
+ List<Activity> recentActivity = ActivityUtils.getRecentActivity(
+ app().settings(),
+ app().repositories(),
+ models,
+ daysBack,
+ objectId,
+ getTimeZone());
+
+ String headerPattern;
+ if (daysBack == 1) {
+ // today
+ if (recentActivity.size() == 0) {
+ headerPattern = getString("gb.todaysActivityNone");
+ } else {
+ headerPattern = getString("gb.todaysActivityStats");
+ }
+ } else {
+ // multiple days
+ if (recentActivity.size() == 0) {
+ headerPattern = getString("gb.recentActivityNone");
+ } else {
+ headerPattern = getString("gb.recentActivityStats");
+ }
+ }
if (recentActivity.size() == 0) {
// no activity, skip graphs and activity panel
- add(new Label("subheader", MessageFormat.format(getString("gb.recentActivityNone"),
+ add(new Label("subheader", MessageFormat.format(headerPattern,
daysBack)));
+ add(new Label("chartsPanel").setVisible(false));
add(new Label("activityPanel"));
} else {
// calculate total commits and total authors
@@ -86,12 +112,17 @@
int totalAuthors = uniqueAuthors.size();
// add the subheader with stat numbers
- add(new Label("subheader", MessageFormat.format(getString("gb.recentActivityStats"),
+ add(new Label("subheader", MessageFormat.format(headerPattern,
daysBack, totalCommits, totalAuthors)));
// create the activity charts
- GoogleCharts charts = createCharts(recentActivity);
- add(new HeaderContributor(charts));
+ if (app().settings().getBoolean(Keys.web.generateActivityGraph, true)) {
+ Charts charts = createCharts(recentActivity);
+ add(new HeaderContributor(charts));
+ add(new Fragment("chartsPanel", "chartsFragment", this));
+ } else {
+ add(new Label("chartsPanel").setVisible(false));
+ }
// add activity panel
add(new ActivityPanel("activityPanel", recentActivity));
@@ -109,7 +140,7 @@
ActivityPage.class);
PageParameters currentParameters = getPageParameters();
- int daysBack = GitBlit.getInteger(Keys.web.activityDuration, 14);
+ int daysBack = app().settings().getInteger(Keys.web.activityDuration, 7);
if (currentParameters != null && !currentParameters.containsKey("db")) {
currentParameters.put("db", daysBack);
}
@@ -130,11 +161,11 @@
/**
* Creates the daily activity line chart, the active repositories pie chart,
* and the active authors pie chart
- *
+ *
* @param recentActivity
* @return
*/
- private GoogleCharts createCharts(List<Activity> recentActivity) {
+ private Charts createCharts(List<Activity> recentActivity) {
// activity metrics
Map<String, Metric> repositoryMetrics = new HashMap<String, Metric>();
Map<String, Metric> authorMetrics = new HashMap<String, Metric>();
@@ -161,45 +192,41 @@
}
}
- // build google charts
- int w = 310;
- int h = 150;
- GoogleCharts charts = new GoogleCharts();
+ // build charts
+ Charts charts = new Flotr2Charts();
// sort in reverse-chronological order and then reverse that
Collections.sort(recentActivity);
Collections.reverse(recentActivity);
// daily line chart
- GoogleChart chart = new GoogleLineChart("chartDaily", getString("gb.dailyActivity"), "day",
+ Chart chart = charts.createLineChart("chartDaily", getString("gb.dailyActivity"), "day",
getString("gb.commits"));
SimpleDateFormat df = new SimpleDateFormat("MMM dd");
df.setTimeZone(getTimeZone());
for (Activity metric : recentActivity) {
- chart.addValue(df.format(metric.startDate), metric.getCommitCount());
+ chart.addValue(metric.startDate, metric.getCommitCount());
}
- chart.setWidth(w);
- chart.setHeight(h);
charts.addChart(chart);
- // active repositories pie chart
- chart = new GooglePieChart("chartRepositories", getString("gb.activeRepositories"),
+ // active repositories pie chart
+ chart = charts.createPieChart("chartRepositories", getString("gb.activeRepositories"),
getString("gb.repository"), getString("gb.commits"));
for (Metric metric : repositoryMetrics.values()) {
chart.addValue(metric.name, metric.count);
}
- chart.setWidth(w);
- chart.setHeight(h);
+ chart.setShowLegend(false);
+ String url = urlFor(SummaryPage.class, null).toString() + "?r=";
+ chart.setClickUrl(url);
charts.addChart(chart);
// active authors pie chart
- chart = new GooglePieChart("chartAuthors", getString("gb.activeAuthors"),
+ chart = charts.createPieChart("chartAuthors", getString("gb.activeAuthors"),
getString("gb.author"), getString("gb.commits"));
for (Metric metric : authorMetrics.values()) {
chart.addValue(metric.name, metric.count);
}
- chart.setWidth(w);
- chart.setHeight(h);
+ chart.setShowLegend(false);
charts.addChart(chart);
return charts;
--
Gitblit v1.9.1