From 06116dd5f166ec2fff0531d21d6a291c9018703c Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Mon, 17 Jun 2013 16:00:17 -0400 Subject: [PATCH] Minor tweaks to SalesForce user service --- src/main/java/com/gitblit/wicket/pages/DashboardPage.java | 53 +++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 41 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/gitblit/wicket/pages/DashboardPage.java b/src/main/java/com/gitblit/wicket/pages/DashboardPage.java index 7e40a54..6c328b1 100644 --- a/src/main/java/com/gitblit/wicket/pages/DashboardPage.java +++ b/src/main/java/com/gitblit/wicket/pages/DashboardPage.java @@ -34,6 +34,7 @@ import java.util.Map; import java.util.Set; import java.util.TimeZone; +import java.util.TreeSet; import org.apache.wicket.Component; import org.apache.wicket.PageParameters; @@ -94,7 +95,11 @@ String message = readMarkdown(messageSource, "login.mkd"); Component repositoriesMessage = new Label("repositoriesMessage", message); add(repositoriesMessage.setEscapeModelStrings(false)); - add(new Label("repositoriesPanel")); + add(new Label("digests")); + add(new Label("active").setVisible(false)); + add(new Label("starred").setVisible(false)); + add(new Label("owned").setVisible(false)); + add(new Label("feedheader").setVisible(false)); return; } @@ -120,7 +125,7 @@ // parameters int daysBack = params == null ? 0 : WicketUtils.getDaysBack(params); if (daysBack < 1) { - daysBack = 14; + daysBack = 7; } Calendar c = Calendar.getInstance(); c.add(Calendar.DATE, -1*daysBack); @@ -132,7 +137,7 @@ List<RepositoryModel> owned = new ArrayList<RepositoryModel>(); List<RepositoryModel> active = new ArrayList<RepositoryModel>(); - for (RepositoryModel model : GitBlit.self().getRepositoryModels(user)) { + for (RepositoryModel model : getRepositoryModels()) { if (model.isUsersPersonalRepository(user.username) || model.isOwner(user.username)) { owned.add(model); } @@ -184,8 +189,22 @@ // add the nifty charts if (!ArrayUtils.isEmpty(pushes)) { - GoogleCharts charts = createCharts(pushes); - add(new HeaderContributor(charts)); + // aggregate author exclusions + Set<String> authorExclusions = new TreeSet<String>(); + for (String author : GitBlit.getStrings(Keys.web.metricAuthorExclusions)) { + authorExclusions.add(author.toLowerCase()); + } + for (RepositoryModel model : feedSources) { + if (!ArrayUtils.isEmpty(model.metricAuthorExclusions)) { + for (String author : model.metricAuthorExclusions) { + authorExclusions.add(author.toLowerCase()); + } + } + } + + addCharts(pushes, authorExclusions, daysBack); + } else { + add(new Label("feedheader").setVisible(false)); } // active repository list @@ -354,14 +373,16 @@ * and the active authors pie chart * * @param recentPushes - * @return + * @param authorExclusions + * @param daysBack */ - private GoogleCharts createCharts(List<PushLogEntry> recentPushes) { + private void addCharts(List<PushLogEntry> recentPushes, Set<String> authorExclusions, int daysBack) { // activity metrics Map<String, Metric> repositoryMetrics = new HashMap<String, Metric>(); Map<String, Metric> authorMetrics = new HashMap<String, Metric>(); // aggregate repository and author metrics + int totalCommits = 0; for (PushLogEntry push : recentPushes) { // aggregate repository metrics @@ -372,13 +393,21 @@ repositoryMetrics.get(repository).count += 1; for (RepositoryCommit commit : push.getCommits()) { - String author = commit.getAuthorIdent().getName(); - if (!authorMetrics.containsKey(author)) { - authorMetrics.put(author, new Metric(author)); + totalCommits++; + String author = StringUtils.removeNewlines(commit.getAuthorIdent().getName()); + String authorName = author.toLowerCase(); + String authorEmail = StringUtils.removeNewlines(commit.getAuthorIdent().getEmailAddress()).toLowerCase(); + if (!authorExclusions.contains(authorName) && !authorExclusions.contains(authorEmail)) { + if (!authorMetrics.containsKey(author)) { + authorMetrics.put(author, new Metric(author)); + } + authorMetrics.get(author).count += 1; } - authorMetrics.get(author).count += 1; } } + + add(new Label("feedheader", MessageFormat.format(getString("gb.recentActivityStats"), + daysBack, totalCommits, authorMetrics.size()))); // build google charts GoogleCharts charts = new GoogleCharts(); @@ -401,7 +430,7 @@ chart.setShowLegend(false); charts.addChart(chart); - return charts; + add(new HeaderContributor(charts)); } class RepoListItem implements Serializable { -- Gitblit v1.9.1