diff --git a/webui/src/main/java/com/muwire/webui/SearchManager.java b/webui/src/main/java/com/muwire/webui/SearchManager.java
index aa5c1aba..a9e8a831 100644
--- a/webui/src/main/java/com/muwire/webui/SearchManager.java
+++ b/webui/src/main/java/com/muwire/webui/SearchManager.java
@@ -30,13 +30,11 @@ class SearchManager {
this.core = core;
}
- void newSearch(String search) {
+ UUID newSearch(String search) {
search = search.trim();
if (search.length() == 0)
- return;
- if (search.length() > 128) {
- // TODO: browse by persona
- } else {
+ return null;
+ else {
UUID uuid = UUID.randomUUID();
SearchResults searchResults = new SearchResults(uuid, search);
@@ -84,6 +82,7 @@ class SearchManager {
queryEvent.setSig2(DataUtil.signUUID(uuid, timestamp, core.getSpk()));
core.getEventBus().publish(queryEvent);
+ return uuid;
}
}
diff --git a/webui/src/main/java/com/muwire/webui/SearchServlet.java b/webui/src/main/java/com/muwire/webui/SearchServlet.java
index 16fc00ef..a133ad13 100644
--- a/webui/src/main/java/com/muwire/webui/SearchServlet.java
+++ b/webui/src/main/java/com/muwire/webui/SearchServlet.java
@@ -44,8 +44,11 @@ public class SearchServlet extends HttpServlet {
if (action.equals("start")) {
String search = req.getParameter("search");
- searchManager.newSearch(search);
- resp.sendRedirect("/MuWire/Home");
+ UUID newUUID = searchManager.newSearch(search);
+ if (newUUID != null)
+ resp.sendRedirect("/MuWire/Home?uuid=" + newUUID.toString());
+ else
+ resp.sendError(403, Util._t("Please enter a search keyword or hash"));
} else if (action.equals("stop")) {
String uuidString = req.getParameter("uuid");
UUID uuid = UUID.fromString(uuidString);
diff --git a/webui/src/main/js/search.js b/webui/src/main/js/search.js
index 8e2c3ceb..decc7a14 100644
--- a/webui/src/main/js/search.js
+++ b/webui/src/main/js/search.js
@@ -845,7 +845,7 @@ function refreshStatus() {
if (uuid != null) {
var newStatus = statusByUUID.get(uuid)
- if (newStatus.revision > currentSearch.revision)
+ if (currentSearch == null || newStatus.revision > currentSearch.revision)
refreshFunction(uuid)
}
}
diff --git a/webui/src/main/webapp/Home.jsp b/webui/src/main/webapp/Home.jsp
index 8d18b3a1..f349af4d 100644
--- a/webui/src/main/webapp/Home.jsp
+++ b/webui/src/main/webapp/Home.jsp
@@ -31,6 +31,11 @@
+<% if (request.getParameter("uuid") != null) {%>
+
+<% } %>
<% if (groupBy.equals("sender")) { %>