diff --git a/webui/src/main/java/com/muwire/webui/SearchManager.java b/webui/src/main/java/com/muwire/webui/SearchManager.java index 3ca93e2c..81128f33 100644 --- a/webui/src/main/java/com/muwire/webui/SearchManager.java +++ b/webui/src/main/java/com/muwire/webui/SearchManager.java @@ -87,8 +87,8 @@ class SearchManager { } } - Iterable getSearches() { - return results.values(); + public Map getResults() { + return results; } public void onUIResultBatchEvent(UIResultBatchEvent e) { diff --git a/webui/src/main/webapp/Home.jsp b/webui/src/main/webapp/Home.jsp index 83901b38..03d4ca89 100644 --- a/webui/src/main/webapp/Home.jsp +++ b/webui/src/main/webapp/Home.jsp @@ -1,10 +1,11 @@ <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> -<%@ page import="java.io.File" %> +<%@ page import="java.io.*" %> <%@ page import="java.util.*" %> <%@ page import="com.muwire.webui.*" %> <%@ page import="com.muwire.core.*" %> <%@ page import="com.muwire.core.search.*" %> +<%@ page import="net.i2p.data.Base64" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> @@ -30,22 +31,56 @@
- Active Searches:
<% SearchManager searchManager = (SearchManager) client.getServletContext().getAttribute("searchManager"); - for (SearchResults results : searchManager.getSearches()) { - out.print(results.getSearch()); - out.print(" senders: "); - Map> bySender = results.getBySender(); - out.print(bySender.size()); - - int total = 0; - for (Set s : bySender.values()) { - total += s.size(); + if (request.getParameter("uuid") == null) { + out.print("Active Searches
"); + for (SearchResults results : searchManager.getResults().values()) { + StringBuilder sb = new StringBuilder(); + sb.append(results.getSearch()); + sb.append(" senders: "); + Map> bySender = results.getBySender(); + sb.append(bySender.size()); + + int total = 0; + for (Set s : bySender.values()) { + total += s.size(); + } + sb.append(" results: "); + sb.append(total); + + out.print(""+sb.toString()+"
"); } - out.print(" results: "); - out.print(total); - out.print("
"); + } else if (request.getParameter("sender") == null) { + UUID uuid = UUID.fromString(request.getParameter("uuid")); + SearchResults results = searchManager.getResults().get(uuid); + + out.print("Results for "+results.getSearch()+"
"); + + Map> bySender = results.getBySender(); + for (Persona sender : bySender.keySet()) { + StringBuilder sb = new StringBuilder(); + sb.append(sender.getHumanReadableName()); + sb.append(" count: "); + sb.append(bySender.get(sender).size()); + String link = "/MuWire/Home.jsp?uuid="+uuid.toString()+"&sender="+sender.toBase64(); + out.print(""+sb.toString()+"
"); + } + } else { + UUID uuid = UUID.fromString(request.getParameter("uuid")); + SearchResults searchResults = searchManager.getResults().get(uuid); + + String senderB64 = request.getParameter("sender"); + Persona sender = new Persona(new ByteArrayInputStream(Base64.decode(senderB64))); + + Set results = searchResults.getBySender().get(sender); + + StringBuilder sb = new StringBuilder(); + results.forEach(result -> { + sb.append(result.getName()).append(" size: ").append(result.getSize()).append("
"); + }); + out.print(sb.toString()); + } %>