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 ++++++++++++------------------------ src/com/gitblit/wicket/pages/LuceneSearchPage.html | 11 ++++- resources/gitblit.css | 3 - 3 files changed, 35 insertions(+), 53 deletions(-) diff --git a/resources/gitblit.css b/resources/gitblit.css index 0b285fb..14fe038 100644 --- a/resources/gitblit.css +++ b/resources/gitblit.css @@ -295,8 +295,7 @@ } div.searchResult .highlight { - background-color: #ffffaa; - border: 1px solid #ffcc00; + background-color: #ccff66; padding: 0 2px; } diff --git a/src/com/gitblit/wicket/pages/LuceneSearchPage.html b/src/com/gitblit/wicket/pages/LuceneSearchPage.html index 7639058..3014bfc 100644 --- a/src/com/gitblit/wicket/pages/LuceneSearchPage.html +++ b/src/com/gitblit/wicket/pages/LuceneSearchPage.html @@ -68,11 +68,11 @@ <div class="row-fluid"> <!-- search result repeater --> <div class="searchResult" wicket:id="searchResults"> - <div><i wicket:id="type"></i><span class="summary" wicket:id="summary"></span></div> + <div><i wicket:id="type"></i><span class="summary" wicket:id="summary"></span> <span wicket:id="tags" style="padding-left:10px;"></span></div> <div class="body"> <div class="fragment" wicket:id="fragment"></div> <div><span class="author" wicket:id="author"></span> <span class="date" ><wicket:message key="gb.authored"></wicket:message> <span class="date" wicket:id="date"></span></span></div> - <span class="repository" wicket:id="repository"></span>:<span class="branch" wicket:id="branch"></span> + <span class="repository" wicket:id="repository"></span>:<span class="branch" wicket:id="branch"></span> </div> </div> @@ -81,5 +81,12 @@ </div> </body> + + <wicket:fragment wicket:id="tagsPanel"> + <span wicket:id="tag"> + <span wicket:id="tagLink">[tag]</span> + </span> + </wicket:fragment> + </wicket:extend> </html> \ No newline at end of file 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