From b2d7f418bf289e5fa6149ac1b5744cfb03b60dea Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Mon, 23 Sep 2013 10:55:19 -0400 Subject: [PATCH] Eliminate redundant read() and use accessor instead of direct cache access --- src/main/java/com/gitblit/wicket/pages/ActivityPage.java | 49 +++++++++++++++++++++++++++++++++++-------------- 1 files changed, 35 insertions(+), 14 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..a436813 100644 --- a/src/main/java/com/gitblit/wicket/pages/ActivityPage.java +++ b/src/main/java/com/gitblit/wicket/pages/ActivityPage.java @@ -27,6 +27,7 @@ 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; @@ -35,6 +36,8 @@ 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; @@ -52,6 +55,8 @@ * @author James Moger * */ + +@CacheControl(LastModified.ACTIVITY) public class ActivityPage extends RootPage { public ActivityPage(PageParameters params) { @@ -61,7 +66,7 @@ // parameters int daysBack = WicketUtils.getDaysBack(params); if (daysBack < 1) { - daysBack = 14; + daysBack = GitBlit.getInteger(Keys.web.activityDuration, 7); } String objectId = WicketUtils.getObject(params); @@ -70,9 +75,26 @@ List<Activity> recentActivity = ActivityUtils.getRecentActivity(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("activityPanel")); } else { @@ -86,12 +108,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 (GitBlit.getBoolean(Keys.web.generateActivityGraph, true)) { + GoogleCharts 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 +136,7 @@ ActivityPage.class); PageParameters currentParameters = getPageParameters(); - int daysBack = GitBlit.getInteger(Keys.web.activityDuration, 14); + int daysBack = GitBlit.getInteger(Keys.web.activityDuration, 7); if (currentParameters != null && !currentParameters.containsKey("db")) { currentParameters.put("db", daysBack); } @@ -162,8 +189,6 @@ } // build google charts - int w = 310; - int h = 150; GoogleCharts charts = new GoogleCharts(); // sort in reverse-chronological order and then reverse that @@ -178,8 +203,6 @@ for (Activity metric : recentActivity) { chart.addValue(df.format(metric.startDate), metric.getCommitCount()); } - chart.setWidth(w); - chart.setHeight(h); charts.addChart(chart); // active repositories pie chart @@ -188,8 +211,7 @@ for (Metric metric : repositoryMetrics.values()) { chart.addValue(metric.name, metric.count); } - chart.setWidth(w); - chart.setHeight(h); + chart.setShowLegend(false); charts.addChart(chart); // active authors pie chart @@ -198,8 +220,7 @@ 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