uploads page

This commit is contained in:
Zlatin Balevsky
2019-12-15 03:26:55 +00:00
parent daa9e0bafc
commit 1285c68521
6 changed files with 130 additions and 1 deletions

View File

@ -67,7 +67,7 @@ public class UploadServlet extends HttpServlet {
this.name = name;
this.progress = progress;
this.downloader = downloader;
this.remotePieces = remotePieces;
this.remotePieces = progress == 100 ? remotePieces + 1 : remotePieces;
this.totalPieces = totalPieces;
this.speed = speed;
}

View File

@ -37,6 +37,7 @@ public class Util {
_x("Down"),
_x("Download"),
_x("Download Settings"),
_x("Downloader"),
_x("Downloading"),
_x("Enter Reason (Optional)"),
_x("ETA"),
@ -62,6 +63,7 @@ public class Util {
_x("Query"),
_x("Reason"),
_x("Refresh"),
_x("Remote Pieces"),
_x("Results"),
_x("Results for {0}"),
_x("Results from {0}"),
@ -96,6 +98,7 @@ public class Util {
_x("Update trust lists every (hours)"),
_x("Upload Settings"),
_x("Upload slots per user (-1 means unlimited)"),
_x("Uploads"),
_x("User"),
_x("View {0} Certificates"),
_x("Your Trust"),

View File

@ -0,0 +1,68 @@
class Upload {
constructor(xmlNode) {
this.name = xmlNode.getElementsByTagName("Name")[0].childNodes[0].nodeValue;
this.progress = xmlNode.getElementsByTagName("Progress")[0].childNodes[0].nodeValue;
this.speed = xmlNode.getElementsByTagName("Speed")[0].childNodes[0].nodeValue;
this.downloader = xmlNode.getElementsByTagName("Downloader")[0].childNodes[0].nodeValue
this.remotePieces = xmlNode.getElementsByTagName("RemotePieces")[0].childNodes[0].nodeValue
}
getMapping() {
var mapping = new Map()
mapping.set("Name", this.name)
mapping.set("Speed", this.speed)
mapping.set("Progress", this.progress)
mapping.set("Downloader", this.downloader)
mapping.set("Remote Pieces", this.remotePieces)
return mapping
}
}
function refreshUploads() {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var xmlDoc = this.responseXML;
var uploaderList = []
var i;
var x = xmlDoc.getElementsByTagName("Upload");
for (i = 0; i < x.length; i ++) {
var upload = new Upload(x[i]);
uploaderList.push(upload)
}
var newOrder
if (uploadsSortOrder == "descending")
newOrder = "ascending"
else if (uploadsSortOrder == "ascending")
newOrder = "descending"
var table = new Table(["Name","Progress","Downloader","Remote Pieces","Speed"], "sortUploads", uploadsSortKey, newOrder, null)
for(i = 0; i < uploaderList.length; i++) {
table.addRow(uploaderList[i].getMapping())
}
var uploadsDiv = document.getElementById("uploads");
if (uploaderList.length > 0)
uploadsDiv.innerHTML = table.render();
}
}
var sortParam = "key=" + uploadsSortKey + "&order=" + uploadsSortOrder
xmlhttp.open("GET", "/MuWire/Upload?" + sortParam, true);
xmlhttp.send();
}
var uploadsSortKey
var uploadsSortOrder
function sortUploads(key, order) {
uploadsSortKey = key
uploadsSortOrder = order
refreshUploads()
}
function initUploads() {
setInterval(refreshUploads, 3000)
setTimeout(refreshUploads,1);
}

View File

@ -0,0 +1,36 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ 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.*" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@include file="initcode.jsi"%>
<% String pagetitle=Util._t("Uploads"); %>
<html>
<head>
<%@include file="css.jsi"%>
<script src="js/tables.js?<%=version%>" type="text/javascript"></script>
<script src="js/upload.js?<%=version%>" type="text/javascript"></script>
</head>
<body onload="initTranslate(jsTranslations); initConnectionsCount(); initUploads();">
<%@include file="header.jsi"%>
<aside>
<%@include file="searchbox.jsi"%>
<div class="menubox">
<h2><%=Util._t("Uploads")%></h2>
</div>
<%@include file="sidebar.jsi"%>
</aside>
<section class="main foldermain">
<div id="table-wrapper">
<div id="uploads"></div>
</div>
</section>
</body>
</html>

View File

@ -19,6 +19,12 @@
<%=Util._t("Downloads")%>
</div>
</a>
<a class="menuitem uploads" href="Uploads">
<div class="menu-icon"></div>
<div class="menu-text">
<%=Util._t("Uploads")%>
</div>
</a>
<a class="menuitem search" href="Home">
<div class="menu-icon"></div>
<div class="menu-text">

View File

@ -56,6 +56,11 @@
<servlet-class>com.muwire.webui.ConfigurationServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>com.muwire.webui.UploadServlet</servlet-name>
<servlet-class>com.muwire.webui.UploadServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>com.muwire.webui.MuWireServlet</servlet-name>
<url-pattern>/index.jsp</url-pattern>
@ -101,6 +106,12 @@
<url-pattern>/Configuration</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>com.muwire.webui.UploadServlet</servlet-name>
<url-pattern>/Upload</url-pattern>
</servlet-mapping>
__JASPER__
<!--
@ -163,4 +174,9 @@ Mappings without the .jsp suffix
<url-pattern>/ConfigurationPage</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>com.muwire.webui.Uploads_jsp</servlet-name>
<url-pattern>/Uploads</url-pattern>
</servlet-mapping>
</web-app>