From 18edd81951a034a2bda9459ff1ef2dcd686eb39b Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 29 Nov 2012 18:45:55 -0500
Subject: [PATCH] Hide some user links based on authentication type
---
src/com/gitblit/wicket/pages/LuceneSearchPage.java | 35 +++++++++++++++++++++--------------
1 files changed, 21 insertions(+), 14 deletions(-)
diff --git a/src/com/gitblit/wicket/pages/LuceneSearchPage.java b/src/com/gitblit/wicket/pages/LuceneSearchPage.java
index e43935e..79795ff 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;
@@ -139,16 +143,17 @@
PageParameters params = new PageParameters();
params.put("repositories", StringUtils.flattenStrings(repositoriesModel.getObject()));
params.put("query", queryModel.getObject());
- setResponsePage(LuceneSearchPage.class, params);
+ LuceneSearchPage page = new LuceneSearchPage(params);
+ setResponsePage(page);
}
};
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>();
@@ -160,14 +165,14 @@
if (results.size() == 0) {
if (!ArrayUtils.isEmpty(searchRepositories) && !StringUtils.isEmpty(query)) {
add(new Label("resultsHeader", query).setRenderBodyOnly(true));
- add(new Label("resultsCount", "0 hits").setRenderBodyOnly(true));
+ add(new Label("resultsCount", getString("gb.noHits")).setRenderBodyOnly(true));
} else {
add(new Label("resultsHeader").setVisible(false));
add(new Label("resultsCount").setVisible(false));
}
} else {
add(new Label("resultsHeader", query).setRenderBodyOnly(true));
- add(new Label("resultsCount", MessageFormat.format("results {0} - {1} ({2} hits)",
+ add(new Label("resultsCount", MessageFormat.format(getString("gb.queryResults"),
results.get(0).hitId, results.get(results.size() - 1).hitId, results.get(0).totalHits)).
setRenderBodyOnly(true));
}
@@ -230,7 +235,7 @@
item.add(new LinkPanel("branch", "branch", StringUtils.getRelativePath(Constants.R_HEADS, sr.branch), LogPage.class, WicketUtils.newObjectParameter(sr.repository, sr.branch)));
}
item.add(new Label("author", sr.author));
- item.add(WicketUtils.createDatestampLabel("date", sr.date, getTimeZone()));
+ item.add(WicketUtils.createDatestampLabel("date", sr.date, getTimeZone(), getTimeUtils()));
}
};
add(resultsView.setVisible(results.size() > 0));
@@ -239,12 +244,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