From cedf138f3c9afeae7bcbda5dbb0511ebec297d10 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Mon, 10 Jun 2013 18:45:32 -0400
Subject: [PATCH] Globl and per-repository setting to exclude authors form metrics (issue-251)

---
 src/main/java/com/gitblit/wicket/pages/EditRepositoryPage.java |   23 +++++++++++++++++++++++
 1 files changed, 23 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/gitblit/wicket/pages/EditRepositoryPage.java b/src/main/java/com/gitblit/wicket/pages/EditRepositoryPage.java
index 938b05e..4c471a1 100644
--- a/src/main/java/com/gitblit/wicket/pages/EditRepositoryPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/EditRepositoryPage.java
@@ -76,6 +76,8 @@
 	
 	RepositoryModel repositoryModel;
 
+	private IModel<String> metricAuthorExclusions;
+	
 	private IModel<String> mailingLists;
 
 	public EditRepositoryPage() {
@@ -316,6 +318,23 @@
 						}
 					}
 
+					// set author metric exclusions
+					String ax = metricAuthorExclusions.getObject();
+					if (!StringUtils.isEmpty(ax)) {
+						Set<String> list = new HashSet<String>();
+						for (String exclusion : StringUtils.getStringsFromValue(ax,  " ")) {
+							if (StringUtils.isEmpty(exclusion)) {
+								continue;
+							}
+							if (exclusion.indexOf(' ') > -1) {
+								list.add("\"" + exclusion + "\"");	
+							} else {
+								list.add(exclusion);
+							}
+						}
+						repositoryModel.metricAuthorExclusions = new ArrayList<String>(list);
+					}
+
 					// set mailing lists
 					String ml = mailingLists.getObject();
 					if (!StringUtils.isEmpty(ml)) {
@@ -435,6 +454,10 @@
 		List<Integer> maxActivityCommits  = Arrays.asList(-1, 0, 25, 50, 75, 100, 150, 200, 250, 500 );
 		form.add(new DropDownChoice<Integer>("maxActivityCommits", maxActivityCommits, new MaxActivityCommitsRenderer()));
 
+		metricAuthorExclusions = new Model<String>(ArrayUtils.isEmpty(repositoryModel.metricAuthorExclusions) ? ""
+				: StringUtils.flattenStrings(repositoryModel.metricAuthorExclusions, " "));
+		form.add(new TextField<String>("metricAuthorExclusions", metricAuthorExclusions));
+
 		mailingLists = new Model<String>(ArrayUtils.isEmpty(repositoryModel.mailingLists) ? ""
 				: StringUtils.flattenStrings(repositoryModel.mailingLists, " "));
 		form.add(new TextField<String>("mailingLists", mailingLists));

--
Gitblit v1.9.1