forked from I2P_Developers/i2p.i2p
i2psnark:
- Tweak column tooltips - Tweak status sort
This commit is contained in:
@ -427,7 +427,7 @@ public class I2PSnarkServlet extends BasicServlet {
|
|||||||
String sort = ("2".equals(currentSort)) ? "-2" : "2";
|
String sort = ("2".equals(currentSort)) ? "-2" : "2";
|
||||||
out.write("<a href=\"" + _contextPath + '/' + getQueryString(req, null, null, sort));
|
out.write("<a href=\"" + _contextPath + '/' + getQueryString(req, null, null, sort));
|
||||||
out.write("\"><img border=\"0\" src=\"" + _imgPath + "status.png\" title=\"");
|
out.write("\"><img border=\"0\" src=\"" + _imgPath + "status.png\" title=\"");
|
||||||
out.write(_("Status"));
|
out.write(_("Sort by {0}", _("Status")));
|
||||||
out.write("\" alt=\"");
|
out.write("\" alt=\"");
|
||||||
out.write(_("Status"));
|
out.write(_("Status"));
|
||||||
out.write("\"></a></th>\n<th>");
|
out.write("\"></a></th>\n<th>");
|
||||||
@ -457,7 +457,7 @@ public class I2PSnarkServlet extends BasicServlet {
|
|||||||
sort = (currentSort == null || "0".equals(currentSort) || "1".equals(currentSort)) ? "-1" : "";
|
sort = (currentSort == null || "0".equals(currentSort) || "1".equals(currentSort)) ? "-1" : "";
|
||||||
out.write("<a href=\"" + _contextPath + '/' + getQueryString(req, null, null, sort));
|
out.write("<a href=\"" + _contextPath + '/' + getQueryString(req, null, null, sort));
|
||||||
out.write("\"><img border=\"0\" src=\"" + _imgPath + "torrent.png\" title=\"");
|
out.write("\"><img border=\"0\" src=\"" + _imgPath + "torrent.png\" title=\"");
|
||||||
out.write(_("Torrent"));
|
out.write(_("Sort by {0}", _("Torrent")));
|
||||||
out.write("\" alt=\"");
|
out.write("\" alt=\"");
|
||||||
out.write(_("Torrent"));
|
out.write(_("Torrent"));
|
||||||
out.write("\"></a></th>\n<th align=\"center\">");
|
out.write("\"></a></th>\n<th align=\"center\">");
|
||||||
@ -469,7 +469,7 @@ public class I2PSnarkServlet extends BasicServlet {
|
|||||||
sort = ("4".equals(currentSort)) ? "-4" : "4";
|
sort = ("4".equals(currentSort)) ? "-4" : "4";
|
||||||
out.write("<a href=\"" + _contextPath + '/' + getQueryString(req, null, null, sort));
|
out.write("<a href=\"" + _contextPath + '/' + getQueryString(req, null, null, sort));
|
||||||
out.write("\"><img border=\"0\" src=\"" + _imgPath + "eta.png\" title=\"");
|
out.write("\"><img border=\"0\" src=\"" + _imgPath + "eta.png\" title=\"");
|
||||||
out.write(_("Estimated time remaining"));
|
out.write(_("Sort by {0}", _("Estimated time remaining")));
|
||||||
out.write("\" alt=\"");
|
out.write("\" alt=\"");
|
||||||
// Translators: Please keep short or translate as " "
|
// Translators: Please keep short or translate as " "
|
||||||
out.write(_("ETA"));
|
out.write(_("ETA"));
|
||||||
@ -480,7 +480,7 @@ public class I2PSnarkServlet extends BasicServlet {
|
|||||||
sort = ("5".equals(currentSort)) ? "-5" : "5";
|
sort = ("5".equals(currentSort)) ? "-5" : "5";
|
||||||
out.write("<a href=\"" + _contextPath + '/' + getQueryString(req, null, null, sort));
|
out.write("<a href=\"" + _contextPath + '/' + getQueryString(req, null, null, sort));
|
||||||
out.write("\"><img border=\"0\" src=\"" + _imgPath + "head_rx.png\" title=\"");
|
out.write("\"><img border=\"0\" src=\"" + _imgPath + "head_rx.png\" title=\"");
|
||||||
out.write(_("Downloaded"));
|
out.write(_("Sort by {0}", _("Size")));
|
||||||
out.write("\" alt=\"");
|
out.write("\" alt=\"");
|
||||||
// Translators: Please keep short or translate as " "
|
// Translators: Please keep short or translate as " "
|
||||||
out.write(_("RX"));
|
out.write(_("RX"));
|
||||||
@ -490,7 +490,7 @@ public class I2PSnarkServlet extends BasicServlet {
|
|||||||
sort = ("7".equals(currentSort)) ? "-7" : "7";
|
sort = ("7".equals(currentSort)) ? "-7" : "7";
|
||||||
out.write("<a href=\"" + _contextPath + '/' + getQueryString(req, null, null, sort));
|
out.write("<a href=\"" + _contextPath + '/' + getQueryString(req, null, null, sort));
|
||||||
out.write("\"><img border=\"0\" src=\"" + _imgPath + "head_tx.png\" title=\"");
|
out.write("\"><img border=\"0\" src=\"" + _imgPath + "head_tx.png\" title=\"");
|
||||||
out.write(_("Uploaded"));
|
out.write(_("Sort by {0}", _("Uploaded")));
|
||||||
out.write("\" alt=\"");
|
out.write("\" alt=\"");
|
||||||
// Translators: Please keep short or translate as " "
|
// Translators: Please keep short or translate as " "
|
||||||
out.write(_("TX"));
|
out.write(_("TX"));
|
||||||
@ -501,7 +501,7 @@ public class I2PSnarkServlet extends BasicServlet {
|
|||||||
sort = ("8".equals(currentSort)) ? "-8" : "8";
|
sort = ("8".equals(currentSort)) ? "-8" : "8";
|
||||||
out.write("<a href=\"" + _contextPath + '/' + getQueryString(req, null, null, sort));
|
out.write("<a href=\"" + _contextPath + '/' + getQueryString(req, null, null, sort));
|
||||||
out.write("\"><img border=\"0\" src=\"" + _imgPath + "head_rxspeed.png\" title=\"");
|
out.write("\"><img border=\"0\" src=\"" + _imgPath + "head_rxspeed.png\" title=\"");
|
||||||
out.write(_("Down Rate"));
|
out.write(_("Sort by {0}", _("Down Rate")));
|
||||||
out.write("\" alt=\"");
|
out.write("\" alt=\"");
|
||||||
// Translators: Please keep short or translate as " "
|
// Translators: Please keep short or translate as " "
|
||||||
out.write(_("RX Rate"));
|
out.write(_("RX Rate"));
|
||||||
@ -512,7 +512,7 @@ public class I2PSnarkServlet extends BasicServlet {
|
|||||||
sort = ("9".equals(currentSort)) ? "-9" : "9";
|
sort = ("9".equals(currentSort)) ? "-9" : "9";
|
||||||
out.write("<a href=\"" + _contextPath + '/' + getQueryString(req, null, null, sort));
|
out.write("<a href=\"" + _contextPath + '/' + getQueryString(req, null, null, sort));
|
||||||
out.write("\"><img border=\"0\" src=\"" + _imgPath + "head_txspeed.png\" title=\"");
|
out.write("\"><img border=\"0\" src=\"" + _imgPath + "head_txspeed.png\" title=\"");
|
||||||
out.write(_("Up Rate"));
|
out.write(_("Sort by {0}", _("Up Rate")));
|
||||||
out.write("\" alt=\"");
|
out.write("\" alt=\"");
|
||||||
// Translators: Please keep short or translate as " "
|
// Translators: Please keep short or translate as " "
|
||||||
out.write(_("TX Rate"));
|
out.write(_("TX Rate"));
|
||||||
|
@ -11,10 +11,26 @@ import org.klomp.snark.Snark;
|
|||||||
/**
|
/**
|
||||||
* Comparators for various columns
|
* Comparators for various columns
|
||||||
*
|
*
|
||||||
* @since 0.9.16 moved from I2PSnarkservlet
|
* @since 0.9.16 from TorrentNameComparator, moved from I2PSnarkservlet
|
||||||
*/
|
*/
|
||||||
class Sorters {
|
class Sorters {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Negative is reverse
|
||||||
|
*
|
||||||
|
*<ul>
|
||||||
|
*<li>0, 1: Name
|
||||||
|
*<li>2: Status
|
||||||
|
*<li>3: Peers
|
||||||
|
*<li>4: ETA
|
||||||
|
*<li>5: Size
|
||||||
|
*<li>6: Downloaded
|
||||||
|
*<li>7: Uploaded
|
||||||
|
*<li>8: Down rate
|
||||||
|
*<li>9: Up rate
|
||||||
|
*<li>10: Remaining (needed)
|
||||||
|
*</ul>
|
||||||
|
*/
|
||||||
public static Comparator<Snark> getComparator(int type) {
|
public static Comparator<Snark> getComparator(int type) {
|
||||||
boolean rev = type < 0;
|
boolean rev = type < 0;
|
||||||
Comparator<Snark> rv;
|
Comparator<Snark> rv;
|
||||||
@ -143,7 +159,11 @@ class Sorters {
|
|||||||
private StatusComparator(boolean rev) { super(rev); }
|
private StatusComparator(boolean rev) { super(rev); }
|
||||||
|
|
||||||
public int compareIt(Snark l, Snark r) {
|
public int compareIt(Snark l, Snark r) {
|
||||||
return getStatus(l) - getStatus(r);
|
int rv = getStatus(l) - getStatus(r);
|
||||||
|
if (rv != 0)
|
||||||
|
return rv;
|
||||||
|
// use reverse remaining as first tie break
|
||||||
|
return compLong(r.getNeededLength(), l.getNeededLength());
|
||||||
}
|
}
|
||||||
|
|
||||||
private static int getStatus(Snark snark) {
|
private static int getStatus(Snark snark) {
|
||||||
@ -204,14 +224,15 @@ class Sorters {
|
|||||||
|
|
||||||
private static long eta(Snark snark) {
|
private static long eta(Snark snark) {
|
||||||
long needed = snark.getNeededLength();
|
long needed = snark.getNeededLength();
|
||||||
|
if (needed <= 0)
|
||||||
|
return 0;
|
||||||
long total = snark.getTotalLength();
|
long total = snark.getTotalLength();
|
||||||
if (needed > total)
|
if (needed > total)
|
||||||
needed = total;
|
needed = total;
|
||||||
long remainingSeconds;
|
|
||||||
long downBps = snark.getDownloadRate();
|
long downBps = snark.getDownloadRate();
|
||||||
if (downBps > 0 && needed > 0)
|
if (downBps > 0)
|
||||||
return needed / downBps;
|
return needed / downBps;
|
||||||
return -1;
|
return Long.MAX_VALUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user