From 2bfc887835c8364daf33e1c290c80ec18e4d82db Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Sun, 25 Mar 2012 18:01:59 -0400 Subject: [PATCH] Fixed Gravatar image security exception with Wicket 1.4.20 --- src/com/gitblit/wicket/pages/LuceneSearchPage.java | 26 ++++++++++++++++---------- 1 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/com/gitblit/wicket/pages/LuceneSearchPage.java b/src/com/gitblit/wicket/pages/LuceneSearchPage.java index e43935e..ea94fa4 100644 --- a/src/com/gitblit/wicket/pages/LuceneSearchPage.java +++ b/src/com/gitblit/wicket/pages/LuceneSearchPage.java @@ -23,7 +23,6 @@ import org.apache.wicket.PageParameters; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.form.ListMultipleChoice; -import org.apache.wicket.markup.html.form.StatelessForm; import org.apache.wicket.markup.html.form.TextField; import org.apache.wicket.markup.html.panel.Fragment; import org.apache.wicket.markup.repeater.Item; @@ -41,6 +40,7 @@ import com.gitblit.utils.ArrayUtils; import com.gitblit.utils.StringUtils; import com.gitblit.wicket.GitBlitWebSession; +import com.gitblit.wicket.SessionlessForm; import com.gitblit.wicket.StringChoiceRenderer; import com.gitblit.wicket.WicketUtils; import com.gitblit.wicket.panels.LinkPanel; @@ -105,9 +105,13 @@ availableRepositories.add(model.name); } } - - if (availableRepositories.size() == 0) { - info(getString("gb.noIndexedRepositoriesWarning")); + boolean luceneEnabled = GitBlit.getBoolean(Keys.web.allowLuceneIndexing, true); + if (luceneEnabled) { + if (availableRepositories.size() == 0) { + info(getString("gb.noIndexedRepositoriesWarning")); + } + } else { + error(getString("gb.luceneDisabled")); } // enforce user-accessible repository selections @@ -121,7 +125,7 @@ // search form final Model<String> queryModel = new Model<String>(query); final Model<ArrayList<String>> repositoriesModel = new Model<ArrayList<String>>(searchRepositories); - StatelessForm<Void> form = new StatelessForm<Void>("searchForm") { + SessionlessForm<Void> form = new SessionlessForm<Void>("searchForm", getClass()) { private static final long serialVersionUID = 1L; @@ -146,9 +150,9 @@ ListMultipleChoice<String> selections = new ListMultipleChoice<String>("repositories", repositoriesModel, availableRepositories, new StringChoiceRenderer()); selections.setMaxRows(8); - form.add(selections); - form.add(new TextField<String>("query", queryModel)); - add(form); + form.add(selections.setEnabled(luceneEnabled)); + form.add(new TextField<String>("query", queryModel).setEnabled(luceneEnabled)); + add(form.setEnabled(luceneEnabled)); // execute search final List<SearchResult> results = new ArrayList<SearchResult>(); @@ -239,12 +243,14 @@ pagerParams.put("repositories", StringUtils.flattenStrings(repositoriesModel.getObject())); pagerParams.put("query", queryModel.getObject()); + boolean showPager = false; int totalPages = 0; if (results.size() > 0) { totalPages = (results.get(0).totalHits / pageSize) + (results.get(0).totalHits % pageSize > 0 ? 1 : 0); + showPager = results.get(0).totalHits > pageSize; } - add(new PagerPanel("topPager", page, totalPages, LuceneSearchPage.class, pagerParams)); - add(new PagerPanel("bottomPager", page, totalPages, LuceneSearchPage.class, pagerParams)); + add(new PagerPanel("topPager", page, totalPages, LuceneSearchPage.class, pagerParams).setVisible(showPager)); + add(new PagerPanel("bottomPager", page, totalPages, LuceneSearchPage.class, pagerParams).setVisible(showPager)); } } -- Gitblit v1.9.1