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())