diff --git a/core/src/main/java/com/muwire/core/SharedFile.java b/core/src/main/java/com/muwire/core/SharedFile.java index ab257f54..5813c133 100644 --- a/core/src/main/java/com/muwire/core/SharedFile.java +++ b/core/src/main/java/com/muwire/core/SharedFile.java @@ -159,6 +159,18 @@ public class SharedFile { this.query = query; } + public Persona getSearcher() { + return searcher; + } + + public long getTimestamp() { + return timestamp; + } + + public String getQuery() { + return query; + } + public int hashCode() { return Objects.hash(searcher) ^ Objects.hash(timestamp) ^ query.hashCode(); } diff --git a/webui/src/main/js/fileDetails.js b/webui/src/main/js/fileDetails.js index a923589c..0e6f6a87 100644 --- a/webui/src/main/js/fileDetails.js +++ b/webui/src/main/js/fileDetails.js @@ -94,7 +94,37 @@ function refreshSearchers() { } function refreshDownloaders() { - + var xmlhttp = new XMLHttpRequest() + xmlhttp.onreadystatechange = function() { + if (this.readyState == 4 && this.status == 200) { + var downloaders = [] + var downloadNodes = this.responseXML.getElementsByTagName("Downloader") + var i + for (i = 0;i < downloadNodes.length; i++ ) { + downloaders.push(new DownloadEntry(downloadNodes[i])) + } + + var newOrder + if (downloadersSortOrder == "descending") + newOrder = "ascending" + else if (downloadersSortOrder == "ascending") + newOrder = "descending" + var table = new Table(["Downloader"], "sortDownloaders", downloadersSortKey, newOrder, null) + + for (i = 0; i < downloaders.length; i++) { + table.addRow(downloaders[i].getMapping()) + } + + var downloadersDiv = document.getElementById("downloadersTable") + if (downloaders.length > 0) + downloadersDiv.innerHTML = table.render() + else + downloadersDiv.innerHTML = "" + } + } + var sortParam = "&key=" + downloadersSortKey + "&order=" + downloadersSortOrder + xmlhttp.open("GET", encodeURI("/MuWire/FileInfo?path=" + path + "§ion=downloaders" + sortParam)) + xmlhttp.send() } function refreshCertificates() { @@ -107,13 +137,19 @@ function sortSearchers(key, order) { refreshSearchers() } +function sortDownloaders(key, order) { + downloadersSortKey = key + downloadersSortOrder = order + refreshDownloaders() +} + var path = null var expandedComments = new Map() -var searchersSortKey = "searcher" +var searchersSortKey = "Searcher" var searchersSortOrder = "descending" -var downloadersSortKey = "downloader" +var downloadersSortKey = "Downloader" var downloadersSortOrder = "descending" -var certificatesSortKey = "name" +var certificatesSortKey = "Name" var certificatesSortOrder = "descending" diff --git a/webui/src/main/js/filesTable.js b/webui/src/main/js/filesTable.js index 588113b6..52451c52 100644 --- a/webui/src/main/js/filesTable.js +++ b/webui/src/main/js/filesTable.js @@ -37,10 +37,11 @@ class SharedFile { showCommentHtml = "" + showCommentLink.render() + "" var commentDiv = "
" var nameLink = "" + this.name + "" + var detailsLink = "" + _t("Show Details") + "" var html = nameLink + infoHashTextArea + "