From 7203a415392b5372c0866991f1c2810eb5e3527a Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Mon, 18 Apr 2011 17:50:31 -0400 Subject: [PATCH] Add search form to the page nav links panel within a repository. --- src/com/gitblit/wicket/pages/SummaryPage.html | 2 src/com/gitblit/wicket/panels/PageLinksPanel.java | 36 ++++++++++++++++++ src/com/gitblit/wicket/panels/PageLinksPanel.html | 17 +++++++- src/com/gitblit/wicket/GitBlitWebApp.java | 7 --- src/com/gitblit/wicket/resources/gitblit.css | 13 ++++++ src/com/gitblit/utils/JGitUtils.java | 4 ++ 6 files changed, 67 insertions(+), 12 deletions(-) diff --git a/src/com/gitblit/utils/JGitUtils.java b/src/com/gitblit/utils/JGitUtils.java index 3b69c22..49fbf1e 100644 --- a/src/com/gitblit/utils/JGitUtils.java +++ b/src/com/gitblit/utils/JGitUtils.java @@ -519,6 +519,10 @@ } return null; } + + public String toString() { + return name().toLowerCase(); + } } public static List<RevCommit> searchRevlogs(Repository r, String objectId, String value, final SearchType type, int offset, int maxCount) { diff --git a/src/com/gitblit/wicket/GitBlitWebApp.java b/src/com/gitblit/wicket/GitBlitWebApp.java index dc1e2c9..106981e 100644 --- a/src/com/gitblit/wicket/GitBlitWebApp.java +++ b/src/com/gitblit/wicket/GitBlitWebApp.java @@ -6,8 +6,6 @@ import org.apache.wicket.Response; import org.apache.wicket.Session; import org.apache.wicket.protocol.http.WebApplication; -import org.apache.wicket.protocol.http.request.urlcompressing.UrlCompressingWebRequestProcessor; -import org.apache.wicket.request.IRequestCycleProcessor; import org.apache.wicket.request.target.coding.MixedParamUrlCodingStrategy; import com.gitblit.GitBlit; @@ -84,11 +82,6 @@ @Override public final Session newSession(Request request, Response response) { return new GitBlitWebSession(request); - } - - @Override - protected final IRequestCycleProcessor newRequestCycleProcessor() { - return new UrlCompressingWebRequestProcessor(); } @Override diff --git a/src/com/gitblit/wicket/pages/SummaryPage.html b/src/com/gitblit/wicket/pages/SummaryPage.html index 7075bd2..47c10b3 100644 --- a/src/com/gitblit/wicket/pages/SummaryPage.html +++ b/src/com/gitblit/wicket/pages/SummaryPage.html @@ -10,7 +10,7 @@ <!-- page nav links --> <div wicket:id="pageLinks">[page links]</div> - <div> + <div style="clear:both;"> <!-- Repository Activity Chart --> <div style="width:400px;float:right;"> <img class="activityGraph" wicket:id="commitsChart" /> diff --git a/src/com/gitblit/wicket/panels/PageLinksPanel.html b/src/com/gitblit/wicket/panels/PageLinksPanel.html index f2e4d31..40ec634 100644 --- a/src/com/gitblit/wicket/panels/PageLinksPanel.html +++ b/src/com/gitblit/wicket/panels/PageLinksPanel.html @@ -5,9 +5,20 @@ lang="en"> <wicket:panel> - <!-- page nav links --> - <div class="page_nav"> - <a wicket:id="summary"><wicket:message key="gb.summary"></wicket:message></a> | <a wicket:id="log"><wicket:message key="gb.log"></wicket:message></a> | <a wicket:id="branches"><wicket:message key="gb.branches"></wicket:message></a> | <a wicket:id="tags"><wicket:message key="gb.tags"></wicket:message></a> | <a wicket:id="tree"><wicket:message key="gb.tree"></wicket:message></a> <span wicket:id="extra"><span wicket:id="extraSeparator"></span><span wicket:id="extraLink"></span></span> + <!-- floating search form on right --> + <form wicket:id="searchForm"> + <div class="search"> + <select wicket:id="searchType"/> + <wicket:message key="gb.search"></wicket:message>: + <input type="text" id="searchBox" wicket:id="searchBox" value=""/> + </div> + </form> + + <!-- page nav links --> + <div class="page_nav"> + <div> + <a wicket:id="summary"><wicket:message key="gb.summary"></wicket:message></a> | <a wicket:id="log"><wicket:message key="gb.log"></wicket:message></a> | <a wicket:id="branches"><wicket:message key="gb.branches"></wicket:message></a> | <a wicket:id="tags"><wicket:message key="gb.tags"></wicket:message></a> | <a wicket:id="tree"><wicket:message key="gb.tree"></wicket:message></a> <span wicket:id="extra"><span wicket:id="extraSeparator"></span><span wicket:id="extraLink"></span></span> + </div> </div> </wicket:panel> </html> \ No newline at end of file diff --git a/src/com/gitblit/wicket/panels/PageLinksPanel.java b/src/com/gitblit/wicket/panels/PageLinksPanel.java index f8824db..6503405 100644 --- a/src/com/gitblit/wicket/panels/PageLinksPanel.java +++ b/src/com/gitblit/wicket/panels/PageLinksPanel.java @@ -2,26 +2,34 @@ import java.text.MessageFormat; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.wicket.Component; import org.apache.wicket.markup.html.basic.Label; +import org.apache.wicket.markup.html.form.DropDownChoice; +import org.apache.wicket.markup.html.form.StatelessForm; +import org.apache.wicket.markup.html.form.TextField; import org.apache.wicket.markup.html.link.BookmarkablePageLink; import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.markup.repeater.Item; import org.apache.wicket.markup.repeater.data.DataView; import org.apache.wicket.markup.repeater.data.ListDataProvider; +import org.apache.wicket.model.IModel; +import org.apache.wicket.model.Model; import org.eclipse.jgit.lib.Repository; import com.gitblit.GitBlit; import com.gitblit.Keys; import com.gitblit.utils.JGitUtils; +import com.gitblit.utils.JGitUtils.SearchType; import com.gitblit.wicket.LinkPanel; import com.gitblit.wicket.WicketUtils; import com.gitblit.wicket.pages.BranchesPage; import com.gitblit.wicket.pages.LogPage; +import com.gitblit.wicket.pages.SearchPage; import com.gitblit.wicket.pages.SummaryPage; import com.gitblit.wicket.pages.TagsPage; import com.gitblit.wicket.pages.TicketsPage; @@ -78,6 +86,8 @@ } }; add(extrasView); + + add(new SearchForm("searchForm", repositoryName)); } public void disablePageLink(String pageName) { @@ -93,4 +103,30 @@ } } } + + class SearchForm extends StatelessForm<Void> { + private static final long serialVersionUID = 1L; + + private final String repositoryName; + + private final IModel<String> searchBoxModel = new Model<String>(""); + + private final IModel<SearchType> searchTypeModel = new Model<SearchType>(SearchType.COMMIT); + + public SearchForm(String id, String repositoryName) { + super(id); + this.repositoryName = repositoryName; + DropDownChoice<SearchType> searchType = new DropDownChoice<SearchType>("searchType", Arrays.asList(SearchType.values())); + searchType.setModel(searchTypeModel); + add(searchType); + add(new TextField<String>("searchBox", searchBoxModel)); + } + + @Override + public void onSubmit() { + SearchType searchType = searchTypeModel.getObject(); + String searchString = searchBoxModel.getObject(); + setResponsePage(SearchPage.class, WicketUtils.newSearchParameter(repositoryName, null, searchString, searchType)); + } + } } \ No newline at end of file diff --git a/src/com/gitblit/wicket/resources/gitblit.css b/src/com/gitblit/wicket/resources/gitblit.css index 736dbb3..8264cbb 100644 --- a/src/com/gitblit/wicket/resources/gitblit.css +++ b/src/com/gitblit/wicket/resources/gitblit.css @@ -5,6 +5,10 @@ font-family: verdana, sans-serif; font-size: 12px; line-height: 15px; + margin: 0; + padding: 0; + border: 0; + outline: 0; } body { @@ -141,7 +145,7 @@ div.page_nav { color: #ddd; background-color: #000070; - padding: 5px; + padding: 7px; } div.page_nav a { @@ -161,6 +165,13 @@ padding: 2px 5px 7px 5px; } +div.search { + color:yellow; + text-align:right; + float:right; + padding:3px; +} + .repositories_message { border: solid #bbb; border-width: 0px 0px 1px; -- Gitblit v1.9.1