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