From a502d96a860456ec5e8c96761db70f7cabb74751 Mon Sep 17 00:00:00 2001
From: Paul Martin <paul@paulsputer.com>
Date: Sat, 30 Apr 2016 04:19:14 -0400
Subject: [PATCH] Merge pull request #1073 from gitblit/1062-DocEditorUpdates

---
 src/main/java/com/gitblit/wicket/pages/LuceneSearchPage.java |   18 ++++++++++++------
 1 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/gitblit/wicket/pages/LuceneSearchPage.java b/src/main/java/com/gitblit/wicket/pages/LuceneSearchPage.java
index ec82231..1d81061 100644
--- a/src/main/java/com/gitblit/wicket/pages/LuceneSearchPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/LuceneSearchPage.java
@@ -17,14 +17,16 @@
 
 import java.text.MessageFormat;
 import java.util.ArrayList;
+import java.util.LinkedHashSet;
 import java.util.List;
+import java.util.Set;
 
 import org.apache.wicket.Component;
 import org.apache.wicket.PageParameters;
 import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.form.CheckBox;
 import org.apache.wicket.markup.html.form.ListMultipleChoice;
 import org.apache.wicket.markup.html.form.TextField;
-import org.apache.wicket.markup.html.form.CheckBox;
 import org.apache.wicket.markup.html.panel.Fragment;
 import org.apache.wicket.markup.repeater.Item;
 import org.apache.wicket.markup.repeater.data.DataView;
@@ -64,6 +66,8 @@
 		// default values
 		ArrayList<String> repositories = new ArrayList<String>();
 		String query = "";
+		boolean allRepos = false;
+
 		int page = 1;
 		int pageSize = app().settings().getInteger(Keys.web.itemsPerPage, 50);
 
@@ -89,8 +93,9 @@
 				List<String> list = StringUtils.getStringsFromValue(value);
 				repositories.addAll(list);
 			}
-
-			if (params.containsKey("allrepos")) {
+
+			allRepos = params.getAsBoolean("allrepos", false);
+			if (allRepos) {
 				repositories.addAll(availableRepositories);
 			}
 
@@ -120,17 +125,18 @@
 		}
 
 		// enforce user-accessible repository selections
-		ArrayList<String> searchRepositories = new ArrayList<String>();
+		Set<String> uniqueRepositories = new LinkedHashSet<String>();
 		for (String selectedRepository : repositories) {
 			if (availableRepositories.contains(selectedRepository)) {
-				searchRepositories.add(selectedRepository);
+				uniqueRepositories.add(selectedRepository);
 			}
 		}
+		ArrayList<String> searchRepositories = new ArrayList<String>(uniqueRepositories);
 
 		// search form
 		final Model<String> queryModel = new Model<String>(query);
 		final Model<ArrayList<String>> repositoriesModel = new Model<ArrayList<String>>(searchRepositories);
-		final Model<Boolean> allreposModel = new Model<Boolean>(params != null && params.containsKey("allrepos"));
+		final Model<Boolean> allreposModel = new Model<Boolean>(allRepos);
 		SessionlessForm<Void> form = new SessionlessForm<Void>("searchForm", getClass()) {
 
 			private static final long serialVersionUID = 1L;

--
Gitblit v1.9.1