From d00a0ca46fcde3e3e580afea6a548b9c12aeac25 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Wed, 11 Jul 2012 17:18:02 -0400
Subject: [PATCH] Update to slf4j 1.6.6 and log4j 1.2.17
---
src/com/gitblit/wicket/pages/LuceneSearchPage.java | 113 +++++++++++++++++++++++++-------------------------------
1 files changed, 50 insertions(+), 63 deletions(-)
diff --git a/src/com/gitblit/wicket/pages/LuceneSearchPage.java b/src/com/gitblit/wicket/pages/LuceneSearchPage.java
index 8e09a34..54e27ce 100644
--- a/src/com/gitblit/wicket/pages/LuceneSearchPage.java
+++ b/src/com/gitblit/wicket/pages/LuceneSearchPage.java
@@ -19,11 +19,12 @@
import java.util.ArrayList;
import java.util.List;
+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.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;
import org.apache.wicket.markup.repeater.data.DataView;
import org.apache.wicket.markup.repeater.data.ListDataProvider;
@@ -39,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;
@@ -71,7 +73,7 @@
repositories.add(repository);
}
- page = WicketUtils.getPage(params);
+ page = WicketUtils.getPage(params);
if (params.containsKey("repositories")) {
String value = params.getString("repositories", "");
@@ -103,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
@@ -119,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;
@@ -144,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>();
@@ -156,11 +162,16 @@
// results header
if (results.size() == 0) {
- add(new Label("resultsHeader").setVisible(false));
- add(new Label("resultsCount").setVisible(false));
+ if (!ArrayUtils.isEmpty(searchRepositories) && !StringUtils.isEmpty(query)) {
+ add(new Label("resultsHeader", query).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));
}
@@ -170,13 +181,32 @@
final DataView<SearchResult> resultsView = new DataView<SearchResult>("searchResults", resultsDp) {
private static final long serialVersionUID = 1L;
public void populateItem(final Item<SearchResult> item) {
- SearchResult sr = item.getModelObject();
+ final SearchResult sr = item.getModelObject();
switch(sr.type) {
case commit: {
Label icon = WicketUtils.newIcon("type", "icon-refresh");
WicketUtils.setHtmlTooltip(icon, "commit");
item.add(icon);
item.add(new LinkPanel("summary", null, sr.summary, CommitPage.class, WicketUtils.newObjectParameter(sr.repository, sr.commitId)));
+ // show tags
+ Fragment fragment = new Fragment("tags", "tagsPanel", LuceneSearchPage.this);
+ List<String> tags = sr.tags;
+ if (tags == null) {
+ tags = new ArrayList<String>();
+ }
+ ListDataProvider<String> tagsDp = new ListDataProvider<String>(tags);
+ final DataView<String> tagsView = new DataView<String>("tag", tagsDp) {
+ private static final long serialVersionUID = 1L;
+ public void populateItem(final Item<String> item) {
+ String tag = item.getModelObject();
+ Component c = new LinkPanel("tagLink", null, tag, TagPage.class,
+ WicketUtils.newObjectParameter(sr.repository, Constants.R_TAGS + tag));
+ WicketUtils.setCssClass(c, "tagRef");
+ item.add(c);
+ }
+ };
+ fragment.add(tagsView);
+ item.add(fragment);
break;
}
case blob: {
@@ -184,6 +214,7 @@
WicketUtils.setHtmlTooltip(icon, "blob");
item.add(icon);
item.add(new LinkPanel("summary", null, sr.path, BlobPage.class, WicketUtils.newPathParameter(sr.repository, sr.branch, sr.path)));
+ item.add(new Label("tags").setVisible(false));
break;
}
case issue: {
@@ -191,6 +222,7 @@
WicketUtils.setHtmlTooltip(icon, "issue");
item.add(icon);
item.add(new Label("summary", "issue: " + sr.issueId));
+ item.add(new Label("tags").setVisible(false));
break;
}
}
@@ -202,7 +234,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));
@@ -211,59 +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));
}
-
-// private String buildPager(int currentPage, int count, int total) {
-// int pages = (total / count) + (total % count == 0 ? 0 : 1);
-//
-// // pages are 1-indexed
-// // previous page link
-// if (currentPage <= 1) {
-// sb.append(MessageFormat.format(li, "disabled", "#", "←"));
-// } else {
-// List<String> parameters = new ArrayList<String>();
-// if (!StringUtils.isEmpty(penString)) {
-// parameters.add(penString);
-// }
-// parameters.add(MessageFormat.format(pg, currentPage - 1));
-// sb.append(MessageFormat.format(li, "", StringUtils.flattenStrings(parameters, "&"), "←"));
-// }
-//
-// // page links in middle
-// int minpage = Math.max(1, currentPage - Math.min(2, 2));
-// int maxpage = Math.min(pages, minpage + 4);
-// for (int i = minpage; i <= maxpage; i++) {
-// String cssClass = "";
-// if (i == currentPage) {
-// cssClass = "active";
-// }
-// List<String> parameters = new ArrayList<String>();
-// if (!StringUtils.isEmpty(penString)) {
-// parameters.add(penString);
-// }
-// parameters.add(MessageFormat.format(pg, i));
-// sb.append(MessageFormat.format(li, cssClass, StringUtils.flattenStrings(parameters, "&"), i));
-// }
-//
-// // next page link
-// if (currentPage == pages) {
-// sb.append(MessageFormat.format(li, "disabled", "#", "→"));
-// } else {
-// List<String> parameters = new ArrayList<String>();
-// if (!StringUtils.isEmpty(penString)) {
-// parameters.add(penString);
-// }
-// parameters.add(MessageFormat.format(pg, currentPage + 1));
-// sb.append(MessageFormat.format(li, "", StringUtils.flattenStrings(parameters, "&"), "→"));
-// }
-// return sb.toString();
-// }
-
}
--
Gitblit v1.9.1