From 31a89771cd05b24317bd50e8cdfd73da45ef32c4 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Tue, 20 Mar 2012 19:47:21 -0400 Subject: [PATCH] Display tag links on indexed commits and tweaked term highlight color --- src/com/gitblit/wicket/pages/LuceneSearchPage.java | 74 ++++++++++++------------------------ 1 files changed, 25 insertions(+), 49 deletions(-) diff --git a/src/com/gitblit/wicket/pages/LuceneSearchPage.java b/src/com/gitblit/wicket/pages/LuceneSearchPage.java index 69fb920..e43935e 100644 --- a/src/com/gitblit/wicket/pages/LuceneSearchPage.java +++ b/src/com/gitblit/wicket/pages/LuceneSearchPage.java @@ -19,11 +19,13 @@ 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; @@ -71,7 +73,7 @@ repositories.add(repository); } - page = WicketUtils.getPage(params); + page = WicketUtils.getPage(params); if (params.containsKey("repositories")) { String value = params.getString("repositories", ""); @@ -175,13 +177,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: { @@ -189,6 +210,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: { @@ -196,6 +218,7 @@ WicketUtils.setHtmlTooltip(icon, "issue"); item.add(icon); item.add(new Label("summary", "issue: " + sr.issueId)); + item.add(new Label("tags").setVisible(false)); break; } } @@ -224,51 +247,4 @@ add(new PagerPanel("topPager", page, totalPages, LuceneSearchPage.class, pagerParams)); add(new PagerPanel("bottomPager", page, totalPages, LuceneSearchPage.class, pagerParams)); } - -// 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