From d6c4e411be164263e9992190e7b80644a09f77ae Mon Sep 17 00:00:00 2001 From: zzz Date: Sat, 31 Aug 2013 15:19:00 +0000 Subject: [PATCH] highlight snark table rows on hover --- .../org/klomp/snark/web/I2PSnarkServlet.java | 72 +++++++++---------- .../resources/themes/snark/ubergine/snark.css | 5 ++ 2 files changed, 40 insertions(+), 37 deletions(-) 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 1fb6d0064..f538da98c 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java +++ b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java @@ -1245,10 +1245,10 @@ public class I2PSnarkServlet extends BasicServlet { String statusString; if (snark.isChecking()) { statusString = "\"\"" + - "" + _("Checking"); + "" + _("Checking"); } else if (snark.isAllocating()) { statusString = "\"\"" + - "" + _("Allocating"); + "" + _("Allocating"); } else if (err != null && curPeers == 0) { // Also don't show if seeding... but then we won't see the not-registered error // && remaining != 0 && needed != 0) { @@ -1262,18 +1262,18 @@ public class I2PSnarkServlet extends BasicServlet { //else if (isRunning) if (isRunning) statusString = "\"\"" + - "" + _("Tracker Error") + + "" + _("Tracker Error") + ": " + curPeers + thinsp(noThinsp) + ngettext("1 peer", "{0} peers", knownPeers); else { if (err.length() > MAX_DISPLAYED_ERROR_LENGTH) err = err.substring(0, MAX_DISPLAYED_ERROR_LENGTH) + "…"; statusString = "\"\"" + - "" + _("Tracker Error"); + "" + _("Tracker Error"); } } else if (snark.isStarting()) { statusString = "\"\"" + - "" + _("Starting"); + "" + _("Starting"); } else if (remaining == 0 || needed == 0) { // < 0 means no meta size yet // partial complete or seeding if (isRunning) { @@ -1289,60 +1289,60 @@ public class I2PSnarkServlet extends BasicServlet { } if (curPeers > 0 && !showPeers) statusString = "\"\"" + - "" + txt + + "" + txt + ": " + curPeers + thinsp(noThinsp) + ngettext("1 peer", "{0} peers", knownPeers) + ""; else statusString = "\"\"" + - "" + txt + + "" + txt + ": " + curPeers + thinsp(noThinsp) + ngettext("1 peer", "{0} peers", knownPeers); } else { statusString = "\"\"" + - "" + _("Complete"); + "" + _("Complete"); } } else { if (isRunning && curPeers > 0 && downBps > 0 && !showPeers) statusString = "\"\"" + - "" + _("OK") + + "" + _("OK") + ": " + curPeers + thinsp(noThinsp) + ngettext("1 peer", "{0} peers", knownPeers) + ""; else if (isRunning && curPeers > 0 && downBps > 0) statusString = "\"\"" + - "" + _("OK") + + "" + _("OK") + ": " + curPeers + thinsp(noThinsp) + ngettext("1 peer", "{0} peers", knownPeers); else if (isRunning && curPeers > 0 && !showPeers) statusString = "\"\"" + - "" + _("Stalled") + + "" + _("Stalled") + ": " + curPeers + thinsp(noThinsp) + ngettext("1 peer", "{0} peers", knownPeers) + ""; else if (isRunning && curPeers > 0) statusString = "\"\"" + - "" + _("Stalled") + + "" + _("Stalled") + ": " + curPeers + thinsp(noThinsp) + ngettext("1 peer", "{0} peers", knownPeers); else if (isRunning && knownPeers > 0) statusString = "\"\"" + - "" + _("No Peers") + + "" + _("No Peers") + ": 0" + thinsp(noThinsp) + knownPeers ; else if (isRunning) statusString = "\"\"" + - "" + _("No Peers"); + "" + _("No Peers"); else statusString = "\"\"" + - "" + _("Stopped"); + "" + _("Stopped"); } out.write(""); - out.write(""); + out.write(""); out.write(statusString + "\n\t"); // (i) icon column - out.write(""); + out.write(""); if (isValid && meta.getAnnounce() != null) { // Link to local details page - note that trailing slash on a single-file torrent // gets us to the details page instead of the file. @@ -1361,7 +1361,7 @@ public class I2PSnarkServlet extends BasicServlet { String encodedBaseName = urlEncode(snark.getBaseName()); // File type icon column - out.write("\n"); + out.write("\n"); if (isValid) { // Link to local details page - note that trailing slash on a single-file torrent // gets us to the details page instead of the file. @@ -1388,7 +1388,7 @@ public class I2PSnarkServlet extends BasicServlet { } // Torrent name column - out.write(""); + out.write(""); if (remaining == 0 || isMultiFile) { StringBuilder buf = new StringBuilder(128); buf.append(""); - out.write(""); + out.write(""); if(isRunning && remainingSeconds > 0 && !snark.isChecking()) out.write(DataHelper.formatDuration2(Math.max(remainingSeconds, 10) * 1000)); // (eta 6h) out.write("\n\t"); - out.write(""); + out.write(""); if (remaining > 0) out.write(formatSize(total-remaining) + thinsp(noThinsp) + formatSize(total)); else if (remaining == 0) @@ -1418,7 +1418,7 @@ public class I2PSnarkServlet extends BasicServlet { //else // out.write("??"); // no meta size yet out.write("\n\t"); - out.write(""); + out.write(""); if(isRunning && isValid) out.write(formatSize(uploaded)); out.write("\n\t"); @@ -1430,7 +1430,7 @@ public class I2PSnarkServlet extends BasicServlet { if(isRunning && isValid) out.write(formatSize(upBps) + "ps"); out.write("\n\t"); - out.write(""); + out.write(""); String b64 = Base64.encode(snark.getInfoHash()); if (snark.isChecking()) { // show no buttons @@ -1511,7 +1511,7 @@ public class I2PSnarkServlet extends BasicServlet { if (!peer.isConnected()) continue; out.write(""); - out.write(""); + out.write(""); String ch = peer.toString().substring(0, 4); String client; if ("AwMD".equals(ch)) @@ -1536,9 +1536,9 @@ public class I2PSnarkServlet extends BasicServlet { if (showDebug) out.write(" inactive " + (peer.getInactiveTime() / 1000) + "s"); out.write("\n\t"); - out.write(""); + out.write(""); out.write("\n\t"); - out.write(""); + out.write(""); float pct; if (isValid) { pct = (float) (100.0 * peer.completed() / meta.getPieces()); @@ -1556,9 +1556,9 @@ public class I2PSnarkServlet extends BasicServlet { //out.write("??"); } out.write("\n\t"); - out.write(""); + out.write(""); out.write("\n\t"); - out.write(""); + out.write(""); if (needed > 0) { if (peer.isInteresting() && !peer.isChoked()) { out.write(""); @@ -1580,7 +1580,7 @@ public class I2PSnarkServlet extends BasicServlet { //} } out.write("\n\t"); - out.write(""); + out.write(""); if (isValid && pct < 100.0) { if (peer.isInterested() && !peer.isChoking()) { out.write(""); @@ -1596,10 +1596,10 @@ public class I2PSnarkServlet extends BasicServlet { } } out.write("\n\t"); - out.write(""); + out.write(""); out.write("\n\t"); if (showDebug) - out.write("" + peer.getSocket() + ""); + out.write("" + peer.getSocket() + ""); } } } @@ -2553,8 +2553,7 @@ public class I2PSnarkServlet extends BasicServlet { path=addPaths(path,"/"); String icon = toIcon(item); - buf.append(""); + buf.append(""); if (complete) { buf.append(""); // thumbnail ? @@ -2569,17 +2568,16 @@ public class I2PSnarkServlet extends BasicServlet { } else { buf.append(toImg(icon)); } - buf.append(""); + buf.append(""); if (complete) buf.append(""); buf.append(item.getName()); if (complete) buf.append(""); - buf.append(""); + buf.append(""); if (!item.isDirectory()) buf.append(DataHelper.formatSize2(length)).append('B'); - buf.append(""); + buf.append(""); //buf.append(dfmt.format(new Date(item.lastModified()))); buf.append(status); buf.append(""); diff --git a/installer/resources/themes/snark/ubergine/snark.css b/installer/resources/themes/snark/ubergine/snark.css index 2992488ad..4a57291f5 100644 --- a/installer/resources/themes/snark/ubergine/snark.css +++ b/installer/resources/themes/snark/ubergine/snark.css @@ -353,10 +353,15 @@ td:first-child { border-left: 0 !important; border-right: 0 !important; } + .snarkTorrentOdd td, .snarkTorrentEven td { border-top: 1px dotted #313 !important; } +table.snarkTorrents tbody tr:hover, table.snarkDirInfo tbody tr:hover { + background: #382010 !important; +} + .snarkFileIcon { width: 16px; }