diff --git a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java index d19d8b7e7..f1c6658c9 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java +++ b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java @@ -2611,6 +2611,10 @@ public class I2PSnarkServlet extends BasicServlet { if (showPriority) { buf.append("
\n"); buf.append("\n"); + if (sortParam != null) { + buf.append("\n"); + } } if (snark != null) { // first table - torrent info @@ -2843,7 +2847,9 @@ public class I2PSnarkServlet extends BasicServlet { for (int i = 0; i < ls.length; i++) { fileList.add(new Sorters.FileAndIndex(ls[i], storage)); } - if (fileList.size() > 1) { + + boolean showSort = fileList.size() > 1; + if (showSort) { int sort = 0; if (sortParam != null) { try { @@ -2858,17 +2864,63 @@ public class I2PSnarkServlet extends BasicServlet { buf.append("\n") .append(""); String tx = _("Directory"); - toThemeImg(buf, "file", tx, tx + ": " + directory); + // cycle through sort by name or type + String sort; + boolean isTypeSort = false; + if (showSort) { + if (sortParam == null || "0".equals(sortParam) || "1".equals(sortParam)) { + sort = "-1"; + } else if ("-1".equals(sortParam)) { + sort = "12"; + isTypeSort = true; + } else if ("12".equals(sortParam)) { + sort = "-12"; + isTypeSort = true; + } else { + sort = ""; + } + buf.append(""); + } + toThemeImg(buf, "file", tx, + showSort ? _("Sort by {0}", (isTypeSort ? _("File type") : _("Name"))) + : tx + ": " + directory); + if (showSort) + buf.append(""); buf.append("\n"); + if (showSort) { + sort = ("5".equals(sortParam)) ? "-5" : "5"; + buf.append(""); + } tx = _("Size"); - toThemeImg(buf, "size", tx, tx); + toThemeImg(buf, "size", tx, + showSort ? _("Sort by {0}", tx) : tx); + if (showSort) + buf.append(""); buf.append("\n"); + if (showSort) { + sort = ("10".equals(sortParam)) ? "-10" : "10"; + buf.append(""); + } tx = _("Status"); - toThemeImg(buf, "status", tx, tx); + toThemeImg(buf, "status", tx, + showSort ? _("Sort by {0}", _("Remaining")) : tx); + if (showSort) + buf.append(""); if (showPriority) { buf.append("\n"); + if (showSort) { + sort = ("13".equals(sortParam)) ? "-13" : "13"; + buf.append(""); + } tx = _("Priority"); - toThemeImg(buf, "priority", tx, tx); + toThemeImg(buf, "priority", tx, + showSort ? _("Sort by {0}", tx) : tx); + if (showSort) + buf.append(""); } buf.append("\n\n\n"); buf.append(" 0) - buf.append(" title=\"").append(altText).append('"'); + buf.append(" title=\"").append(titleText).append('"'); buf.append('>'); } diff --git a/apps/i2psnark/java/src/org/klomp/snark/web/Sorters.java b/apps/i2psnark/java/src/org/klomp/snark/web/Sorters.java index 24759374b..8098520b1 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/web/Sorters.java +++ b/apps/i2psnark/java/src/org/klomp/snark/web/Sorters.java @@ -368,7 +368,7 @@ class Sorters { } else { isDirectory = file.isDirectory(); remaining = -1; - priority = 0; + priority = -999; } length = isDirectory ? 0 : file.length(); }