diff --git a/webui/src/main/java/com/muwire/webui/SearchServlet.java b/webui/src/main/java/com/muwire/webui/SearchServlet.java index d0126194..ddbb9f8d 100644 --- a/webui/src/main/java/com/muwire/webui/SearchServlet.java +++ b/webui/src/main/java/com/muwire/webui/SearchServlet.java @@ -177,6 +177,7 @@ public class SearchServlet extends HttpServlet { Result result = new Result(event.getName(), event.getSize(), downloadManager.isDownloading(infoHash), + resultSet.size(), infoHash); results.add(result); }); @@ -328,13 +329,15 @@ public class SearchServlet extends HttpServlet { private final String name; private final long size; private final boolean downloading; + private final int sources; private final InfoHash infoHash; - Result(String name, long size, boolean downloading, InfoHash infoHash) { + Result(String name, long size, boolean downloading, int sources, InfoHash infoHash) { this.name = name; this.size = size; this.downloading = downloading; this.infoHash = infoHash; + this.sources = sources; } void toXML(StringBuilder sb) { @@ -343,6 +346,7 @@ public class SearchServlet extends HttpServlet { sb.append("").append(DataHelper.formatSize2Decimal(size, false)).append("B").append(""); sb.append("").append(Base64.encode(infoHash.getRoot())).append(""); sb.append("").append(downloading).append(""); + sb.append("").append(sources).append(""); sb.append(""); } } @@ -449,11 +453,16 @@ public class SearchServlet extends HttpServlet { return Boolean.compare(k.downloading, v.downloading); }; + private static final Comparator RESULT_BY_SOURCES = (l, r) -> { + return Integer.compare(l.sources, r.sources); + }; + private static final ColumnComparators RESULT_COMPARATORS = new ColumnComparators<>(); static { RESULT_COMPARATORS.add("Name", RESULT_BY_NAME); RESULT_COMPARATORS.add("Size", RESULT_BY_SIZE); RESULT_COMPARATORS.add("Download", RESULT_BY_DOWNLOAD); + RESULT_COMPARATORS.add("Sources", RESULT_BY_SOURCES); } private static final Comparator SENDER_FOR_RESULT_BY_SENDER = (k, v) -> { diff --git a/webui/src/main/java/com/muwire/webui/Util.java b/webui/src/main/java/com/muwire/webui/Util.java index 114c6adc..4d7d85dd 100644 --- a/webui/src/main/java/com/muwire/webui/Util.java +++ b/webui/src/main/java/com/muwire/webui/Util.java @@ -91,6 +91,7 @@ public class Util { _x("Sharing"), _x("Show Comment"), _x("Size"), + _x("Sources"), _x("Speed"), _x("State"), _x("Status"), diff --git a/webui/src/main/js/search.js b/webui/src/main/js/search.js index 1ab1f6c0..8d944c81 100644 --- a/webui/src/main/js/search.js +++ b/webui/src/main/js/search.js @@ -224,6 +224,7 @@ class Result { this.size = xmlNode.getElementsByTagName("Size")[0].childNodes[0].nodeValue this.infoHash = xmlNode.getElementsByTagName("InfoHash")[0].childNodes[0].nodeValue this.downloading = xmlNode.getElementsByTagName("Downloading")[0].childNodes[0].nodeValue + this.sources = xmlNode.getElementsByTagName("Sources")[0].childNodes[0].nodeValue } getMapping() { @@ -231,6 +232,7 @@ class Result { mapping.set("Name", this.getNameBlock()) mapping.set("Size", this.size) mapping.set("Download", this.getDownloadBlock()) + mapping.set("Sources", this.sources) return mapping } @@ -265,7 +267,7 @@ class Results { newOrder = "ascending" else if (resultsSortOrder == "ascending") newOrder = "descending" - var table = new Table(["Name","Size","Download"], "sortResultsTable", resultsSortKey, newOrder, null) + var table = new Table(["Name","Size","Sources","Download"], "sortResultsTable", resultsSortKey, newOrder, null) var i for (i = 0; i < this.results.length; i++) { table.addRow(this.results[i].getMapping())