diff --git a/webui/src/main/java/com/muwire/webui/DownloadServlet.java b/webui/src/main/java/com/muwire/webui/DownloadServlet.java index b1e8518f..d3b1e877 100644 --- a/webui/src/main/java/com/muwire/webui/DownloadServlet.java +++ b/webui/src/main/java/com/muwire/webui/DownloadServlet.java @@ -78,8 +78,9 @@ public class DownloadServlet extends HttpServlet { resp.setDateHeader("Expires", 0); resp.setHeader("Pragma", "no-cache"); resp.setHeader("Cache-Control", "no-store, max-age=0, no-cache, must-revalidate"); - resp.getWriter().write(sb.toString()); - resp.getWriter().flush(); + byte[] out = sb.toString().getBytes("UTF-8"); + resp.setContentLength(out.length); + resp.getOutputStream().write(out); } diff --git a/webui/src/main/java/com/muwire/webui/FilesServlet.java b/webui/src/main/java/com/muwire/webui/FilesServlet.java index 6741723e..fcc6c45e 100644 --- a/webui/src/main/java/com/muwire/webui/FilesServlet.java +++ b/webui/src/main/java/com/muwire/webui/FilesServlet.java @@ -22,6 +22,10 @@ public class FilesServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String section = req.getParameter("section"); + if (section == null) { + resp.sendError(403, "Bad section param"); + return; + } StringBuilder sb = new StringBuilder(); sb.append(""); if (section.equals("status")) { @@ -37,9 +41,13 @@ public class FilesServlet extends HttpServlet { String encodedPath = req.getParameter("path"); File current = null; if (encodedPath != null) { - String[] split = encodedPath.split(","); + String[] split = DataHelper.split(encodedPath, ","); for (String element : split) { element = Base64.decodeToString(element); + if (element == null) { + resp.sendError(403, "bad path"); + return; + } if (current == null) { current = new File(element); continue; @@ -55,8 +63,9 @@ public class FilesServlet extends HttpServlet { resp.setDateHeader("Expires", 0); resp.setHeader("Pragma", "no-cache"); resp.setHeader("Cache-Control", "no-store, max-age=0, no-cache, must-revalidate"); - resp.getWriter().write(sb.toString()); - resp.flushBuffer(); + byte[] out = sb.toString().getBytes("UTF-8"); + resp.setContentLength(out.length); + resp.getOutputStream().write(out); } @Override diff --git a/webui/src/main/java/com/muwire/webui/MuWireServlet.java b/webui/src/main/java/com/muwire/webui/MuWireServlet.java index af824680..b65cb6b8 100644 --- a/webui/src/main/java/com/muwire/webui/MuWireServlet.java +++ b/webui/src/main/java/com/muwire/webui/MuWireServlet.java @@ -57,7 +57,16 @@ public class MuWireServlet extends HttpServlet { "\n" + "\n" + "\n" + - "

MuWire is initializing, please wait

\n" + + "
" + + "
" + + "\"\"" + + "Welcome to MuWire" + + "
" + + "




" + + "
" + + "MuWire is initializing, please wait" + + "
" + + "
" + ""); resp.setIntHeader("Refresh", 5); } else diff --git a/webui/src/main/java/com/muwire/webui/SearchServlet.java b/webui/src/main/java/com/muwire/webui/SearchServlet.java index e9ef9264..683dbf27 100644 --- a/webui/src/main/java/com/muwire/webui/SearchServlet.java +++ b/webui/src/main/java/com/muwire/webui/SearchServlet.java @@ -134,8 +134,9 @@ public class SearchServlet extends HttpServlet { resp.setDateHeader("Expires", 0); resp.setHeader("Pragma", "no-cache"); resp.setHeader("Cache-Control", "no-store, max-age=0, no-cache, must-revalidate"); - resp.getWriter().write(sb.toString()); - resp.flushBuffer(); + byte[] out = sb.toString().getBytes("UTF-8"); + resp.setContentLength(out.length); + resp.getOutputStream().write(out); } diff --git a/webui/src/main/js/conncount.js b/webui/src/main/js/conncount.js index ed117dc5..e5dd861a 100644 --- a/webui/src/main/js/conncount.js +++ b/webui/src/main/js/conncount.js @@ -7,6 +7,8 @@ function refreshConnectionsCount() { var connectionCountSpan = document.getElementById("connectionsCount"); var countString = ""+count; connectionCountSpan.innerHTML = countString; + } else { + connectionCountSpan.innerHTML = "down"; } } xmlhttp.open("GET", "/MuWire/Search?section=connectionsCount", true); diff --git a/webui/src/main/js/files.js b/webui/src/main/js/files.js index 185cd171..fb986af9 100644 --- a/webui/src/main/js/files.js +++ b/webui/src/main/js/files.js @@ -166,4 +166,28 @@ function refreshStatus() { } xmlhttp.open("GET", "/MuWire/Files?section=status", true) xmlhttp.send(); -} \ No newline at end of file +} + +var root = new Node("sharedTree",null,false) +var nodesById = new Map() + +class Node { + constructor(nodeId, parent, leaf, path) { + this.nodeId = nodeId + this.parent = parent + this.leaf = leaf + this.children = [] + this.path = path + } + + function updateDiv() { + var div = document.getElementById(this.nodeId) + if (this.leaf) { + div.innerHTML = "
  • "+this.path+
  • + } else { + if (children.length == 0) { + div.innerHTML = "
  • " + this.path + "
  • " + } + } + } +} diff --git a/webui/src/main/webapp/Downloads.jsp b/webui/src/main/webapp/Downloads.jsp index 5aef5773..8557ce97 100644 --- a/webui/src/main/webapp/Downloads.jsp +++ b/webui/src/main/webapp/Downloads.jsp @@ -20,7 +20,10 @@ <%@include file="header.jsi"%>
    diff --git a/webui/src/main/webapp/Home.jsp b/webui/src/main/webapp/Home.jsp index 11340e3b..410ce7bc 100644 --- a/webui/src/main/webapp/Home.jsp +++ b/webui/src/main/webapp/Home.jsp @@ -28,19 +28,22 @@ <% } %> <%@include file="header.jsi"%>

    Results

    diff --git a/webui/src/main/webapp/sidebar.jsi b/webui/src/main/webapp/sidebar.jsi new file mode 100644 index 00000000..9a3e30de --- /dev/null +++ b/webui/src/main/webapp/sidebar.jsi @@ -0,0 +1,15 @@ + + + +