From 4e1930a8d9a4e1e90dadf36641f491fdda09f216 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Mon, 19 Mar 2012 22:12:08 -0400
Subject: [PATCH] Polish the Lucene search page. Integrate both search mechanisms.

---
 src/com/gitblit/wicket/pages/RepositoryPage.java |   19 +++++++++++--------
 1 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/src/com/gitblit/wicket/pages/RepositoryPage.java b/src/com/gitblit/wicket/pages/RepositoryPage.java
index 4a83b87..cd3c8a2 100644
--- a/src/com/gitblit/wicket/pages/RepositoryPage.java
+++ b/src/com/gitblit/wicket/pages/RepositoryPage.java
@@ -44,10 +44,10 @@
 import com.gitblit.PagesServlet;
 import com.gitblit.SyndicationServlet;
 import com.gitblit.models.RepositoryModel;
+import com.gitblit.utils.ArrayUtils;
 import com.gitblit.utils.JGitUtils;
 import com.gitblit.utils.StringUtils;
 import com.gitblit.utils.TicgitUtils;
-import com.gitblit.wicket.GitBlitWebApp;
 import com.gitblit.wicket.GitBlitWebSession;
 import com.gitblit.wicket.PageRegistration;
 import com.gitblit.wicket.PageRegistration.OtherPageLink;
@@ -229,8 +229,6 @@
 
 	protected Component createPersonPanel(String wicketId, PersonIdent identity,
 			Constants.SearchType searchType) {
-		GitBlitWebApp app = (GitBlitWebApp) GitBlitWebSession.get().getApplication();
-		final Class<? extends BasePage> searchPageClass = app.getSearchPageClass();
 		String name = identity == null ? "" : identity.getName();
 		String address = identity == null ? "" : identity.getEmailAddress();
 		boolean showEmail = GitBlit.getBoolean(Keys.web.showEmailAddresses, false);
@@ -244,20 +242,20 @@
 				}
 			}
 			Fragment partial = new Fragment(wicketId, "partialPersonIdent", this);
-			LinkPanel link = new LinkPanel("personName", "list", value, searchPageClass,
+			LinkPanel link = new LinkPanel("personName", "list", value, GitSearchPage.class,
 					WicketUtils.newSearchParameter(repositoryName, objectId, value, searchType));
 			setPersonSearchTooltip(link, value, searchType);
 			partial.add(link);
 			return partial;
 		} else {
 			Fragment fullPerson = new Fragment(wicketId, "fullPersonIdent", this);
-			LinkPanel nameLink = new LinkPanel("personName", "list", name, searchPageClass,
+			LinkPanel nameLink = new LinkPanel("personName", "list", name, GitSearchPage.class,
 					WicketUtils.newSearchParameter(repositoryName, objectId, name, searchType));
 			setPersonSearchTooltip(nameLink, name, searchType);
 			fullPerson.add(nameLink);
 
 			LinkPanel addressLink = new LinkPanel("personAddress", "list", "<" + address + ">",
-					searchPageClass, WicketUtils.newSearchParameter(repositoryName, objectId,
+					GitSearchPage.class, WicketUtils.newSearchParameter(repositoryName, objectId,
 							address, searchType));
 			setPersonSearchTooltip(addressLink, address, searchType);
 			fullPerson.add(addressLink);
@@ -360,8 +358,13 @@
 					break;
 				}
 			}
-			GitBlitWebApp app = (GitBlitWebApp) GitBlitWebSession.get().getApplication();
-			setResponsePage(app.getSearchPageClass(),
+			Class<? extends BasePage> searchPageClass = GitSearchPage.class;
+			RepositoryModel model = GitBlit.self().getRepositoryModel(repositoryName);
+			if (!ArrayUtils.isEmpty(model.indexedBranches)) {
+				// this repository is Lucene-indexed
+				searchPageClass = LuceneSearchPage.class;
+			}
+			setResponsePage(searchPageClass,
 					WicketUtils.newSearchParameter(repositoryName, null, searchString, searchType));
 		}
 	}

--
Gitblit v1.9.1