forked from I2P_Developers/i2p.i2p
i2psnark:
- Reorder .snarkCommentInfo sections so my rating / average rating is located directly above posted comments/ratings in .snarkComments - Allows us to visually join the two tables and provide comment/rating continuity - If author name for comments is configured, display it in .snarkCommentInfo table header - Full status tooltips for status icons in .snarkTorrents - This ensures we still retain full info in mini-mode in light/midnight themes in addition to providing more descriptive text (for new users) - Rework td/th classes for .snarkTorrents so each column (both th + td) now belongs to a given class - Removes the need to overuse nth-child qualifiers to target columns - Allows easier column-alignment/spacing/widths - Stop .snarkTorrentStatus class being incorrectly applied to .peerinfo columns - Spans for DHT peers / Dest in #totals - Ensures they don't break on narrower screens in Russian etc. - Span for .snarkTorrentInfo info hash - So we can highlight and select with a single click - Delete icon for delete comments td - Overhaul .snarkTorrents column widths - Provides more predictable scaling experience, tidier layout - CSS tidyups; deduplicate .snarkTorrents classes and move to their own commented section
This commit is contained in:
@ -452,7 +452,7 @@ public class I2PSnarkServlet extends BasicServlet {
|
||||
|
||||
String currentSort = req.getParameter("sort");
|
||||
boolean showSort = total > 1;
|
||||
out.write("<tr><th>");
|
||||
out.write("<tr><th class=\"snarkGraphicStatus\">");
|
||||
String sort = ("2".equals(currentSort)) ? "-2" : "2";
|
||||
if (showSort) {
|
||||
out.write("<a href=\"" + _contextPath + '/' + getQueryString(req, null, null, sort));
|
||||
@ -464,7 +464,7 @@ public class I2PSnarkServlet extends BasicServlet {
|
||||
: tx));
|
||||
if (showSort)
|
||||
out.write("</a>");
|
||||
out.write("</th>\n<th>");
|
||||
out.write("</th>\n<th class=\"snarkTorrentStatus\">");
|
||||
if (_manager.util().connected() && !snarks.isEmpty()) {
|
||||
out.write(" <a href=\"" + _contextPath + '/');
|
||||
if (peerParam != null) {
|
||||
@ -480,7 +480,7 @@ public class I2PSnarkServlet extends BasicServlet {
|
||||
tx = _t("Show Peers");
|
||||
out.write(toThemeImg("showpeers", tx, tx));
|
||||
}
|
||||
out.write("</a><br>\n");
|
||||
out.write("</a>\n");
|
||||
}
|
||||
out.write("</th>\n<th colspan=\"2\" align=\"left\">");
|
||||
// cycle through sort by name or type
|
||||
@ -510,7 +510,7 @@ public class I2PSnarkServlet extends BasicServlet {
|
||||
if (total > 0 && (start > 0 || total > pageSize)) {
|
||||
writePageNav(out, req, start, pageSize, total, noThinsp);
|
||||
}
|
||||
out.write("</th>\n<th align=\"right\">");
|
||||
out.write("</th>\n<th class=\"snarkTorrentETA\" align=\"right\">");
|
||||
if (_manager.util().connected() && !snarks.isEmpty()) {
|
||||
if (showSort) {
|
||||
sort = ("4".equals(currentSort)) ? "-4" : "4";
|
||||
@ -525,7 +525,7 @@ public class I2PSnarkServlet extends BasicServlet {
|
||||
if (showSort)
|
||||
out.write("</a>");
|
||||
}
|
||||
out.write("</th>\n<th align=\"right\">");
|
||||
out.write("</th>\n<th class=\"snarkTorrentDownloaded\" align=\"right\">");
|
||||
// cycle through sort by size or downloaded
|
||||
boolean isDlSort = false;
|
||||
if (showSort) {
|
||||
@ -550,7 +550,7 @@ public class I2PSnarkServlet extends BasicServlet {
|
||||
: _t("Downloaded")));
|
||||
if (showSort)
|
||||
out.write("</a>");
|
||||
out.write("</th>\n<th align=\"right\">");
|
||||
out.write("</th>\n<th class=\"snarkTorrentUploaded\" align=\"right\">");
|
||||
boolean isRatSort = false;
|
||||
if (!snarks.isEmpty()) {
|
||||
// cycle through sort by uploaded or ratio
|
||||
@ -582,7 +582,7 @@ public class I2PSnarkServlet extends BasicServlet {
|
||||
if (showSort)
|
||||
out.write("</a>");
|
||||
}
|
||||
out.write("</th>\n<th align=\"right\">");
|
||||
out.write("</th>\n<th class=\"snarkTorrentRateDown\" align=\"right\">");
|
||||
if (_manager.util().connected() && !snarks.isEmpty()) {
|
||||
if (showSort) {
|
||||
sort = ("8".equals(currentSort)) ? "-8" : "8";
|
||||
@ -597,7 +597,7 @@ public class I2PSnarkServlet extends BasicServlet {
|
||||
if (showSort)
|
||||
out.write("</a>");
|
||||
}
|
||||
out.write("</th>\n<th align=\"right\">");
|
||||
out.write("</th>\n<th class=\"snarkTorrentRateUp\" align=\"right\">");
|
||||
if (_manager.util().connected() && !snarks.isEmpty()) {
|
||||
if (showSort) {
|
||||
sort = ("9".equals(currentSort)) ? "-9" : "9";
|
||||
@ -612,7 +612,7 @@ public class I2PSnarkServlet extends BasicServlet {
|
||||
if (showSort)
|
||||
out.write("</a>");
|
||||
}
|
||||
out.write("</th>\n<th align=\"center\">");
|
||||
out.write("</th>\n<th class=\"snarkTorrentAction\" align=\"center\">");
|
||||
|
||||
if (_manager.isStopping()) {
|
||||
out.write(" ");
|
||||
@ -674,13 +674,12 @@ public class I2PSnarkServlet extends BasicServlet {
|
||||
|
||||
if (total == 0) {
|
||||
out.write("<tr class=\"snarkTorrentNoneLoaded\">" +
|
||||
"<td class=\"snarkTorrentNoneLoaded\"" +
|
||||
" colspan=\"11\"><i>");
|
||||
"<td colspan=\"11\"><i>");
|
||||
out.write(_t("No torrents loaded."));
|
||||
out.write("</i></td></tr>\n");
|
||||
} else /** if (snarks.size() > 1) */ {
|
||||
out.write("<tfoot><tr>\n" +
|
||||
" <th align=\"left\" colspan=\"6\">");
|
||||
" <th id=\"snarkTorrentTotals\" align=\"left\" colspan=\"6\">");
|
||||
out.write("<span id=\"totals\">");
|
||||
out.write(_t("Totals"));
|
||||
out.write(": ");
|
||||
@ -695,32 +694,34 @@ public class I2PSnarkServlet extends BasicServlet {
|
||||
if (dht != null) {
|
||||
int dhts = dht.size();
|
||||
if (dhts > 0) {
|
||||
out.write(", ");
|
||||
out.write(", <span>");
|
||||
out.write(ngettext("1 DHT peer", "{0} DHT peers", dhts));
|
||||
out.write("</span>");
|
||||
}
|
||||
}
|
||||
String IPString = _manager.util().getOurIPString();
|
||||
if(!IPString.equals("unknown")) {
|
||||
// Only truncate if it's an actual dest
|
||||
out.write("; ");
|
||||
out.write("; <span id=\"ourDest\">");
|
||||
out.write(_t("Dest"));
|
||||
out.write(": <tt title=\"");
|
||||
out.write(_t("Our destination (identity) for this session"));
|
||||
out.write("\">");
|
||||
out.write(IPString.substring(0, 4));
|
||||
out.write("</tt>");
|
||||
out.write("</tt></span>");
|
||||
}
|
||||
out.write("</span>");
|
||||
out.write("</th>\n");
|
||||
if (_manager.util().connected() && total > 0) {
|
||||
out.write(" <th align=\"right\">" + formatSize(stats[0]) + "</th>\n" +
|
||||
" <th align=\"right\">" + formatSize(stats[1]) + "</th>\n" +
|
||||
" <th align=\"right\">" + formatSize(stats[2]) + "ps</th>\n" +
|
||||
" <th align=\"right\">" + formatSize(stats[3]) + "ps</th>\n" +
|
||||
" <th></th>");
|
||||
out.write(" <th class=\"snarkTorrentDownloaded\" align=\"right\">" + formatSize(stats[0]) + "</th>\n" +
|
||||
" <th class=\"snarkTorrentUploaded\" align=\"right\">" + formatSize(stats[1]) + "</th>\n" +
|
||||
" <th class=\"snarkTorrentRateDown\" align=\"right\">" + formatSize(stats[2]) + "ps</th>\n" +
|
||||
" <th class=\"snarkTorrentRateUp\" align=\"right\">" + formatSize(stats[3]) + "ps</th>\n" +
|
||||
" <th class=\"snarkTorrentAction\"></th>");
|
||||
} else {
|
||||
out.write("<th colspan=\"5\"></th>");
|
||||
}
|
||||
// TODO javascript handler to remember checkbox status for debug panel visibility (otherwise resets with ajax/meta refresh)
|
||||
if (dht != null) {
|
||||
if (showDebug) {
|
||||
out.write("</tr>\n<tr class=\"dhtDebug\">");
|
||||
@ -1582,11 +1583,14 @@ public class I2PSnarkServlet extends BasicServlet {
|
||||
String txt;
|
||||
if (remaining == 0) {
|
||||
img = "seeding";
|
||||
txt = _t("Seeding");
|
||||
txt = _t("Seeding to {0} of {1} peers in swarm", curPeers, knownPeers);
|
||||
} else {
|
||||
// partial
|
||||
img = "complete";
|
||||
txt = _t("Complete");
|
||||
if (curPeers > 0) {
|
||||
txt = txt + " (" + _t("Seeding to {0} of {1} peers in swarm", curPeers, knownPeers) + ")";
|
||||
}
|
||||
}
|
||||
if (curPeers > 0 && !showPeers) {
|
||||
statusString = toThemeImg(img, "", txt) + "</td>" +
|
||||
@ -1606,29 +1610,29 @@ public class I2PSnarkServlet extends BasicServlet {
|
||||
}
|
||||
} else {
|
||||
if (isRunning && curPeers > 0 && downBps > 0 && !showPeers) {
|
||||
statusString = toThemeImg("downloading", "", _t("OK")) + "</td>" +
|
||||
statusString = toThemeImg("downloading", "", _t("OK") + " (" + _t("Downloading from {0} of {1} peers in swarm", curPeers, knownPeers) + ")") + "</td>" +
|
||||
"<td class=\"snarkTorrentStatus\"><b>" + _t("OK") +
|
||||
":</b> <a href=\"" + uri + getQueryString(req, b64, null, null) + '#' + b64Short + "\">" +
|
||||
curPeers + thinsp(noThinsp) +
|
||||
ngettext("1 peer", "{0} peers", knownPeers) + "</a>";
|
||||
} else if (isRunning && curPeers > 0 && downBps > 0) {
|
||||
statusString = toThemeImg("downloading", "", _t("OK")) + "</td>" +
|
||||
statusString = toThemeImg("downloading", "", _t("OK") + " (" + _t("Downloading from {0} of {1} peers in swarm", curPeers, knownPeers) + ")") + "</td>" +
|
||||
"<td class=\"snarkTorrentStatus\"><b>" + _t("OK") +
|
||||
":</b> " + curPeers + thinsp(noThinsp) +
|
||||
ngettext("1 peer", "{0} peers", knownPeers);
|
||||
} else if (isRunning && curPeers > 0 && !showPeers) {
|
||||
statusString = toThemeImg("stalled", "", _t("Stalled")) + "</td>" +
|
||||
statusString = toThemeImg("stalled", "", _t("Stalled") + " (" + _t("Connected to {0} of {1} peers in swarm", curPeers, knownPeers) + ")") + "</td>" +
|
||||
"<td class=\"snarkTorrentStatus\"><b>" + _t("Stalled") +
|
||||
":</b> <a href=\"" + uri + getQueryString(req, b64, null, null) + '#' + b64Short + "\">" +
|
||||
curPeers + thinsp(noThinsp) +
|
||||
ngettext("1 peer", "{0} peers", knownPeers) + "</a>";
|
||||
} else if (isRunning && curPeers > 0) {
|
||||
statusString = toThemeImg("stalled", "", _t("Stalled")) + "</td>" +
|
||||
statusString = toThemeImg("stalled", "", _t("Stalled") + " (" + _t("Connected to {0} of {1} peers in swarm", curPeers, knownPeers) + ")") + "</td>" +
|
||||
"<td class=\"snarkTorrentStatus\"><b>" + _t("Stalled") +
|
||||
":</b> " + curPeers + thinsp(noThinsp) +
|
||||
ngettext("1 peer", "{0} peers", knownPeers);
|
||||
} else if (isRunning && knownPeers > 0) {
|
||||
statusString = toThemeImg("nopeers", "", _t("No Peers")) + "</td>" +
|
||||
statusString = toThemeImg("nopeers", "", _t("No Peers") + " (" + _t("Connected to {0} of {1} peers in swarm", curPeers, knownPeers) + ")") + "</td>" +
|
||||
"<td class=\"snarkTorrentStatus\"><b>" + _t("No Peers") +
|
||||
":</b> 0" + thinsp(noThinsp) + knownPeers ;
|
||||
} else if (isRunning) {
|
||||
@ -1641,11 +1645,11 @@ public class I2PSnarkServlet extends BasicServlet {
|
||||
}
|
||||
|
||||
out.write("<tr class=\"" + rowClass + "\" id=\"" + b64Short + "\">");
|
||||
out.write("<td class=\"center\">");
|
||||
out.write("<td class=\"snarkGraphicStatus\" align=\"center\">");
|
||||
out.write(statusString + "</td>\n\t");
|
||||
|
||||
// (i) icon column
|
||||
out.write("<td>");
|
||||
out.write("<td class=\"snarkTrackerDetails\">");
|
||||
if (isValid) {
|
||||
String announce = meta.getAnnounce();
|
||||
if (announce == null)
|
||||
@ -1660,7 +1664,7 @@ public class I2PSnarkServlet extends BasicServlet {
|
||||
|
||||
String encodedBaseName = encodePath(fullBasename);
|
||||
// File type icon column
|
||||
out.write("</td>\n<td>");
|
||||
out.write("</td>\n<td class=\"snarkTorrentDetails\">");
|
||||
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.
|
||||
@ -1845,7 +1849,7 @@ public class I2PSnarkServlet extends BasicServlet {
|
||||
for (Peer peer : peers) {
|
||||
if (!peer.isConnected())
|
||||
continue;
|
||||
out.write("<tr class=\"peerinfo " + rowClass + "\"><td title=\"");
|
||||
out.write("<tr class=\"peerinfo " + rowClass + "\"><td class=\"snarkGraphicStatus\" title=\"");
|
||||
out.write(_t("Peer attached to swarm"));
|
||||
out.write("\"></td><td colspan=\"4\">");
|
||||
PeerID pid = peer.getPeerID();
|
||||
@ -1877,9 +1881,9 @@ public class I2PSnarkServlet extends BasicServlet {
|
||||
if (showDebug)
|
||||
out.write(" inactive " + (peer.getInactiveTime() / 1000) + "s");
|
||||
out.write("</td>\n\t");
|
||||
out.write("<td class=\"snarkTorrentStatus\">");
|
||||
out.write("<td class=\"snarkTorrentETA\">");
|
||||
out.write("</td>\n\t");
|
||||
out.write("<td align=\"right\" class=\"snarkTorrentStatus\">");
|
||||
out.write("<td align=\"right\" class=\"snarkTorrentDownloaded\">");
|
||||
float pct;
|
||||
if (isValid) {
|
||||
pct = (float) (100.0 * peer.completed() / meta.getPieces());
|
||||
@ -1900,9 +1904,9 @@ public class I2PSnarkServlet extends BasicServlet {
|
||||
//out.write("??");
|
||||
}
|
||||
out.write("</td>\n\t");
|
||||
out.write("<td class=\"snarkTorrentStatus\">");
|
||||
out.write("<td class=\"snarkTorrentUploaded\">");
|
||||
out.write("</td>\n\t");
|
||||
out.write("<td align=\"right\" class=\"snarkTorrentStatus\">");
|
||||
out.write("<td align=\"right\" class=\"snarkTorrentRateDown\">");
|
||||
if (needed > 0) {
|
||||
if (peer.isInteresting() && !peer.isChoked()) {
|
||||
out.write("<span class=\"unchoked\">");
|
||||
@ -1924,7 +1928,7 @@ public class I2PSnarkServlet extends BasicServlet {
|
||||
//}
|
||||
}
|
||||
out.write("</td>\n\t");
|
||||
out.write("<td align=\"right\" class=\"snarkTorrentStatus\">");
|
||||
out.write("<td align=\"right\" class=\"snarkTorrentRateUp\">");
|
||||
if (isValid && pct < 100.0) {
|
||||
if (peer.isInterested() && !peer.isChoking()) {
|
||||
out.write("<span class=\"unchoked\">");
|
||||
@ -1940,10 +1944,10 @@ public class I2PSnarkServlet extends BasicServlet {
|
||||
}
|
||||
}
|
||||
out.write("</td>\n\t");
|
||||
out.write("<td class=\"snarkTorrentStatus\">");
|
||||
out.write("<td class=\"snarkTorrentAction\">");
|
||||
out.write("</td></tr>\n\t");
|
||||
if (showDebug)
|
||||
out.write("<tr class=\"debuginfo " + rowClass + "\"><td></td><td colspan=\"10\" align=\"right\">" + peer.getSocket() + "</td></tr>");
|
||||
out.write("<tr class=\"debuginfo " + rowClass + "\"><td class=\"snarkGraphicStatus\"></td><td colspan=\"10\">" + peer.getSocket() + "</td></tr>");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2448,11 +2452,8 @@ public class I2PSnarkServlet extends BasicServlet {
|
||||
out.write(_t("Comment Author"));
|
||||
out.write(":</td><td colspan=\"2\"><input type=\"text\" name=\"nofilter_commentsName\" spellcheck=\"false\" value=\""
|
||||
+ DataHelper.escapeHTML(_manager.util().getCommentsName()) + "\" size=\"32\" maxlength=\"32\" title=\"");
|
||||
out.write(_t("Set the author name for your comments"));
|
||||
out.write("\" placeholder=\"");
|
||||
out.write(_t("required to post comments"));
|
||||
out.write("\" >" +
|
||||
"</td></tr>\n");
|
||||
out.write(_t("Set the author name for your comments and ratings"));
|
||||
out.write("\" ></td></tr>\n");
|
||||
|
||||
// "<tr><td>");
|
||||
//out.write(_t("Open tracker announce URLs"));
|
||||
@ -2923,9 +2924,9 @@ public class I2PSnarkServlet extends BasicServlet {
|
||||
toThemeImg(buf, "details");
|
||||
buf.append("</td><td><b>")
|
||||
.append(_t("Info hash"))
|
||||
.append(":</b> ")
|
||||
.append(":</b> <span id=\"infohash\">")
|
||||
.append(hex.toUpperCase(Locale.US))
|
||||
.append("</td></tr>\n");
|
||||
.append("</span></td></tr>\n");
|
||||
|
||||
String announce = null;
|
||||
MetaInfo meta = snark.getMetaInfo();
|
||||
@ -3308,7 +3309,7 @@ public class I2PSnarkServlet extends BasicServlet {
|
||||
|
||||
String rowClass = (rowEven ? "snarkTorrentEven" : "snarkTorrentOdd");
|
||||
rowEven = !rowEven;
|
||||
buf.append("<TR class=\"").append(rowClass).append("\">");
|
||||
buf.append("<tr class=\"").append(rowClass).append("\">");
|
||||
|
||||
// Get completeness and status string
|
||||
boolean complete = false;
|
||||
@ -3358,7 +3359,7 @@ public class I2PSnarkServlet extends BasicServlet {
|
||||
path = encodePath(path);
|
||||
String icon = toIcon(item);
|
||||
|
||||
buf.append("<TD class=\"snarkFileIcon\">");
|
||||
buf.append("<td class=\"snarkFileIcon\">");
|
||||
if (complete) {
|
||||
buf.append("<a href=\"").append(path).append("\">");
|
||||
// thumbnail ?
|
||||
@ -3373,19 +3374,19 @@ public class I2PSnarkServlet extends BasicServlet {
|
||||
} else {
|
||||
buf.append(toImg(icon));
|
||||
}
|
||||
buf.append("</TD><TD class=\"snarkFileName\">");
|
||||
buf.append("</td><td class=\"snarkFileName\">");
|
||||
if (complete)
|
||||
buf.append("<a href=\"").append(path).append("\">");
|
||||
buf.append(DataHelper.escapeHTML(item.getName()));
|
||||
if (complete)
|
||||
buf.append("</a>");
|
||||
buf.append("</TD><TD ALIGN=right class=\"snarkFileSize\">");
|
||||
buf.append("</td><td align=right class=\"snarkFileSize\">");
|
||||
if (!item.isDirectory())
|
||||
buf.append(DataHelper.formatSize2(length)).append('B');
|
||||
buf.append("</TD><TD class=\"snarkFileStatus\">");
|
||||
buf.append("</td><td class=\"snarkFileStatus\">");
|
||||
//buf.append(dfmt.format(new Date(item.lastModified())));
|
||||
buf.append(status);
|
||||
buf.append("</TD>");
|
||||
buf.append("</td>");
|
||||
if (showPriority) {
|
||||
buf.append("<td class=\"priority\">");
|
||||
if ((!complete) && (!item.isDirectory())) {
|
||||
@ -3413,7 +3414,7 @@ public class I2PSnarkServlet extends BasicServlet {
|
||||
}
|
||||
buf.append("</td>");
|
||||
}
|
||||
buf.append("</TR>\n");
|
||||
buf.append("</tr>\n");
|
||||
}
|
||||
if (showSaveButton) {
|
||||
buf.append("<thead><tr id=\"setPriority\"><th class=\"headerpriority\" colspan=\"5\">" +
|
||||
@ -3449,17 +3450,23 @@ public class I2PSnarkServlet extends BasicServlet {
|
||||
int myRating = 0;
|
||||
CommentSet comments = snark.getComments();
|
||||
|
||||
buf.append("<table class=\"snarkCommentInfo\"><tr><th colspan=\"3\">")
|
||||
buf.append("<div id=\"snarkCommentSection\"><table class=\"snarkCommentInfo\">\n<tr><th colspan=\"3\">")
|
||||
.append(_t("Ratings and Comments"));
|
||||
if (esc && _manager.util().getCommentsName().length() == 0) {
|
||||
buf.append(" <span id=\"nameRequired\">");
|
||||
buf.append(_t("Author name required to post comments"));
|
||||
buf.append(_t("Author name required to rate or comment"));
|
||||
buf.append(" <a href=\"").append(_contextPath).append("/configure#configureAuthor\">");
|
||||
buf.append(_t("[Configure]"));
|
||||
buf.append("</a></span>");
|
||||
} else {
|
||||
buf.append(" <span id=\"nameRequired\"><span class=\"commentAuthorName\" title=\"")
|
||||
.append(_t("Your author name for published comments and ratings"))
|
||||
.append("\">");
|
||||
buf.append(DataHelper.escapeHTML(_manager.util().getCommentsName()));
|
||||
buf.append("</span></span>");
|
||||
}
|
||||
|
||||
buf.append("</th><tr id=\"commentsConfig\"><td>");
|
||||
buf.append("</th></tr>\n<tr id=\"commentsConfig\"><td>");
|
||||
buf.append(_t("Comments"));
|
||||
buf.append(":</td><td><label><input type=\"checkbox\" class=\"optbox\" name=\"enableComments\" id=\"enableComments\" ");
|
||||
if (esc)
|
||||
@ -3472,9 +3479,42 @@ public class I2PSnarkServlet extends BasicServlet {
|
||||
if (ec) {
|
||||
buf.append("<input type=\"submit\" name=\"setCommentsEnabled\" value=\"");
|
||||
buf.append(_t("Save Preference"));
|
||||
buf.append("\" class=\"accept\">\n");
|
||||
buf.append("\" class=\"accept\">");
|
||||
}
|
||||
buf.append("</td></tr>");
|
||||
buf.append("</td></tr>\n");
|
||||
|
||||
// new rating / comment form
|
||||
buf.append("<tr id=\"newRating\">\n");
|
||||
if (er) {
|
||||
buf.append("<td>\n<select name=\"myRating\">\n");
|
||||
for (int i = 5; i >= 0; i--) {
|
||||
buf.append("<option value=\"").append(i).append("\" ");
|
||||
if (i == myRating)
|
||||
buf.append("selected=\"selected\"");
|
||||
buf.append('>');
|
||||
if (i != 0) {
|
||||
buf.append("★ ").append(ngettext("1 star", "{0} stars", i));
|
||||
} else {
|
||||
buf.append("☆ ").append(_t("No rating"));
|
||||
}
|
||||
buf.append("</option>\n");
|
||||
}
|
||||
buf.append("</select>\n</td>");
|
||||
}
|
||||
if (esc) {
|
||||
buf.append("<td id=\"addCommentText\"><textarea name=\"nofilter_newComment\" cols=\"44\" rows=\"4\"></textarea></td>");
|
||||
} else {
|
||||
buf.append("<td></td>");
|
||||
}
|
||||
buf.append("<td class=\"commentAction\"><input type=\"submit\" name=\"addComment\" value=\"");
|
||||
if (er && esc)
|
||||
buf.append(_t("Rate and Comment"));
|
||||
else if (er)
|
||||
buf.append(_t("Rate Torrent"));
|
||||
else
|
||||
buf.append(_t("Add Comment"));
|
||||
buf.append("\" class=\"accept\"></td>\n");
|
||||
buf.append("</tr>\n");
|
||||
|
||||
if (comments != null) {
|
||||
synchronized(comments) {
|
||||
@ -3501,7 +3541,7 @@ public class I2PSnarkServlet extends BasicServlet {
|
||||
} else {
|
||||
|
||||
buf.append(_t("Average Rating")).append(":</td><td colspan=\"2\">");
|
||||
buf.append(_t("No community ratings currently available for this torrent"));
|
||||
buf.append(_t("No community ratings currently available"));
|
||||
}
|
||||
buf.append("</td></tr>");
|
||||
}
|
||||
@ -3513,38 +3553,7 @@ public class I2PSnarkServlet extends BasicServlet {
|
||||
}
|
||||
}
|
||||
|
||||
// new rating / comment form
|
||||
buf.append("<tr id=\"newRating\"><td>");
|
||||
if (er) {
|
||||
buf.append("<select name=\"myRating\">");
|
||||
for (int i = 5; i >= 0; i--) {
|
||||
buf.append("<option value=\"").append(i).append("\" ");
|
||||
if (i == myRating)
|
||||
buf.append("selected=\"selected\"");
|
||||
buf.append('>');
|
||||
if (i != 0) {
|
||||
buf.append("★ ").append(ngettext("{0} star", "{0} stars", i));
|
||||
} else {
|
||||
buf.append("☆ ").append(_t("No rating"));
|
||||
}
|
||||
buf.append("</option>\n");
|
||||
}
|
||||
buf.append("</select></td>");
|
||||
}
|
||||
if (esc) {
|
||||
buf.append("<td id=\"addCommentText\"><textarea name=\"nofilter_newComment\" cols=\"44\" rows=\"4\"></textarea></td>");
|
||||
} else {
|
||||
buf.append("<td></td>");
|
||||
}
|
||||
buf.append("<td class=\"commentAction\"><input type=\"submit\" name=\"addComment\" value=\"");
|
||||
if (er && esc)
|
||||
buf.append(_t("Rate and Comment"));
|
||||
else if (er)
|
||||
buf.append(_t("Rate Torrent"));
|
||||
else
|
||||
buf.append(_t("Add Comment"));
|
||||
buf.append("\" class=\"accept\">\n");
|
||||
buf.append("</td></tr></table>");
|
||||
buf.append("</table>");
|
||||
// TODO disable / enable comments for this torrent
|
||||
// existing ratings / comments table
|
||||
int ccount = 0;
|
||||
@ -3553,19 +3562,6 @@ public class I2PSnarkServlet extends BasicServlet {
|
||||
fmt.setTimeZone(SystemVersion.getSystemTimeZone(_context));
|
||||
buf.append("<table class=\"snarkComments\">");
|
||||
|
||||
// TODO Make .commentText and .commentDelete columns display only when comments are enabled
|
||||
// buf.append("<tr><th class=\"commentAuthor\">");
|
||||
// buf.append(_t("Author"));
|
||||
// buf.append("</th><th class=\"commentRating\">");
|
||||
// buf.append(_t("Rating"));
|
||||
// buf.append("</th><th class=\"commentDate\">");
|
||||
// buf.append(_t("Date"));
|
||||
// buf.append("</th><th class=\"commentText\">");
|
||||
// buf.append(_t("Comment"));
|
||||
// buf.append("</th><th class=\"commentDelete\" title=\"");
|
||||
// buf.append(_t("Mark for deletion"));
|
||||
// buf.append("\"></th></tr>");
|
||||
|
||||
while (iter.hasNext()) {
|
||||
Comment c = iter.next();
|
||||
buf.append("<tr><td class=\"commentAuthor\">");
|
||||
@ -3599,7 +3595,7 @@ public class I2PSnarkServlet extends BasicServlet {
|
||||
ccount++;
|
||||
}
|
||||
} else {
|
||||
buf.append("</td><td class=\"commentDelete\">"); // insert empty named columns to maintain table layout
|
||||
buf.append("</td><td class=\"commentDelete\">"); // insert empty named columns to maintain table layout .. fails to catch uncommented row when comments also shown
|
||||
}
|
||||
buf.append("</td></tr>\n");
|
||||
}
|
||||
@ -3613,6 +3609,7 @@ public class I2PSnarkServlet extends BasicServlet {
|
||||
} else if (esc) {
|
||||
//buf.append(_t("No comments for this torrent"));
|
||||
} // iter != null
|
||||
buf.append("</div>");
|
||||
}
|
||||
|
||||
/**
|
||||
|
14
history.txt
14
history.txt
@ -15,6 +15,20 @@
|
||||
- Update fallback images for en and fr
|
||||
- Update overview text
|
||||
- added tabindex="0" to destination addresses, highlighted on :focus
|
||||
* i2psnark:
|
||||
- Reorder .snarkCommentInfo sections so my rating / average rating is located
|
||||
directly above posted comments/ratings in .snarkComments
|
||||
- If author name for comments is configured, display it in .snarkCommentInfo
|
||||
table header
|
||||
- Full status tooltips for status icons in .snarkTorrents
|
||||
- Rework td/th classes for .snarkTorrents so each column (both th + td) now
|
||||
belongs to a given class
|
||||
- Stop .snarkTorrentStatus class being incorrectly applied to .peerinfo
|
||||
columns
|
||||
- Spans for DHT peers / Dest in #totals, .snarkTorrentInfo info hash
|
||||
- Delete icon for delete comments td
|
||||
- Overhaul .snarkTorrents column widths
|
||||
- CSS tidyups
|
||||
|
||||
2017-05-25 zzz
|
||||
* Crypto: Fix AES NPE on 4-core RPi 2nd try (ticket #1989)
|
||||
|
@ -319,37 +319,44 @@ body.iframed {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.snarkTorrents th:nth-child(4),
|
||||
.snarkTorrents th:nth-child(5),
|
||||
.snarkTorrents th:nth-child(6),
|
||||
.snarkTorrents th:nth-child(7),
|
||||
.snarkTorrents th:nth-child(8),
|
||||
.snarkTorrents th:nth-child(9),
|
||||
.snarkTorrents th:last-child {
|
||||
#pagenav, .snarkTorrentETA, .snarkTorrentDownloaded, .snarkTorrentUploaded, .snarkTorrentRateDown, .snarkTorrentRateUp, .snarkTorrentAction {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.snarkTorrents td:nth-child(6),
|
||||
.snarkTorrents td:nth-child(7),
|
||||
.snarkTorrents td:nth-child(8) {
|
||||
text-align: center !important;
|
||||
.snarkTorrentAction {
|
||||
padding-right: 2px !important;
|
||||
}
|
||||
|
||||
table.snarkTorrents {
|
||||
.snarkTorrents {
|
||||
margin-top: -1px !important;
|
||||
}
|
||||
|
||||
.snarkTorrents td:nth-child(1) {
|
||||
width: 24px !important;
|
||||
}
|
||||
|
||||
.snarkTorrents td:nth-child(3),
|
||||
.snarkTorrents td:nth-child(4) {
|
||||
.snarkTrackerDetails, .snarkTorrentDetails {
|
||||
width: 16px !important;
|
||||
text-align: center !important;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.snarkGraphicStatus, .snarkTorrentStatus {
|
||||
white-space: nowrap;
|
||||
width: 1%;
|
||||
}
|
||||
|
||||
.snarkGraphicStatus {
|
||||
width: 24px !important;
|
||||
}
|
||||
|
||||
|
||||
.snarkTorrentETA, .snarkTorrentUploaded, .snarkTorrentRateDown, .snarkTorrentRateUp {
|
||||
width: 5%;
|
||||
min-width: 40px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.snarkTorrents th:empty + th:empty, .snarkTorrents td:empty + td:empty, .snarkTorrents th:last-child:empty, .snarkTorrents td:last-child:empty {
|
||||
width: 0 !important;
|
||||
}
|
||||
|
||||
pre {
|
||||
font: 8pt "Droid Sans Mono", "Andale Mono", "DejaVu Sans Mono", "Lucida Console", monospace;
|
||||
font-weight: bold !important;
|
||||
@ -522,7 +529,7 @@ tfoot tr:nth-child(n+1) {
|
||||
text-align: center !important;
|
||||
}
|
||||
|
||||
table.snarkTorrents {
|
||||
.snarkTorrents {
|
||||
margin-top: -1px !important;
|
||||
border: none;
|
||||
}
|
||||
@ -605,7 +612,7 @@ tt {
|
||||
|
||||
.snarkTorrentInfo td:first-child {
|
||||
width: 20px !important;
|
||||
padding: 3px 4px 4px!important;
|
||||
padding: 4px !important;
|
||||
}
|
||||
|
||||
.snarkTorrentInfo input[type="submit"] {
|
||||
@ -627,7 +634,7 @@ tt {
|
||||
border-top: 1px solid #89f !important;
|
||||
}
|
||||
|
||||
table.SnarkTorrentInfo {
|
||||
.SnarkTorrentInfo {
|
||||
margin-bottom: 1px !important;
|
||||
border-bottom: 1px solid #89f;
|
||||
background: #eef;
|
||||
@ -653,11 +660,18 @@ table.SnarkTorrentInfo {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#infohash {
|
||||
color: #090;
|
||||
-moz-user-select: all;
|
||||
-webkit-user-select: all;
|
||||
user-select: all;
|
||||
}
|
||||
|
||||
/* end torrent info */
|
||||
|
||||
/* torrent directory */
|
||||
|
||||
table.SnarkDirInfo {
|
||||
.SnarkDirInfo {
|
||||
margin-top: 10px !important;
|
||||
margin-bottom: 0;
|
||||
border-bottom: 1px solid #89f;
|
||||
@ -721,7 +735,7 @@ table.SnarkDirInfo {
|
||||
margin: 5px;
|
||||
}
|
||||
|
||||
table.SnarkDirInfo img {
|
||||
.SnarkDirInfo img {
|
||||
max-width: 16px;
|
||||
max-height: 16px;
|
||||
}
|
||||
@ -826,8 +840,9 @@ td:first-child {
|
||||
/* torrent control buttons */
|
||||
|
||||
.snarkTorrentAction {
|
||||
margin: 0 !important;
|
||||
padding: 1px 1px 1px 1px !important;
|
||||
width: 1%;
|
||||
white-space: nowrap;
|
||||
padding: 1px 2px 1px 1px !important;
|
||||
text-align: center !important;
|
||||
}
|
||||
|
||||
@ -840,8 +855,7 @@ td:first-child {
|
||||
box-shadow: 0 0 1px 1px #f90;
|
||||
}
|
||||
|
||||
.snarkTorrentAction input[type="image"],
|
||||
.snarkTorrents th:last-child input[type="image"] {
|
||||
.snarkTorrentAction input[type="image"] {
|
||||
padding: 3px !important;
|
||||
background: #339;
|
||||
background: linear-gradient(to bottom, #fff 0%, #fff 50%, #ddf 51%, #ddf 100%);
|
||||
@ -852,34 +866,17 @@ td:first-child {
|
||||
height: 10px;
|
||||
}
|
||||
|
||||
.snarkTorrentAction input[type="image"]:hover,
|
||||
.snarkTorrentAction input[type="image"]:focus,
|
||||
.snarkTorrents th:last-child input[type="image"]:hover,
|
||||
.snarkTorrents th:last-child input[type="image"]:focus {
|
||||
border: 1px solid #f60;
|
||||
.snarkTorrentAction input[type="image"]:hover, .snarkTorrentAction input[type="image"]:focus {
|
||||
border: 1px solid #f60 !important;
|
||||
filter: drop-shadow(0 0 1px #f60);
|
||||
}
|
||||
|
||||
.snarkTorrentAction input[type="image"]:active,
|
||||
.snarkTorrents th:last-child input[type="image"]:active {
|
||||
.snarkTorrentAction input[type="image"]:active {
|
||||
background: linear-gradient(to bottom, #ddf 0%, #ddf 50%, #99f 51%, #99f 100%);
|
||||
box-shadow: inset 0 0 0 1px #fff, inset 2px 2px 2px #333;
|
||||
filter: none !important;
|
||||
}
|
||||
|
||||
.snarkTorrents th:last-child input[type="image"]:hover,
|
||||
.snarkTorrents td:last-child input[type="image"]:hover,
|
||||
.snarkTorrents th:last-child input[type="image"]:focus,
|
||||
.snarkTorrents td:last-child input[type="image"]:focus { /* borders on hover only for torrent control buttons, otherwise drop-shadow */
|
||||
border: 1px solid #f60 !important;
|
||||
}
|
||||
|
||||
td.snarkTorrentAction {
|
||||
width: 1%;
|
||||
padding-right: 2px !important;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
/* end torrent control buttons */
|
||||
|
||||
.snarkTorrentNoneLoaded {
|
||||
@ -1494,9 +1491,16 @@ input[size="85"] {
|
||||
margin-left: 5px !important;
|
||||
}
|
||||
|
||||
select, input.r {
|
||||
min-width: 120px;
|
||||
}
|
||||
|
||||
input[name="nofilter_commentsName"] {
|
||||
width: 250px;
|
||||
}
|
||||
|
||||
select {
|
||||
font: 9pt "Droid Sans", "Noto Sans", Ubuntu, "Segoe UI", Verdana, "Bitstream Vera Sans", "DejaVu Sans", "Lucida Grande", Helvetica, sans-serif;
|
||||
min-width: 100px;
|
||||
margin: 2px 4px 2px 0;
|
||||
padding: 4px 16px 4px 2px;
|
||||
cursor: pointer;
|
||||
@ -1737,7 +1741,7 @@ div.configsectionpanel td:first-child {
|
||||
border: 1px solid #89f;
|
||||
}
|
||||
|
||||
table.trackerconfig td:first-child {
|
||||
.trackerconfig td:first-child {
|
||||
width: 24px !important;
|
||||
padding: 5px 2px;
|
||||
}
|
||||
@ -2272,6 +2276,7 @@ td#bwHelp a {
|
||||
white-space: nowrap;
|
||||
display: inline-block;
|
||||
margin-right: 7px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
#filecheck {
|
||||
@ -2285,9 +2290,213 @@ td#bwHelp a {
|
||||
margin: 8px;
|
||||
}
|
||||
|
||||
|
||||
/* end Resource Errors */
|
||||
|
||||
/* Comments Section */
|
||||
|
||||
.snarkCommentInfo, .snarkComments {
|
||||
margin: 10px 0 0 !important;
|
||||
border: 1px solid #bbf;
|
||||
border-left: none;
|
||||
border-right: none;
|
||||
background: #eef;
|
||||
}
|
||||
|
||||
.snarkComments {
|
||||
margin-top: -1px !important;
|
||||
}
|
||||
|
||||
.snarkCommentInfo th, .snarkComments th {
|
||||
padding: 8px 5px;
|
||||
}
|
||||
|
||||
.snarkCommentInfo th {
|
||||
background: url(images/comment.png) 8px center no-repeat, linear-gradient(to bottom, #fff, #eef) #fff;
|
||||
padding-left: 30px !important;
|
||||
}
|
||||
|
||||
.snarkCommentInfo tr:nth-child(even), .snarkComments tr:nth-child(odd) {
|
||||
border-top: 1px solid #bbf;
|
||||
background: rgba(240, 240, 255, 0.5) #fff;
|
||||
}
|
||||
|
||||
.snarkCommentInfo tr:nth-child(odd), .snarkComments tr:nth-child(even) {
|
||||
border-top: 1px solid #bbf;
|
||||
background: rgba(220, 220, 255, 0.5);
|
||||
}
|
||||
|
||||
.snarkCommentInfo th {
|
||||
padding: 8px 5px;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td, .snarkComments td {
|
||||
padding: 8px 5px;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td:first-child {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td:first-child {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.snarkCommentInfo input.accept {
|
||||
float: right;
|
||||
margin-right: 5px !important;
|
||||
}
|
||||
|
||||
.snarkCommentInfo textarea {
|
||||
font-family: "Droid Sans", "Noto Sans", Ubuntu, "Segoe UI", Verdana, "Bitstream Vera Sans", "DejaVu Sans", "Lucida Grande", Helvetica, sans-serif !important;
|
||||
font-weight: normal;
|
||||
width: 100%;
|
||||
min-height: 64px;
|
||||
height: 64px;
|
||||
resize: vertical;
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
.snarkCommentInfo textarea:focus {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.snarkComments th {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.commentRating, .commentAuthor {
|
||||
width: 1%;
|
||||
}
|
||||
|
||||
#nameRequired {
|
||||
float: right;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
#nameRequired a {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.commentRating {
|
||||
padding-right: 10px !important;
|
||||
}
|
||||
|
||||
.commentRating img {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
}
|
||||
|
||||
.commentText {
|
||||
white-space: normal;
|
||||
text-align: justify;
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
.commentDate {
|
||||
width: 100px;
|
||||
background: url(images/clock.png) left center no-repeat;
|
||||
padding-left: 20px !important;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td:first-child, .commentAuthor {
|
||||
width: 160px !important;
|
||||
min-width: 160px !important;
|
||||
padding-right: 2px;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td:last-child, .snarkComments td:last-child {
|
||||
width: 1% !important;
|
||||
}
|
||||
|
||||
.snarkComments td {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.commentAuthorName {
|
||||
background: url(images/author.png) left center no-repeat;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
.commentWrapper {
|
||||
border: 1px solid #bbf;
|
||||
margin: 2px 0;
|
||||
padding: 8px 10px 8px 26px;
|
||||
border-radius: 3px;
|
||||
box-shadow: inset 0 0 0 1px #fff, 0 0 1px 0 rgba(0,0,0,0.3);
|
||||
background: url(images/comment.png) 6px center no-repeat #eef;
|
||||
background-blend-mode: luminosity;
|
||||
}
|
||||
|
||||
#commentsConfig .optbox {
|
||||
vertical-align: middle !important;
|
||||
}
|
||||
|
||||
.snarkComments select {
|
||||
margin-right: 0 !important;
|
||||
}
|
||||
|
||||
#commentDeleteAction {
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
#commentDeleteAction td {
|
||||
padding: 8px 6px;
|
||||
border-top: 1px solid #89f;
|
||||
border-bottom: 1px solid #89f;
|
||||
}
|
||||
|
||||
.commentAction, .commentDelete {
|
||||
width: 1%;
|
||||
white-space: nowrap;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.addCommentText, .commentText {
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
.commentAction input[type="submit"] {
|
||||
margin-top: 3px;
|
||||
margin-bottom: 3px;
|
||||
}
|
||||
|
||||
.commentDelete {
|
||||
background: url(../ubergine/images/nuke.png) 2px center no-repeat;
|
||||
text-align: left;
|
||||
padding-left: 24px !important;
|
||||
}
|
||||
|
||||
#newRating td:first-child {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
#newRating select {
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
#myRating td:empty {
|
||||
padding: 0 !important;
|
||||
border-top: none !important;
|
||||
border-bottom: none !important;
|
||||
}
|
||||
|
||||
#myRating td:empty::after { /* hides My Ratings row when Ratings disabled */
|
||||
min-height: 1px !important;
|
||||
}
|
||||
|
||||
.commentRating img {
|
||||
margin: 0 0 4px;
|
||||
padding: 0;
|
||||
font-size: 14pt;
|
||||
color: #FF7200;
|
||||
text-shadow: 0 0 1px #900;
|
||||
filter: none;
|
||||
}
|
||||
|
||||
/* end Comments section */
|
||||
|
||||
/* MS Edge fix */
|
||||
_:-ms-lang(x), * {
|
||||
filter: none !important;
|
||||
@ -2380,7 +2589,7 @@ body {
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
|
||||
table.SnarkDirInfo {
|
||||
.SnarkDirInfo {
|
||||
margin-top: 4px !important;
|
||||
}
|
||||
|
||||
@ -2448,7 +2657,7 @@ body, th, td, table a, input, input[type="text"], input.r, input[name="nofilter_
|
||||
}
|
||||
|
||||
@media screen and (min-width: 1400px) {
|
||||
body, th, td, table a, input, input[type="text"], input.r, input[name="nofilter_dataDir"], select, textarea, textarea[name="i2cpOpts"], .snarkAddInfo, code {
|
||||
body, th, td, table a, input, input[type="text"], input.r, input[name="nofilter_dataDir"], select, textarea, textarea[name="i2cpOpts"], .snarkAddInfo, code, .snarkCommentInfo textarea {
|
||||
font-size: 10pt !important;
|
||||
}
|
||||
|
||||
@ -2479,194 +2688,3 @@ td.snarkTorrentDownloaded {
|
||||
}
|
||||
/* end responsive layout */
|
||||
|
||||
/* Comments Section */
|
||||
/* TODO: merge with other rules where applicable */
|
||||
|
||||
.snarkCommentInfo, .snarkComments {
|
||||
margin: 10px 0 0 !important;
|
||||
border: 1px solid #bbf;
|
||||
border-left: none;
|
||||
border-right: none;
|
||||
background: #eef;
|
||||
}
|
||||
|
||||
.snarkCommentInfo th, .snarkComments th {
|
||||
padding: 8px 5px;
|
||||
}
|
||||
|
||||
.snarkCommentInfo th {
|
||||
background: url(images/comment.png) 8px center no-repeat, linear-gradient(to bottom, #fff, #eef) #fff;
|
||||
padding-left: 30px !important;
|
||||
}
|
||||
|
||||
.snarkCommentInfo tr:nth-child(even), .snarkComments tr:nth-child(even) {
|
||||
border-top: 1px solid #bbf;
|
||||
background: rgba(240, 240, 255, 0.5) #fff;
|
||||
}
|
||||
|
||||
.snarkCommentInfo tr:nth-child(odd), .snarkComments tr:nth-child(odd) {
|
||||
border-top: 1px solid #bbf;
|
||||
background: rgba(220, 220, 255, 0.5);
|
||||
}
|
||||
|
||||
.snarkCommentInfo th {
|
||||
padding: 8px 5px;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td, .snarkComments td {
|
||||
padding: 8px 5px;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td:first-child {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td:first-child {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.snarkCommentInfo input.accept {
|
||||
float: right;
|
||||
margin-right: 5px !important;
|
||||
}
|
||||
|
||||
.snarkCommentInfo textarea { /* remember to set 10pt @ > 1400px */
|
||||
font-family: "Droid Sans", "Noto Sans", Ubuntu, "Segoe UI", Verdana, "Bitstream Vera Sans", "DejaVu Sans", "Lucida Grande", Helvetica, sans-serif !important;
|
||||
font-weight: normal;
|
||||
width: 100%;
|
||||
min-height: 64px;
|
||||
height: 64px;
|
||||
resize: vertical;
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
.snarkCommentInfo textarea:focus {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.snarkComments th {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.commentRating, .commentAuthor {
|
||||
width: 1%;
|
||||
}
|
||||
|
||||
#nameRequired {
|
||||
float: right;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
#nameRequired a {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.commentRating {
|
||||
padding-right: 10px !important;
|
||||
}
|
||||
|
||||
.commentRating img {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
}
|
||||
|
||||
.commentText {
|
||||
white-space: normal;
|
||||
text-align: justify;
|
||||
width: 80%;
|
||||
}
|
||||
|
||||
.commentDate {
|
||||
width: 100px;
|
||||
background: url(images/clock.png) left center no-repeat;
|
||||
padding-left: 20px !important;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td:first-child, .commentAuthor {
|
||||
width: 180px !important;
|
||||
padding-right: 2px;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td:last-child, .snarkComments td:last-child {
|
||||
width: 1% !important;
|
||||
}
|
||||
|
||||
.snarkComments td {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.commentAuthorName {
|
||||
background: url(images/author.png) left center no-repeat;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
.commentWrapper {
|
||||
border: 1px solid #bbf;
|
||||
margin: 2px 0;
|
||||
padding: 8px 10px 8px 26px;
|
||||
border-radius: 3px;
|
||||
box-shadow: inset 0 0 0 1px #fff, 0 0 1px 0 rgba(0,0,0,0.3);
|
||||
background: url(images/comment.png) 6px center no-repeat #eef;
|
||||
background-blend-mode: luminosity;
|
||||
}
|
||||
|
||||
#commentsConfig .optbox {
|
||||
vertical-align: middle !important;
|
||||
}
|
||||
|
||||
.snarkComments select {
|
||||
margin-right: 0 !important;
|
||||
}
|
||||
|
||||
#commentDeleteAction {
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
#commentDeleteAction td {
|
||||
padding: 0 6px;
|
||||
border-top: 1px solid #89f;
|
||||
border-bottom: 1px solid #89f;
|
||||
}
|
||||
|
||||
.commentAction, .commentDelete {
|
||||
width: 1%;
|
||||
white-space: nowrap;
|
||||
min-width: 180px !important;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.addCommentText, .commentText {
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
.commentAction input[type="submit"] {
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.commentDelete {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#myRating td:empty {
|
||||
padding: 0 !important;
|
||||
border-top: none !important;
|
||||
border-bottom: none !important;
|
||||
}
|
||||
|
||||
#myRating td:empty::after { /* hides My Ratings row when Ratings disabled */
|
||||
min-height: 1px !important;
|
||||
}
|
||||
|
||||
.commentRating img {
|
||||
margin: 0 0 4px;
|
||||
padding: 0;
|
||||
font-size: 14pt;
|
||||
color: #FF7200;
|
||||
text-shadow: 0 0 1px #900;
|
||||
filter: none;
|
||||
}
|
||||
|
||||
/* end Comments section */
|
@ -314,10 +314,6 @@ table {
|
||||
opacity: 1 !important;
|
||||
}
|
||||
|
||||
tr {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
thead, tfoot {
|
||||
background: #000;
|
||||
}
|
||||
@ -445,38 +441,53 @@ tfoot tr:nth-child(n+1) {
|
||||
margin-left: 20px !important;
|
||||
}
|
||||
|
||||
.SnarkTorrents td:nth-child(6), .SnarkTorrents td:nth-child(7), .SnarkTorrents td:nth-child(8) {
|
||||
.snarkTorrentETA, .snarkTorrentDownloaded, .snarkTorrentUploaded {
|
||||
text-align: center !important;
|
||||
}
|
||||
|
||||
table.SnarkTorrents {
|
||||
.SnarkTorrents {
|
||||
margin-top: -1px !important;
|
||||
}
|
||||
|
||||
.snarkTorrents th {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.snarkTorrents td {
|
||||
line-height: 120%;
|
||||
text-align: left;
|
||||
font-size: 8pt !important;
|
||||
}
|
||||
|
||||
.snarkTorrents td:nth-child(1) {
|
||||
.snarkGraphicStatus {
|
||||
width: 24px !important;
|
||||
}
|
||||
|
||||
.snarkTorrents td:nth-child(3), .SnarkTorrents td:nth-child(4) {
|
||||
.snarkTrackerDetails, .SnarkTorrentDetails {
|
||||
width: 16px !important;
|
||||
padding: 0 !important;
|
||||
text-align: center !important;
|
||||
}
|
||||
|
||||
.snarkTorrents td:nth-child(3) {
|
||||
.snarkTrackerDetails {
|
||||
text-align: right !important;
|
||||
}
|
||||
|
||||
.snarkGraphicStatus, .snarkTorrentStatus {
|
||||
white-space: nowrap;
|
||||
width: 1%;
|
||||
}
|
||||
|
||||
th.snarkTorrentStatus {
|
||||
text-align: center !important;
|
||||
}
|
||||
|
||||
.snarkTorrentETA, .snarkTorrentUploaded, .snarkTorrentRateDown, .snarkTorrentRateUp {
|
||||
width: 5%;
|
||||
min-width: 40px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.snarkTorrents th:empty + th:empty, .snarkTorrents td:empty + td:empty, .snarkTorrents th:last-child:empty, .snarkTorrents td:last-child:empty {
|
||||
width: 0 !important;
|
||||
}
|
||||
|
||||
.snarkTorrents td[colspan="10"]{
|
||||
padding: 2px;
|
||||
color: #cc7 !important;
|
||||
@ -546,7 +557,7 @@ table.SnarkTorrents {
|
||||
box-shadow: inset 0 0 0 1px #030;
|
||||
}
|
||||
|
||||
table.SnarkTorrentInfo {
|
||||
.SnarkTorrentInfo {
|
||||
margin-bottom: 1px !important;
|
||||
background: url(/themes/console/dark/images/camotile2.png) repeat scroll center bottom #001100;
|
||||
border-bottom: 1px solid #494;
|
||||
@ -563,12 +574,19 @@ table.SnarkTorrentInfo {
|
||||
color: #bb7;
|
||||
}
|
||||
|
||||
table.SnarkDirInfo {
|
||||
.SnarkDirInfo {
|
||||
margin-top: 10px !important;
|
||||
margin-bottom: 0;
|
||||
border-bottom: 1px solid #494;
|
||||
}
|
||||
|
||||
#infohash {
|
||||
color: #cc0;
|
||||
-moz-user-select: all;
|
||||
-webkit-user-select: all;
|
||||
user-select: all;
|
||||
}
|
||||
|
||||
.snarkDirInfo th img {
|
||||
margin: 0 !important;
|
||||
max-height: 20px !important;
|
||||
@ -687,12 +705,12 @@ th.headerdownloaded {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
td.snarkFileIcon {
|
||||
.snarkFileIcon {
|
||||
width: 16px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
td.snarkFileStatusIcon {
|
||||
.snarkFileStatusIcon {
|
||||
width: 24px;
|
||||
padding: 0 4px 0 0;
|
||||
text-align: center;
|
||||
@ -712,11 +730,6 @@ td {
|
||||
|
||||
td:first-child {
|
||||
text-align: right;
|
||||
font-size: 9pt;
|
||||
}
|
||||
|
||||
.center {
|
||||
text-align: center !important;
|
||||
}
|
||||
|
||||
.snarkTorrentName {
|
||||
@ -756,18 +769,14 @@ td:first-child {
|
||||
border-bottom: 1px solid #494;
|
||||
}
|
||||
|
||||
.snarkGraphicStatus {
|
||||
text-align: center !important;
|
||||
}
|
||||
|
||||
.snarkTorrentStatus {
|
||||
padding: 2px 2px 2px 0;
|
||||
padding: 3px 5px 3px 0 !important;
|
||||
line-height: 90%;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
td.snarkTorrentStatus {
|
||||
text-align: center !important;
|
||||
padding: 3px 0;
|
||||
}
|
||||
|
||||
td.snarkTorrentStatus:nth-child(2) {
|
||||
text-align: left !important;
|
||||
}
|
||||
|
||||
@ -1345,6 +1354,15 @@ input[name="nofilter_dataDir"] {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
input[name="nofilter_commentsName"] {
|
||||
width: 250px;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
input[name="nofilter_commentsName"]:focus::placeholder {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.configsectionpanel input[type=text], input.r, textarea[name="i2cpOpts"], input[name="nofilter_dataDir"], #configs select {
|
||||
margin-top: 4px;
|
||||
margin-bottom: 4px;
|
||||
@ -1359,8 +1377,8 @@ input[type=image], th a:link img, th a:visited img {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
input[type=text], input.r {
|
||||
min-width: 100px;
|
||||
input[type=text], input.r, select {
|
||||
min-width: 120px !important;
|
||||
}
|
||||
|
||||
input[type=radio] {
|
||||
@ -1686,7 +1704,7 @@ _:-ms-lang(x), #trackerselect tr:last-child {
|
||||
border: 1px solid #494;
|
||||
}
|
||||
|
||||
table.trackerconfig td:first-child {
|
||||
.trackerconfig td:first-child {
|
||||
padding: 5px 2px;
|
||||
width: 24px !important;
|
||||
}
|
||||
@ -2360,6 +2378,207 @@ input[type="checkbox"][disabled]:checked, input[type="radio"][disabled]:checked,
|
||||
|
||||
/* end custom radios/checkboxes */
|
||||
|
||||
/* Comments Section */
|
||||
/* TODO: merge with other rules where applicable */
|
||||
|
||||
.snarkCommentInfo, .snarkComments {
|
||||
margin: 10px 0 0 !important;
|
||||
border: 1px solid #494;
|
||||
border-left: none;
|
||||
border-right: none;
|
||||
background: #001100 url(/themes/console/dark/images/camotile2.png) repeat scroll center bottom;
|
||||
filter: drop-shadow(0px 0 1px rgba(16, 8, 16, 0.7));
|
||||
}
|
||||
|
||||
.snarkComments {
|
||||
margin-top: -1px !important;
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
.snarkCommentInfo th, .snarkComments th {
|
||||
background: linear-gradient(to bottom, #001000 0%, #001900 50%, #000 50%, #000 100%);
|
||||
padding: 8px 5px;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
.snarkCommentInfo tr:nth-child(even), .snarkComments tr:nth-child(odd) {
|
||||
background: #001000;
|
||||
border-bottom: 1px inset #000;
|
||||
}
|
||||
|
||||
.snarkCommentInfo tr:nth-child(odd), .snarkComments tr:nth-child(even) {
|
||||
background: #000800;
|
||||
border-bottom: 1px inset #000;
|
||||
}
|
||||
|
||||
.snarkCommentInfo th {
|
||||
padding: 8px 5px 8px 30px;
|
||||
background: url(images/comment.png) 8px center no-repeat, linear-gradient(to bottom, #001000 0%, #001900 50%, #000 50%, #000 100%);
|
||||
}
|
||||
|
||||
.snarkCommentInfo td, .snarkComments td {
|
||||
padding: 8px 5px;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td:first-child {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td:first-child {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td:first-child::after, .snarkComments td:first-child::after {
|
||||
content: "";
|
||||
display: inline-block;
|
||||
min-height: 22px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.snarkCommentInfo input.accept {
|
||||
float: right;
|
||||
margin-right: 5px !important;
|
||||
}
|
||||
|
||||
#myRating {
|
||||
border-top: 1px solid #050;
|
||||
}
|
||||
|
||||
.snarkCommentInfo textarea { /* remember to set 10pt @ > 1400px */
|
||||
font-family: "Droid Sans", "Noto Sans", Ubuntu, "Segoe UI", "DejaVu Sans", Verdana, "Lucida Grande", Helvetica, sans-serif;
|
||||
width: 100%;
|
||||
min-height: 64px;
|
||||
height: 64px;
|
||||
resize: vertical;
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
.snarkComments th {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.commentRating, .commentAuthor {
|
||||
width: 1%;
|
||||
}
|
||||
|
||||
#nameRequired {
|
||||
float: right;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.commentRating {
|
||||
width: 80px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.commentRating img {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
}
|
||||
|
||||
.commentDate {
|
||||
width: 105px;
|
||||
background: url(images/clock.png) left center no-repeat;
|
||||
padding-left: 20px !important;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td:first-child, .snarkComments td:first-child {
|
||||
min-width: 160px !important;
|
||||
width: 160px !important;
|
||||
padding-right: 2px;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td:last-child, .snarkComments td:last-child {
|
||||
width: 1% !important;
|
||||
}
|
||||
|
||||
.snarkComments td {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.commentAuthorName {
|
||||
background: url(images/author.png) left center no-repeat;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
.commentText {
|
||||
white-space: normal;
|
||||
text-align: justify;
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
.commentWrapper {
|
||||
border: 1px solid #030;
|
||||
margin: 2px 0;
|
||||
padding: 8px 10px 8px 26px;
|
||||
border-radius: 3px;
|
||||
box-shadow: inset 0 0 0 1px #393, 0 0 1px 0 rgba(0,0,0,0.3);
|
||||
background: url(images/comment.png) 6px center no-repeat #010;
|
||||
background-blend-mode: luminosity;
|
||||
}
|
||||
|
||||
#commentsConfig .optbox {
|
||||
vertical-align: middle !important;
|
||||
}
|
||||
|
||||
.snarkComments select {
|
||||
margin-right: 0 !important;
|
||||
}
|
||||
|
||||
#commentDeleteAction {
|
||||
border-top: 1px solid #050;
|
||||
background: none;;
|
||||
}
|
||||
|
||||
#commentDeleteAction td {
|
||||
padding-right: 6px;
|
||||
}
|
||||
|
||||
.commentAction, .commentDelete {
|
||||
width: 1%;
|
||||
white-space: nowrap;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.addCommentText, .commentText {
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
.commentDelete {
|
||||
background: url(../ubergine/images/nuke.png) 2px center no-repeat;
|
||||
text-align: left;
|
||||
padding: 8px 6px 8px 24px !important;
|
||||
}
|
||||
|
||||
#newRating td {
|
||||
padding-top: 10px !important;
|
||||
padding-bottom: 10px !important;
|
||||
border-top: 1px solid #050;
|
||||
}
|
||||
|
||||
#myRating td:empty {
|
||||
padding: 0 !important;
|
||||
border-top: none !important;
|
||||
border-bottom: none !important;
|
||||
}
|
||||
|
||||
#myRating td:empty::after { /* hides My Ratings row when Ratings disabled */
|
||||
min-height: 1px !important;
|
||||
}
|
||||
|
||||
.commentRating img {
|
||||
margin: 0 0 4px;
|
||||
padding: 0;
|
||||
font-size: 14pt;
|
||||
color: #FF7200;
|
||||
text-shadow: 0 0 1px #900;
|
||||
filter: none;
|
||||
}
|
||||
|
||||
/* end Comments section */
|
||||
|
||||
/* responsive layout */
|
||||
|
||||
@media screen and (max-width: 950px) {
|
||||
@ -2497,6 +2716,10 @@ body, .snarkTorrents td, .snarkAddInfo, th, td, code, textarea, input, input[ty
|
||||
font-size: 12pt !important;
|
||||
}
|
||||
|
||||
.snarkTorrentStatus {
|
||||
padding-right: 10px !important;
|
||||
}
|
||||
|
||||
.snarkTorrentDownloaded {
|
||||
white-space: nowrap;
|
||||
padding: 0 8px;
|
||||
@ -2609,201 +2832,3 @@ textarea[name="i2cpOpts"] {
|
||||
|
||||
/* end responsive layout */
|
||||
|
||||
/* Comments Section */
|
||||
/* TODO: merge with other rules where applicable */
|
||||
|
||||
.snarkCommentInfo, .snarkComments {
|
||||
margin: 10px 0 0 !important;
|
||||
border: 1px solid #494;
|
||||
border-left: none;
|
||||
border-right: none;
|
||||
background: #001100 url(/themes/console/dark/images/camotile2.png) repeat scroll center bottom;
|
||||
filter: drop-shadow(0px 0 1px rgba(16, 8, 16, 0.7));
|
||||
}
|
||||
|
||||
.snarkCommentInfo th, .snarkComments th {
|
||||
background: linear-gradient(to bottom, #001000 0%, #001900 50%, #000 50%, #000 100%);
|
||||
padding: 8px 5px;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
.snarkCommentInfo tr:nth-child(even), .snarkComments tr:nth-child(even) {
|
||||
background: #001000;
|
||||
border-bottom: 1px inset #000;
|
||||
}
|
||||
|
||||
.snarkCommentInfo tr:nth-child(odd), .snarkComments tr:nth-child(odd) {
|
||||
background: #000800;
|
||||
border-bottom: 1px inset #000;
|
||||
}
|
||||
|
||||
.snarkCommentInfo th {
|
||||
padding: 8px 5px 8px 30px;
|
||||
background: url(images/comment.png) 8px center no-repeat, linear-gradient(to bottom, #001000 0%, #001900 50%, #000 50%, #000 100%);
|
||||
}
|
||||
|
||||
.snarkCommentInfo td, .snarkComments td {
|
||||
padding: 8px 5px;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td:first-child {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td:first-child {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td:first-child::after, .snarkComments td:first-child::after {
|
||||
content: "";
|
||||
display: inline-block;
|
||||
min-height: 32px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.snarkCommentInfo input.accept {
|
||||
float: right;
|
||||
margin-right: 5px !important;
|
||||
}
|
||||
|
||||
.snarkCommentInfo textarea { /* remember to set 10pt @ > 1400px */
|
||||
font-family: "Droid Sans", "Noto Sans", Ubuntu, "Segoe UI", "DejaVu Sans", Verdana, "Lucida Grande", Helvetica, sans-serif;
|
||||
width: 100%;
|
||||
min-height: 64px;
|
||||
height: 64px;
|
||||
resize: vertical;
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
.snarkComments th {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.commentRating, .commentAuthor {
|
||||
width: 1%;
|
||||
}
|
||||
|
||||
#nameRequired {
|
||||
float: right;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.commentRating {
|
||||
padding-right: 10px !important;
|
||||
}
|
||||
|
||||
.commentRating img {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
}
|
||||
|
||||
.commentDate {
|
||||
width: 100px;
|
||||
background: url(images/clock.png) left center no-repeat;
|
||||
padding-left: 20px !important;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td:first-child, .snarkComments td:first-child {
|
||||
width: 160px !important;
|
||||
padding-right: 2px;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td:last-child, .snarkComments td:last-child {
|
||||
width: 1% !important;
|
||||
}
|
||||
|
||||
.snarkComments td {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.commentAuthorName {
|
||||
background: url(images/author.png) left center no-repeat;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
.commentText {
|
||||
white-space: normal;
|
||||
text-align: justify;
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
.commentWrapper {
|
||||
border: 1px solid #030;
|
||||
margin: 2px 0;
|
||||
padding: 8px 10px 8px 26px;
|
||||
border-radius: 3px;
|
||||
box-shadow: inset 0 0 0 1px #393, 0 0 1px 0 rgba(0,0,0,0.3);
|
||||
background: url(images/comment.png) 6px center no-repeat #010;
|
||||
background-blend-mode: luminosity;
|
||||
}
|
||||
|
||||
.commentText .optbox {
|
||||
position: fixed;
|
||||
right: 20px;
|
||||
top: 10px;
|
||||
}
|
||||
|
||||
#commentsConfig .optbox {
|
||||
vertical-align: middle !important;
|
||||
}
|
||||
|
||||
.snarkComments select {
|
||||
margin-right: 0 !important;
|
||||
}
|
||||
|
||||
#commentDeleteAction {
|
||||
border-top: 1px solid #494;
|
||||
background: none;;
|
||||
}
|
||||
|
||||
#commentDeleteAction td {
|
||||
padding-right: 6px;
|
||||
}
|
||||
|
||||
.commentAction, .commentDelete {
|
||||
width: 1%;
|
||||
white-space: nowrap;
|
||||
/* min-width: 180px !important;*/
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.addCommentText, .commentText {
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
.commentAction input[type="submit"] {
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.commentDelete {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#newRating td {
|
||||
padding-top: 10px !important;
|
||||
padding-bottom: 10px !important;
|
||||
}
|
||||
|
||||
#myRating td:empty {
|
||||
padding: 0 !important;
|
||||
border-top: none !important;
|
||||
border-bottom: none !important;
|
||||
}
|
||||
|
||||
#myRating td:empty::after { /* hides My Ratings row when Ratings disabled */
|
||||
min-height: 1px !important;
|
||||
}
|
||||
|
||||
.commentRating img {
|
||||
margin: 0 0 4px;
|
||||
padding: 0;
|
||||
font-size: 14pt;
|
||||
color: #FF7200;
|
||||
text-shadow: 0 0 1px #900;
|
||||
filter: none;
|
||||
}
|
||||
|
||||
/* end Comments section */
|
||||
|
@ -145,7 +145,6 @@ button::-moz-focus-inner, input::-moz-focus-inner {
|
||||
}
|
||||
|
||||
.snarkRefresh:first-child {
|
||||
/* padding: 4px 10px 4px 19px !important;*/
|
||||
border-radius: 2px 0 0 2px;
|
||||
background: #fff url(images/button_snark.png) 10px center no-repeat;
|
||||
background: url(images/button_snark.png) 10px center no-repeat, linear-gradient(to bottom, #fff 50%, #eef 51%, #eef 100%);
|
||||
@ -308,10 +307,6 @@ table {
|
||||
opacity: 1 !important;
|
||||
}
|
||||
|
||||
tr {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
thead, tfoot {
|
||||
background: #fff;
|
||||
}
|
||||
@ -416,6 +411,13 @@ tfoot tr:nth-child(n+1) {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
/* main torrents listing */
|
||||
|
||||
.snarkTorrents thead th {
|
||||
padding-top: 4px;
|
||||
padding-bottom: 4px;
|
||||
}
|
||||
|
||||
.snarkTorrents {
|
||||
margin: -1px 0;
|
||||
background: #fff;
|
||||
@ -433,80 +435,75 @@ tfoot tr:nth-child(n+1) {
|
||||
text-align: center !important;
|
||||
}
|
||||
|
||||
.snarkTorrents th:empty + th:empty, .snarkTorrents td:empty + td:empty, .snarkTorrents th:last-child:empty, .snarkTorrents td:last-child:empty {
|
||||
width: 0 !important;
|
||||
}
|
||||
|
||||
.snarkTorrents tfoot tr:first-child th {
|
||||
padding: 5px 4px;
|
||||
background: #fff;
|
||||
background: linear-gradient(to bottom, #fff 50%, rgb(240, 240, 255)) #fff;
|
||||
vertical-align: middle;
|
||||
font-weight: bold;
|
||||
font-style: normal !important;
|
||||
color: #31334f !important;
|
||||
}
|
||||
|
||||
.snarkTorrents td {
|
||||
line-height: 110%;
|
||||
}
|
||||
|
||||
.snarkTorrents thead th:nth-child(1), .snarkTorrents td:nth-child(1) {
|
||||
width: 20px !important;
|
||||
}
|
||||
|
||||
.snarkTorrents td:nth-child(1) {
|
||||
text-align: left;
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
.snarkTorrents td:nth-child(2) {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.snarkTorrentStatus b {
|
||||
margin-right: 3px;
|
||||
}
|
||||
|
||||
.snarkTorrents td[colspan="10"] {
|
||||
white-space: normal !important;
|
||||
}
|
||||
|
||||
.snarkTorrents td:nth-child(3), .SnarkTorrents td:nth-child(4) {
|
||||
width: 16px !important;
|
||||
padding: 2px 1px 2px 0;
|
||||
}
|
||||
|
||||
.SnarkTorrents td:nth-child(4) {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.snarkTorrents td[colspan="4"], .snarkTorrents td[colspan="10"] {
|
||||
text-align: left !important;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.snarkTorrents th[colspan="6"]::first-line {
|
||||
font-weight: bold;
|
||||
.snarkTorrents td[colspan="10"] {
|
||||
white-space: normal !important;
|
||||
}
|
||||
|
||||
.snarkTorrents th[colspan="6"] {
|
||||
font-weight: normal;
|
||||
.snarkGraphicStatus, .snarkTorrentStatus {
|
||||
white-space: nowrap;
|
||||
width: 1%;
|
||||
}
|
||||
|
||||
.snarkTorrents tfoot tr:first-child th {
|
||||
padding: 5px 4px !important;
|
||||
background: #fff;
|
||||
vertical-align: middle;
|
||||
.snarkGraphicStatus {
|
||||
max-width: 32px !important;
|
||||
text-align: center !important;
|
||||
padding-left: 2px;
|
||||
}
|
||||
|
||||
td {
|
||||
padding: 2px 4px;
|
||||
color: #272e3f !important;
|
||||
opacity: 1;
|
||||
font-size: 9pt;
|
||||
.snarkTorrentStatus {
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
.mainsection td {
|
||||
color: #272e3f;
|
||||
}
|
||||
|
||||
td:first-child {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.center {
|
||||
th.snarkTorrentStatus {
|
||||
text-align: center !important;
|
||||
}
|
||||
|
||||
.snarkTorrentStatus b {
|
||||
margin-right: 3px;
|
||||
}
|
||||
|
||||
.snarkTorrentStatus a:visited {
|
||||
color: #559;
|
||||
}
|
||||
|
||||
.snarkTorrentStatus a:hover {
|
||||
color: #f60;
|
||||
}
|
||||
|
||||
.snarkTrackerDetails, .SnarkTorrentDetails {
|
||||
width: 16px !important;
|
||||
padding: 2px 1px 2px 0;
|
||||
}
|
||||
|
||||
.SnarkTorrentDetails {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.snarkTorrentName {
|
||||
padding: 0;
|
||||
padding: 0 0 0 3px;
|
||||
line-height: 90%;
|
||||
}
|
||||
|
||||
@ -515,6 +512,12 @@ td:first-child {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.snarkTorrentETA, .snarkTorrentUploaded, .snarkTorrentRateDown, .snarkTorrentRateUp {
|
||||
width: 5%;
|
||||
min-width: 40px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.snarkTorrentAction {
|
||||
text-shadow: 1px 1px #550000;
|
||||
padding: 2px 1px !important;
|
||||
@ -534,10 +537,6 @@ td:first-child {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.snarkTorrents thead th:last-child br { /* kill "start all/stop all" button wrapping in the header */
|
||||
display: none;
|
||||
}
|
||||
|
||||
.snarkTorrentAction input[type="image"], .snarkTorrents th:last-child input[type="image"] {
|
||||
padding: 3px !important;
|
||||
background: #339;
|
||||
@ -561,12 +560,6 @@ td:first-child {
|
||||
filter: hue-rotate(110deg) !important;
|
||||
}
|
||||
|
||||
.snarkTorrentEven {
|
||||
font-size: 8pt;
|
||||
background: #eef;
|
||||
background: repeating-linear-gradient(135deg, rgba(255,255,255,0.5) 2px, rgba(240, 240, 255, 0.3) 3px, #fff 5px);
|
||||
}
|
||||
|
||||
.snarkTorrentNoneLoaded, .snarkTorrentNoneLoaded:hover {
|
||||
background: #fff !important;
|
||||
background: linear-gradient(to right, #eef, #fff, #eef) !important;
|
||||
@ -579,48 +572,82 @@ td:first-child {
|
||||
color: #272e3f !important;
|
||||
}
|
||||
|
||||
.snarkTorrentStatus a:visited {
|
||||
color: #559;
|
||||
}
|
||||
|
||||
.snarkTorrentStatus a:hover {
|
||||
color: #f60;
|
||||
}
|
||||
|
||||
.snarkTorrentStatus:first-child {
|
||||
text-align: left !important;
|
||||
padding-left: 0;
|
||||
min-width: 48px;
|
||||
font-weight: bold;
|
||||
color: #dd9 !important;
|
||||
font-size: 8pt;
|
||||
padding: 1px !important;
|
||||
}
|
||||
|
||||
.snarkTorrentStatus:first-child img {
|
||||
margin-right: 10px !important;
|
||||
margin-left: 6px;
|
||||
}
|
||||
|
||||
.snarkTorrentRateUp, .snarkTorrentRateDown, .snarkTorrentDownloaded, .snarkTorrentUploaded {
|
||||
padding: 0 3px;
|
||||
line-height: 90%;
|
||||
}
|
||||
|
||||
.snarkTorrentRateUp:empty, .snarkTorrentRateDown:empty, .snarkTorrentAction:empty {
|
||||
width: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.snarkTorrentUploaded, .snarkTorrentRateUp {
|
||||
font-style: italic !important;
|
||||
color: #59698f !important;
|
||||
}
|
||||
|
||||
.snarkTorrentDownloaded, .snarkTorrents tfoot th:nth-last-child(5) {
|
||||
.snarkTorrentDownloaded {
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.choked, .unchoked {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.choked {
|
||||
color: #a00 !important;
|
||||
}
|
||||
|
||||
.unchoked {
|
||||
color: #070 !important;
|
||||
}
|
||||
|
||||
.snarkTorrents tt {
|
||||
background: #99f;
|
||||
color: #fff;
|
||||
border-radius: 2px;
|
||||
padding: 2px 3px;
|
||||
margin: 0 3px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
#totals {
|
||||
display: inline-block;
|
||||
margin: 2px 0 2px 5px;
|
||||
font-weight: bold !important;
|
||||
}
|
||||
|
||||
#totals span, #ourDest {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.routerdown {
|
||||
color: #001;
|
||||
}
|
||||
|
||||
/* end main torrents listing */
|
||||
|
||||
td {
|
||||
padding: 2px 4px;
|
||||
color: #272e3f !important;
|
||||
opacity: 1;
|
||||
font-size: 9pt;
|
||||
}
|
||||
|
||||
.mainsection td {
|
||||
color: #272e3f;
|
||||
}
|
||||
|
||||
.snarkTorrentEven {
|
||||
background: #eef;
|
||||
background: repeating-linear-gradient(135deg, rgba(255,255,255,0.5) 2px, rgba(240, 240, 255, 0.3) 3px, #fff 5px);
|
||||
}
|
||||
|
||||
.snarkTorrentOdd {
|
||||
background: #e0e0ff;
|
||||
background: repeating-linear-gradient(45deg, rgba(255,255,255,0.5) 2px, rgba(221, 221, 255, 0.3) 3px, #fff 5px);
|
||||
font-size: 8pt;
|
||||
}
|
||||
|
||||
.snarkTorrentOdd td, .snarkTorrentEven td {
|
||||
@ -635,6 +662,10 @@ td:first-child {
|
||||
color: #0c111f !important;
|
||||
}
|
||||
|
||||
.snarkTorrents tr:hover img {
|
||||
mix-blend-mode: normal;
|
||||
}
|
||||
|
||||
tr:hover .percentBarText {
|
||||
opacity: 0.75;
|
||||
}
|
||||
@ -643,10 +674,6 @@ tr:hover .percentBarText {
|
||||
background: url(images/peer.png) center center no-repeat #ffd !important;
|
||||
}
|
||||
|
||||
.snarkTorrents tr:hover img {
|
||||
mix-blend-mode: normal;
|
||||
}
|
||||
|
||||
.snarkTorrentEven + .snarkTorrentEven td:nth-child(2), .snarkTorrentOdd td + .snarkTorrentOdd td:nth-child(2) {
|
||||
padding: 4px 0;
|
||||
text-align: left;
|
||||
@ -706,7 +733,6 @@ tr:hover .percentBarText {
|
||||
background: #eef;
|
||||
background: repeating-linear-gradient(135deg, rgba(238, 238, 255,0.7) 1px, rgba(238, 238, 255, 0.7) 5px, rgba(221, 221, 255, 0.7) 6px, rgba(221, 221, 255, 0.7) 11px);
|
||||
border: 1px solid #99f;
|
||||
box-shadow: none;
|
||||
box-shadow: 0 0 1px rgba(200,200,200,0.8);
|
||||
margin: 0 auto;
|
||||
}
|
||||
@ -715,7 +741,7 @@ tr:hover .percentBarText {
|
||||
border: none;
|
||||
height: 100%;
|
||||
background: #bbf;
|
||||
background: linear-gradient(to bottom, #fff 0%, #eef 50%, #ddf 50%, #bbf 100%);
|
||||
background: linear-gradient(to bottom, rgba(255, 255, 255,0.6) 0%, rgba(238, 238, 255, 0.6) 50%, rgba(221, 221, 255, 0.7) 50%, rgba(187, 187, 255, 0.7) 100%);
|
||||
box-shadow: inset 0 0 0 1px #ddf;
|
||||
}
|
||||
|
||||
@ -762,18 +788,6 @@ tr:hover .percentBarText {
|
||||
|
||||
/* end download bars */
|
||||
|
||||
.choked {
|
||||
color: #a00 !important;
|
||||
}
|
||||
|
||||
.unchoked {
|
||||
color: #070 !important;
|
||||
}
|
||||
|
||||
.snarkTorrents td:nth-last-child(2) .choked, .snarkTorrents td:nth-last-child(2) .unchoked {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.thumb {
|
||||
max-width: 16px;
|
||||
transition: ease all 0.3s 0s;
|
||||
@ -907,7 +921,7 @@ tr:hover .percentBarText {
|
||||
|
||||
.snarkTorrentInfo td {
|
||||
text-align: left !important;
|
||||
padding: 3px 0 3px 1px !important;
|
||||
padding: 4px 0 4px 1px !important;
|
||||
border-top: 1px solid #bbf;
|
||||
vertical-align: middle;
|
||||
}
|
||||
@ -928,6 +942,14 @@ tr:hover .percentBarText {
|
||||
|
||||
.snarkTorrentInfo tr:last-child td {
|
||||
border-bottom: 1px solid #7778bf;
|
||||
border-top: 1px solid #7778bf;
|
||||
}
|
||||
|
||||
#infohash {
|
||||
color: #070;
|
||||
-moz-user-select: all;
|
||||
-webkit-user-select: all;
|
||||
user-select: all;
|
||||
}
|
||||
|
||||
.snarkDirInfo thead img {
|
||||
@ -1126,6 +1148,10 @@ input[name="nofilter_dataDir"], textarea[name="i2cpOpts"] {
|
||||
font-family: "Droid Sans", "Noto Sans", Ubuntu, "Segoe UI", "Bitstream Vera Sans", Verdana, "Lucida Grande", Helvetica, sans-serif;
|
||||
}
|
||||
|
||||
#configureAuthor input {
|
||||
width: 250px;
|
||||
}
|
||||
|
||||
input[type="radio"] {
|
||||
padding: 2px;
|
||||
margin: 0 3px 0 8px;
|
||||
@ -1250,6 +1276,7 @@ img[src$="details.png"] {
|
||||
|
||||
.newtorrentsection td:first-child, .addtorrentsection td:first-child, .configsectionpanel td:first-child {
|
||||
width: auto !important;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.configsectionpanel td:first-child {
|
||||
@ -1380,19 +1407,6 @@ code, tt {
|
||||
font-family: "Droid Sans Mono", "Lucida Console", "DejaVu Sans Mono", monospace;
|
||||
}
|
||||
|
||||
.snarkTorrents tt {
|
||||
background: #99f;
|
||||
color: #fff;
|
||||
border-radius: 2px;
|
||||
padding: 2px 3px;
|
||||
margin: 0 3px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.routerdown {
|
||||
color: #001;
|
||||
}
|
||||
|
||||
.trackerconfig {
|
||||
text-align: left !important;
|
||||
width: 100%;
|
||||
@ -1663,12 +1677,6 @@ hr.debug:last-child {
|
||||
|
||||
/* end Resource Errors */
|
||||
|
||||
#totals {
|
||||
display: inline-block;
|
||||
margin: 2px 0 2px 5px;
|
||||
font-weight: bold !important;
|
||||
}
|
||||
|
||||
/* Downloading Priorities */
|
||||
|
||||
.snarkDirInfo input[type="radio"], .snarkDirInfo input[type="radio"]:checked {
|
||||
@ -1767,7 +1775,7 @@ hr.debug:last-child {
|
||||
}
|
||||
|
||||
#setPriority th {
|
||||
border-bottom: 1px solid #eef;
|
||||
border-bottom: 1px solid #7778bf;
|
||||
}
|
||||
|
||||
#torrentInfoStats td {
|
||||
@ -1789,6 +1797,207 @@ hr.debug:last-child {
|
||||
margin-right: 7px;
|
||||
}
|
||||
|
||||
/* Comments Section */
|
||||
|
||||
.snarkCommentInfo, .snarkComments {
|
||||
margin: 10px 0 0 !important;
|
||||
border: 1px solid #7778bf;
|
||||
border-left: none;
|
||||
border-right: none;
|
||||
}
|
||||
|
||||
.iframed .snarkComments {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.snarkComments {
|
||||
margin-top: -1px !important;
|
||||
border-top: none !important;
|
||||
}
|
||||
|
||||
.snarkCommentInfo th, .snarkComments th {
|
||||
padding: 8px 5px;
|
||||
}
|
||||
|
||||
.snarkCommentInfo tr:nth-child(even), .snarkComments tr:nth-child(odd) {
|
||||
border-top: 1px solid #bbf;
|
||||
background: repeating-linear-gradient(135deg, rgba(255, 255, 255, 0.5) 2px, rgba(240, 240, 255, 0.3) 3px, #fff 5px) #fff;
|
||||
}
|
||||
|
||||
.snarkCommentInfo tr:nth-child(odd), .snarkComments tr:nth-child(even) {
|
||||
border-top: 1px solid #bbf;
|
||||
background: repeating-linear-gradient(45deg, rgba(255, 255, 255, 0.5) 2px, rgba(221, 221, 255, 0.3) 3px, #fff 5px) #fff;
|
||||
}
|
||||
|
||||
.snarkCommentInfo th {
|
||||
padding: 8px 5px;
|
||||
background: url(images/comment.png) 8px center no-repeat, linear-gradient(to bottom, #fff 50%, rgb(240, 240, 255));
|
||||
padding-left: 30px;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td, .snarkComments td {
|
||||
padding: 6px 5px;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td:first-child, .snarkComments td:first-child {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td:first-child {
|
||||
font-weight: bold;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td:first-child::after, .snarkComments td:first-child::after {
|
||||
content: "";
|
||||
display: inline-block;
|
||||
min-height: 32px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.snarkCommentInfo input.accept {
|
||||
float: right;
|
||||
margin-right: 5px !important;
|
||||
}
|
||||
|
||||
.snarkCommentInfo textarea {
|
||||
font-family: "Droid Sans", "Noto Sans", Ubuntu, "Segoe UI", "Bitstream Vera Sans", Verdana, "Lucida Grande", Helvetica, sans-serif !important;
|
||||
font-weight: normal;
|
||||
width: 100%;
|
||||
min-height: 64px;
|
||||
height: 64px;
|
||||
resize: vertical;
|
||||
}
|
||||
|
||||
.snarkComments tr:last-child {
|
||||
border-top: 1px solid #7778bf !important;
|
||||
}
|
||||
|
||||
.commentRating, .commentAuthor {
|
||||
width: 1%;
|
||||
}
|
||||
|
||||
#nameRequired {
|
||||
float: right;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.commentRating {
|
||||
padding-right: 10px !important;
|
||||
}
|
||||
|
||||
.commentRating img {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
filter: drop-shadow(0 0 1px rgba(128,0,0,0.3)) !important;
|
||||
}
|
||||
|
||||
.commentDate {
|
||||
width: 100px;
|
||||
background: url(images/clock.png) left center no-repeat;
|
||||
padding-left: 20px !important;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td:first-child, .snarkComments td:first-child {
|
||||
width: 160px !important;
|
||||
min-width: 160px !important;
|
||||
padding-right: 2px;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td:last-child, .snarkComments td:last-child {
|
||||
width: 1% !important;
|
||||
}
|
||||
|
||||
.snarkComments td {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.commentAuthorName {
|
||||
background: url(images/author.png) left center no-repeat;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
.commentText {
|
||||
white-space: normal;
|
||||
text-align: justify;
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
.commentWrapper {
|
||||
border: 1px solid #bbf;
|
||||
margin: 2px 0;
|
||||
padding: 8px 10px 8px 26px;
|
||||
border-radius: 3px;
|
||||
box-shadow: inset 0 0 0 1px #fff, 0 0 1px 0 rgba(0,0,0,0.3);
|
||||
background: url(images/comment.png) 6px center no-repeat #eef;
|
||||
background-blend-mode: luminosity;
|
||||
}
|
||||
|
||||
#commentsConfig .optbox {
|
||||
vertical-align: middle !important;
|
||||
}
|
||||
|
||||
.snarkComments select {
|
||||
margin-right: 0 !important;
|
||||
}
|
||||
|
||||
#commentDeleteAction {
|
||||
border-top: 1px solid #bbf;
|
||||
background: linear-gradient(to bottom, #fff, #eef);
|
||||
}
|
||||
|
||||
#commentDeleteAction td {
|
||||
padding-right: 6px;
|
||||
}
|
||||
|
||||
.commentAction, .commentDelete {
|
||||
width: 1%;
|
||||
white-space: nowrap;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.addCommentText, .commentText {
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
.commentDelete {
|
||||
text-align: left;
|
||||
padding: 2px 3px 2px 20px !important;
|
||||
background: url(../ubergine/images/nuke.png) left center no-repeat;
|
||||
}
|
||||
|
||||
#newRating td:first-child {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#newRating select {
|
||||
width: 90%;
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
#myRating td:empty {
|
||||
padding: 0 !important;
|
||||
border-top: none !important;
|
||||
border-bottom: none !important;
|
||||
}
|
||||
|
||||
#myRating td:empty::after { /* hides My Ratings row when Ratings disabled */
|
||||
min-height: 0 !important;
|
||||
}
|
||||
|
||||
.commentRating img {
|
||||
margin: 0 0 4px;
|
||||
padding: 0;
|
||||
font-size: 14pt;
|
||||
color: #FF7200;
|
||||
text-shadow: 0 0 1px #900;
|
||||
filter: none;
|
||||
}
|
||||
|
||||
/* end Comments section */
|
||||
|
||||
/* MS Edge 14+ rendering bug fix */
|
||||
_:-ms-lang(x), *, *:hover, *:focus, input, input:hover, input:focus, a:hover, a:focus {
|
||||
filter: none !important;
|
||||
@ -1807,9 +2016,8 @@ _:-ms-lang(x), *, *:hover, *:focus, input, input:hover, input:focus, a:hover, a:
|
||||
min-width: 580px !important;
|
||||
}
|
||||
|
||||
.snarkTorrents th:nth-child(2), .snarkTorrents td:nth-child(2), .snarkTorrents th:nth-child(7),
|
||||
.snarkTorrents tfoot th:nth-child(3), .snarkTorrents td.snarkTorrentUploaded, .snarkTorrents th:nth-child(9),
|
||||
.snarkTorrents tfoot th:nth-child(5), .snarkTorrents td.snarkTorrentRateUp {
|
||||
.snarkTorrentStatus, .snarkTorrentUploaded, .snarkTorrentRateUp,
|
||||
.snarkTorrents tfoot th:nth-child(3), .snarkTorrents tfoot th:nth-child(5) {
|
||||
max-width: 0 !important;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
@ -1821,19 +2029,26 @@ _:-ms-lang(x), *, *:hover, *:focus, input, input:hover, input:focus, a:hover, a:
|
||||
display: none;
|
||||
}
|
||||
|
||||
.snarkTorrents td:first-child img, .snarkTorrents td:nth-child(3) img, .snarkTorrents td:nth-child(4) img {
|
||||
.snarkGraphicStatus img, .snarkTrackerDetails img, .snarkTorrentDetails img {
|
||||
max-height: 14px !important;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.snarkGraphicStatus, .snarkTorrentStatus {
|
||||
width: 0;
|
||||
}
|
||||
|
||||
.snarkTorrentETA, .snarkTorrentUploaded, .snarkTorrentRateDown, .snarkTorrentRateUp {
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.snarkTorrents thead img {
|
||||
max-height: 18px !important;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.snarkTorrents thead th:nth-child(1), .snarkTorrents td:nth-child(1) {
|
||||
width: 18px !important;
|
||||
padding: 0;
|
||||
.snarkGraphicStatus {
|
||||
max-width: 24px !important;
|
||||
}
|
||||
|
||||
.snarkTorrentAction {
|
||||
@ -1905,7 +2120,15 @@ body, td, .snarkMessages li, .snarkMessages a, button, input, select, .snarkAddI
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.snarkTorrents td:nth-child(2), .snarkTorrents td:nth-child(2) a {
|
||||
.snarkGraphicStatus {
|
||||
max-width: 28px !important;
|
||||
}
|
||||
|
||||
th.snarkTorrentStatus {
|
||||
text-align: right !important;
|
||||
}
|
||||
|
||||
.snarkTorrentStatus, .snarkTorrentStatus a {
|
||||
white-space: nowrap;
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1914,12 +2137,13 @@ body, td, .snarkMessages li, .snarkMessages a, button, input, select, .snarkAddI
|
||||
display: none;
|
||||
}
|
||||
|
||||
b.alwaysShow {
|
||||
display: inline;
|
||||
.percentBarOuter, .percentBarText {
|
||||
line-height: 11px !important;
|
||||
height: 12px !important;
|
||||
}
|
||||
|
||||
.snarkTorrentDownloaded .percentBarText, .snarkTorrentDownloaded .percentBarOuter {
|
||||
width: 100px !important;
|
||||
b.alwaysShow {
|
||||
display: inline;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1937,6 +2161,14 @@ b.alwaysShow {
|
||||
a.snarkRefresh:first-child {
|
||||
padding-left: 26px !important;
|
||||
}
|
||||
|
||||
.snarkTorrentDownloaded .percentBarText, .snarkTorrentDownloaded .percentBarOuter {
|
||||
width: 100px !important;
|
||||
}
|
||||
|
||||
.peerinfo .snarkTorrentDownloaded .percentBarText, .peerinfo .snarkTorrentDownloaded .percentBarOuter {
|
||||
width: 80px !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1400px) {
|
||||
@ -1958,18 +2190,30 @@ a.snarkRefresh:first-child {
|
||||
pointer-events: none; /* hide tooltip */
|
||||
}
|
||||
|
||||
.snarkTorrentAction {
|
||||
padding-right: 3px !important;
|
||||
}
|
||||
|
||||
#configs tr:nth-last-child(n+4) td {
|
||||
padding-top: 3px;
|
||||
padding-bottom: 3px;
|
||||
}
|
||||
|
||||
.snarkTorrentStatus {
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
.snarkTorrentName {
|
||||
padding-left: 4px;
|
||||
}
|
||||
|
||||
.snarkTorrentRateUp, .snarkTorrents tfoot th.snarkTorrentRateUp, .peerinfo .snarkTorrentRateUp {
|
||||
padding-right: 10px !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: 1400px) {
|
||||
body, td, button, input, select, .snarkAddInfo, code, tt, th, a, a:link, textarea {
|
||||
body, td, button, input, select, .snarkAddInfo, code, tt, th, a, a:link, textarea, .snarkCommentInfo textarea {
|
||||
font-size: 10pt !important;
|
||||
}
|
||||
|
||||
@ -2032,7 +2276,7 @@ input[type="submit"] {
|
||||
|
||||
.debuginfo td {
|
||||
font-size: 10pt !important;
|
||||
word-spacing: 0em;
|
||||
word-spacing: 0;
|
||||
padding-top: 4px !important;
|
||||
padding-bottom: 4px !important;
|
||||
}
|
||||
@ -2059,197 +2303,3 @@ input[type="submit"] {
|
||||
|
||||
/* end responsive layout */
|
||||
|
||||
/* Comments Section */
|
||||
/* TODO: merge with other rules where applicable */
|
||||
|
||||
.snarkCommentInfo, .snarkComments {
|
||||
margin: 10px 0 0 !important;
|
||||
border: 1px solid #7778bf;
|
||||
border-left: none;
|
||||
border-right: none;
|
||||
}
|
||||
|
||||
.snarkCommentInfo th, .snarkComments th {
|
||||
padding: 8px 5px;
|
||||
}
|
||||
|
||||
.snarkCommentInfo tr:nth-child(even), .snarkComments tr:nth-child(even) {
|
||||
border-top: 1px solid #bbf;
|
||||
background: repeating-linear-gradient(135deg, rgba(255, 255, 255, 0.5) 2px, rgba(240, 240, 255, 0.3) 3px, #fff 5px) #fff;
|
||||
}
|
||||
|
||||
.snarkCommentInfo tr:nth-child(odd), .snarkComments tr:nth-child(odd) {
|
||||
border-top: 1px solid #bbf;
|
||||
background: repeating-linear-gradient(45deg, rgba(255, 255, 255, 0.5) 2px, rgba(221, 221, 255, 0.3) 3px, #fff 5px) #fff;
|
||||
}
|
||||
|
||||
.snarkCommentInfo th {
|
||||
padding: 8px 5px;
|
||||
background: url(images/comment.png) 8px center no-repeat, linear-gradient(to bottom, #fff 50%, rgb(240, 240, 255));
|
||||
padding-left: 30px;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td, .snarkComments td {
|
||||
padding: 8px 5px;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td:first-child {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td:first-child {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td:first-child::after, .snarkComments td:first-child::after {
|
||||
content: "";
|
||||
display: inline-block;
|
||||
min-height: 32px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.snarkCommentInfo input.accept {
|
||||
float: right;
|
||||
margin-right: 5px !important;
|
||||
}
|
||||
|
||||
.snarkCommentInfo textarea { /* remember to set 10pt @ > 1400px */
|
||||
width: 100%;
|
||||
min-height: 64px;
|
||||
height: 64px;
|
||||
resize: vertical;
|
||||
}
|
||||
|
||||
.snarkComments tr:first-child, .snarkComments tr:last-child {
|
||||
text-align: left;
|
||||
border-top: 1px solid #7778bf !important;
|
||||
}
|
||||
|
||||
.commentRating, .commentAuthor {
|
||||
width: 1%;
|
||||
}
|
||||
|
||||
#nameRequired {
|
||||
float: right;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.commentRating {
|
||||
padding-right: 10px !important;
|
||||
}
|
||||
|
||||
.commentRating img {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.commentDate {
|
||||
width: 100px;
|
||||
background: url(images/clock.png) left center no-repeat;
|
||||
padding-left: 20px !important;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td:first-child, .snarkComments td:first-child {
|
||||
width: 160px !important;
|
||||
padding-right: 2px;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td:last-child, .snarkComments td:last-child {
|
||||
width: 1% !important;
|
||||
}
|
||||
|
||||
.snarkComments td {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.commentAuthorName {
|
||||
background: url(images/author.png) left center no-repeat;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
.commentText {
|
||||
white-space: normal;
|
||||
text-align: justify;
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
.commentWrapper {
|
||||
border: 1px solid #bbf;
|
||||
margin: 2px 0;
|
||||
padding: 8px 10px 8px 26px;
|
||||
border-radius: 3px;
|
||||
box-shadow: inset 0 0 0 1px #fff, 0 0 1px 0 rgba(0,0,0,0.3);
|
||||
background: url(images/comment.png) 6px center no-repeat #eef;
|
||||
background-blend-mode: luminosity;
|
||||
}
|
||||
|
||||
.commentText .optbox {
|
||||
position: fixed;
|
||||
right: 20px;
|
||||
top: 10px;
|
||||
}
|
||||
|
||||
#commentsConfig .optbox {
|
||||
vertical-align: middle !important;
|
||||
}
|
||||
|
||||
.snarkComments select {
|
||||
margin-right: 0 !important;
|
||||
}
|
||||
|
||||
#commentDeleteAction {
|
||||
border-top: 1px solid #bbf;
|
||||
background: linear-gradient(to bottom, #fff, #eef);
|
||||
}
|
||||
|
||||
#commentDeleteAction td {
|
||||
padding-right: 6px;
|
||||
}
|
||||
|
||||
.commentAction, .commentDelete {
|
||||
width: 1%;
|
||||
white-space: nowrap;
|
||||
/* min-width: 180px !important;*/
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.addCommentText, .commentText {
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
.commentAction input[type="submit"] {
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.commentDelete {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#newRating td {
|
||||
padding-top: 10px !important;
|
||||
padding-bottom: 10px !important;
|
||||
}
|
||||
|
||||
#myRating td:empty {
|
||||
padding: 0 !important;
|
||||
border-top: none !important;
|
||||
border-bottom: none !important;
|
||||
}
|
||||
|
||||
#myRating td:empty::after { /* hides My Ratings row when Ratings disabled */
|
||||
min-height: 1px !important;
|
||||
}
|
||||
|
||||
.commentRating img {
|
||||
margin: 0 0 4px;
|
||||
padding: 0;
|
||||
font-size: 14pt;
|
||||
color: #FF7200;
|
||||
text-shadow: 0 0 1px #900;
|
||||
filter: none;
|
||||
}
|
||||
|
||||
/* end Comments section */
|
File diff suppressed because it is too large
Load Diff
@ -434,6 +434,8 @@ tfoot tr:nth-child(n+1) {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
/* main torrents listing */
|
||||
|
||||
.snarkTorrents {
|
||||
background: #212;
|
||||
margin: 0;
|
||||
@ -451,6 +453,10 @@ tfoot tr:nth-child(n+1) {
|
||||
}
|
||||
}
|
||||
|
||||
.snarkTorrents tr, .snarkTorrents td {
|
||||
border-top: 1px solid #202 !important;
|
||||
}
|
||||
|
||||
.snarkTorrents thead th {
|
||||
border-top: 1px solid transparent !important;
|
||||
}
|
||||
@ -464,15 +470,96 @@ tfoot tr:nth-child(n+1) {
|
||||
max-width: 45px;
|
||||
}
|
||||
|
||||
.snarkTorrents thead th:first-child {
|
||||
text-align: center !important;
|
||||
width: 16px !important;
|
||||
.snarkGraphicStatus, .snarkTorrentStatus {
|
||||
white-space: nowrap;
|
||||
width: 1%;
|
||||
}
|
||||
|
||||
.snarkTorrents thead th:nth-child(2) {
|
||||
text-align: left;
|
||||
min-width: 50px;
|
||||
}
|
||||
.snarkGraphicStatus {
|
||||
text-align: center !important;
|
||||
}
|
||||
|
||||
.snarkTorrentStatus {
|
||||
font-weight: normal !important;
|
||||
padding: 2px 2px 2px 0 !important;
|
||||
line-height: 110%;
|
||||
text-align: left !important;
|
||||
}
|
||||
|
||||
th.snarkTorrentStatus {
|
||||
text-align: center !important;
|
||||
}
|
||||
|
||||
.snarkTrackerDetails, .SnarkTorrentDetails {
|
||||
width: 16px;
|
||||
padding: 2px 0;
|
||||
}
|
||||
|
||||
.snarkTrackerDetails {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.snarkTorrentName {
|
||||
line-height: 110%;
|
||||
padding: 2px 1px 2px 3px;
|
||||
}
|
||||
|
||||
.snarkTorrentRateUp, .snarkTorrentRateDown, .snarkTorrentDownloaded, .snarkTorrentUploaded, .snarkFileSize, .snarkTorrentStatus, .snarkFileName {
|
||||
font-size: 8pt;
|
||||
font-weight: bold;
|
||||
padding: 0 3px;
|
||||
line-height: 100%;
|
||||
}
|
||||
|
||||
.snarkTorrentUploaded, .snarkTorrentRateUp {
|
||||
color: #b9b !important;
|
||||
}
|
||||
|
||||
.snarkTorrentRateDown {
|
||||
color: #76a !important;
|
||||
}
|
||||
|
||||
.snarkTorrentETA, .snarkTorrentUploaded, .snarkTorrentRateDown, .snarkTorrentRateUp {
|
||||
width: 5%;
|
||||
min-width: 40px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.snarkTorrentETA {
|
||||
font-weight: bold;
|
||||
font-style: italic;
|
||||
color: #dd7 !important;
|
||||
line-height: 120%;
|
||||
}
|
||||
|
||||
.snarkTorrentAction {
|
||||
padding: 1px 2px 1px 1px !important;
|
||||
text-align: center;
|
||||
width: 1%;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
th.snarkTorrentAction input[type="image"] {
|
||||
padding: 0;
|
||||
max-width: 32px;
|
||||
background: #40003f;
|
||||
border-radius: 2px;
|
||||
border: 1px solid #202;
|
||||
}
|
||||
|
||||
th.snarkTorrentAction input[type="image"]:hover {
|
||||
border: 1px solid #f60;
|
||||
}
|
||||
|
||||
.snarkTorrentAction img {
|
||||
margin: 0 2px !important;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.snarkTorrentAction img:hover {
|
||||
box-shadow: 0 0 1px 1px #f90;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.snarkTorrents tfoot {
|
||||
background: #101;
|
||||
@ -505,19 +592,10 @@ tfoot tr:nth-child(n+1) {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.snarkTorrents td:nth-child(3), .SnarkTorrents td:nth-child(4) {
|
||||
width: 16px;
|
||||
padding: 2px 0;
|
||||
}
|
||||
|
||||
.snarkTorrents .peerinfo td:nth-child(3), .snarkTorrents .peerinfo td:nth-child(4) {
|
||||
.peerinfo td:nth-child(3), .peerinfo td:nth-child(4) {
|
||||
padding: 2px 4px;
|
||||
}
|
||||
|
||||
.snarkTorrents td:nth-child(3) {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.snarkTorrents tt {
|
||||
font-family: "Noto Mono", "Droid Sans Mono", "Lucida Console", "DejaVu Sans Mono", monospace;
|
||||
color: #cc0;
|
||||
@ -525,6 +603,27 @@ tfoot tr:nth-child(n+1) {
|
||||
margin-right: 2px;
|
||||
}
|
||||
|
||||
#totals span, #ourDest {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.snarkTorrentNoneLoaded {
|
||||
padding: 10px;
|
||||
background: #323;
|
||||
font-size: 8.5pt;
|
||||
font-weight: bold;
|
||||
text-align: center !important;
|
||||
color: #bbb !important;
|
||||
border-radius: 0 0 2px 2px;
|
||||
}
|
||||
|
||||
.snarkTorrents th:empty + th:empty, .snarkTorrents td:empty + td:empty, .snarkTorrentETA:empty, .snarkTorrentAction:empty {
|
||||
width: 0 !important;
|
||||
min-width: 0 !important;
|
||||
}
|
||||
|
||||
/* end main torrents listing */
|
||||
|
||||
td {
|
||||
padding: 2px 4px;
|
||||
color: #ddd !important;
|
||||
@ -541,78 +640,6 @@ td:first-child {
|
||||
font-size: 8pt;
|
||||
}
|
||||
|
||||
.center {
|
||||
text-align: center !important;
|
||||
}
|
||||
|
||||
.snarkTorrentName {
|
||||
line-height: 110%;
|
||||
padding: 2px 1px 2px 3px;
|
||||
}
|
||||
|
||||
.snarkTorrentName img {
|
||||
padding: 1px;
|
||||
text-align: left;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.snarkTorrentAction {
|
||||
padding: 1px !important;
|
||||
text-align: center;
|
||||
width: 1%;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.snarkTorrents thead th:last-child {
|
||||
white-space: nowrap !important;
|
||||
text-align: center;
|
||||
padding-right: 4px;
|
||||
width: 1%;
|
||||
}
|
||||
|
||||
.snarkTorrents th:last-child input[type="image"] {
|
||||
padding: 0;
|
||||
max-width: 32px;
|
||||
background: #40003f;
|
||||
border-radius: 2px;
|
||||
border: 1px solid #202;
|
||||
}
|
||||
|
||||
.snarkTorrents th:last-child input[type="image"]:hover {
|
||||
border: 1px solid #f60;
|
||||
}
|
||||
|
||||
.snarkTorrentAction img {
|
||||
margin: 0 2px !important;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.snarkTorrentAction img:hover {
|
||||
box-shadow: 0 0 1px 1px #f90;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.snarkTorrentNoneLoaded {
|
||||
padding: 10px;
|
||||
background: #323;
|
||||
font-size: 8.5pt;
|
||||
font-weight: bold;
|
||||
text-align: center !important;
|
||||
color: #bbb !important;
|
||||
border-radius: 0 0 2px 2px;
|
||||
}
|
||||
|
||||
.snarkTorrentStatus {
|
||||
padding: 2px 2px 2px 0;
|
||||
line-height: 110%;
|
||||
text-align: left !important;
|
||||
}
|
||||
|
||||
.snarkTorrentStatus img {
|
||||
margin-right: 10px !important;
|
||||
margin-left: 6px;
|
||||
}
|
||||
|
||||
img[src$="details.png"] {
|
||||
mix-blend-mode: luminosity;
|
||||
}
|
||||
@ -621,33 +648,6 @@ a img[src$="details.png"]:hover, a:focus img[src$="details.png"] {
|
||||
mix-blend-mode: initial !important;
|
||||
}
|
||||
|
||||
.snarkTorrentRateUp, .snarkTorrentRateDown, .snarkTorrentDownloaded, .snarkTorrentUploaded, .snarkFileSize, .snarkTorrentStatus, .snarkFileName {
|
||||
font-size: 8pt;
|
||||
font-weight: bold;
|
||||
padding: 0 3px;
|
||||
line-height: 100%;
|
||||
}
|
||||
|
||||
.snarkTorrentStatus {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.snarkTorrents td:nth-child(2) {
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.snarkTorrentUploaded {
|
||||
color: #b9b !important;
|
||||
}
|
||||
|
||||
.snarkTorrentRateUp {
|
||||
color: #b9b !important;
|
||||
}
|
||||
|
||||
.snarkTorrentRateDown {
|
||||
color: #76a !important;
|
||||
}
|
||||
|
||||
.snarkTorrentOdd {
|
||||
background: #351933;
|
||||
font-size: 8pt;
|
||||
@ -658,10 +658,6 @@ a img[src$="details.png"]:hover, a:focus img[src$="details.png"] {
|
||||
background: #270027;
|
||||
}
|
||||
|
||||
.snarkTorrents tr, .snarkTorrents td {
|
||||
border-top: 1px solid #202 !important;
|
||||
}
|
||||
|
||||
.snarkTorrentEven + .snarkTorrentEven:nth-child(even), .snarkTorrentOdd + .snarkTorrentOdd:nth-child(even) {
|
||||
background: #303;
|
||||
background: linear-gradient(to right, #404, #404 5px, #313 5px, #404);
|
||||
@ -699,7 +695,7 @@ a img[src$="details.png"]:hover, a:focus img[src$="details.png"] {
|
||||
text-align: right !important;
|
||||
}
|
||||
|
||||
table.snarkTorrents tbody tr:hover, table.snarkDirInfo tbody tr:hover {
|
||||
.snarkTorrents tbody tr:hover, .snarkDirInfo tbody tr:hover {
|
||||
background: #58165e !important;
|
||||
background: linear-gradient(to bottom, #58165e 0%, #4a0d56 100%) !important;
|
||||
border-top: 1px solid #101 !important;
|
||||
@ -711,12 +707,12 @@ tr:hover .percentBarText {
|
||||
}
|
||||
|
||||
/* MS Edge fix */
|
||||
_:-ms-lang(x), table.snarkTorrents tbody tr:hover, table.snarkDirInfo tbody tr:hover {
|
||||
_:-ms-lang(x), .snarkTorrents tbody tr:hover, .snarkDirInfo tbody tr:hover {
|
||||
box-shadow: none !important;
|
||||
background: #58165e !important;
|
||||
}
|
||||
|
||||
table.snarkTorrents tbody tr:hover .snarkTorrentName, table.snarkDirInfo tbody tr:hover td .snarkFileName {
|
||||
.snarkTorrents tbody tr:hover .snarkTorrentName, .snarkDirInfo tbody tr:hover td .snarkFileName {
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
@ -765,13 +761,6 @@ table.snarkTorrents tbody tr:hover .snarkTorrentName, table.snarkDirInfo tbody t
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
.snarkTorrentETA {
|
||||
font-weight: bold;
|
||||
font-style: italic;
|
||||
color: #dd7 !important;
|
||||
line-height: 120%;
|
||||
}
|
||||
|
||||
.snarkTorrentInfo img {
|
||||
max-height: 16px !important;
|
||||
margin: 1px 2px 2px 4px !important;
|
||||
@ -810,6 +799,13 @@ table.snarkTorrents tbody tr:hover .snarkTorrentName, table.snarkDirInfo tbody t
|
||||
background: #351933;
|
||||
}
|
||||
|
||||
#infohash {
|
||||
color: #cc0;
|
||||
-moz-user-select: all;
|
||||
-webkit-user-select: all;
|
||||
user-select: all;
|
||||
}
|
||||
|
||||
#torrentInfoControl td {
|
||||
text-align: right !important;
|
||||
border-top: 1px solid #101;
|
||||
@ -824,14 +820,14 @@ table.snarkTorrents tbody tr:hover .snarkTorrentName, table.snarkDirInfo tbody t
|
||||
padding: 8px 5px !important;
|
||||
}
|
||||
|
||||
table.SnarkTorrentInfo, table.snarkDirInfo {
|
||||
.SnarkTorrentInfo, .snarkDirInfo {
|
||||
margin: 0 !important;
|
||||
border: 1px solid #101;
|
||||
background: #270027;
|
||||
filter: drop-shadow(0 0 1px rgba(16, 8, 16, 0.7)) !important;
|
||||
}
|
||||
|
||||
table.snarkDirInfo {
|
||||
.snarkDirInfo {
|
||||
margin-top: 10px !important;
|
||||
}
|
||||
|
||||
@ -1004,7 +1000,7 @@ _:-ms-lang(x), .snarkDirInfo img, .snarkTorrents img {
|
||||
transition: ease all 0.3s;
|
||||
}
|
||||
|
||||
div.snarkNewTorrent {
|
||||
.snarkNewTorrent {
|
||||
font-size: 8pt;
|
||||
margin-top: -1px;
|
||||
}
|
||||
@ -1054,7 +1050,7 @@ table#trackerselect {
|
||||
user-select: all;
|
||||
}
|
||||
|
||||
.toggleview, .snarkConfigTitle, .snarknavbar, img, input[type="image"] {
|
||||
.toggleview, .snarkConfigTitle, .snarknavbar, img, input[type="image"], label {
|
||||
-moz-user-select: none;
|
||||
-webkit-user-select: none;
|
||||
user-select: none;
|
||||
@ -1366,6 +1362,14 @@ textarea[name="i2cpOpts"] {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
input[name="nofilter_commentsName"] {
|
||||
max-width: 249px;
|
||||
}
|
||||
|
||||
input[name="nofilter_commentsName"]:focus::placeholder {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
input[type=text]:active, input[type=text]:focus, input.r:focus, input[name="nofilter_dataDir"]:focus, textarea:focus {
|
||||
background: #d60;
|
||||
background: linear-gradient(to bottom, #d60, #c50);
|
||||
@ -1399,7 +1403,7 @@ input[type="radio"], input[type="checkbox"], select, input[type="submit"], label
|
||||
}
|
||||
|
||||
input[type=text], input.r, select {
|
||||
min-width: 110px;
|
||||
min-width: 120px;
|
||||
}
|
||||
|
||||
input[name="upBW"] + i {
|
||||
@ -1676,7 +1680,7 @@ img[src$="magnet.png"] {
|
||||
background-size: 84px 82px, 100% 100%;
|
||||
}
|
||||
|
||||
.configsectionpanel, .configsectionpanel td, .snarkNewTorrent, .snarkNewTorrent td, .snarkAddInfo,
|
||||
.configsectionpanel, .configsectionpanel td, .snarkNewTorrent, .snarkNewTorrent td, .snarkAddInfo,
|
||||
select, input, input.r, input[name="nofilter_dataDir"], textarea[name="i2cpOpts"], a.control {
|
||||
font-family: "Droid Sans", "Noto Sans", Ubuntu, "Segoe UI", "Lucida Grande", "DejaVu Sans", Verdana, sans-serif;
|
||||
font-size: 9pt !important;
|
||||
@ -1735,17 +1739,17 @@ select, input, input.r, input[name="nofilter_dataDir"], textarea[name="i2cpOpts"
|
||||
margin-top: 1px;
|
||||
}
|
||||
|
||||
div.configsection table {
|
||||
.configsection table {
|
||||
color: #ffb;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
div.configsection a, label.toggleview {
|
||||
.configsection a, label.toggleview {
|
||||
color: #f60;
|
||||
text-shadow: 0 0 1px #000;
|
||||
}
|
||||
|
||||
div.configsection a:hover, .snarkConfig .snarkConfigTitle:hover a, .snarkConfig .snarkConfigTitle a:focus {
|
||||
.configsection a:hover, .snarkConfig .snarkConfigTitle:hover a, .snarkConfig .snarkConfigTitle a:focus {
|
||||
color: #d2baff;
|
||||
text-decoration: none;
|
||||
}
|
||||
@ -2024,7 +2028,7 @@ hr.debug + hr {
|
||||
margin-bottom: -7px;
|
||||
}
|
||||
|
||||
tr.dhtDebug th {
|
||||
.dhtDebug th {
|
||||
white-space: normal;
|
||||
word-break: break-all;
|
||||
border-top: 1px solid #313;
|
||||
@ -2145,15 +2149,6 @@ input#toggle_debug:checked + label + #dhtDebugInner {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.priority {
|
||||
font-size: 8pt;
|
||||
vertical-align: middle;
|
||||
text-align: right !important;
|
||||
padding-right: 15px;
|
||||
white-space: nowrap;
|
||||
width: 1%;
|
||||
}
|
||||
|
||||
.priority::after {
|
||||
content: "";
|
||||
display: inline-block;
|
||||
@ -2272,6 +2267,221 @@ input#toggle_debug:checked + label + #dhtDebugInner {
|
||||
margin: 8px;
|
||||
}
|
||||
|
||||
/* Comments Section */
|
||||
/* TODO: merge with other rules where applicable */
|
||||
|
||||
#snarkCommentSection {
|
||||
filter: drop-shadow(0px 0 1px rgba(16, 8, 16, 0.7));
|
||||
}
|
||||
|
||||
.snarkCommentInfo, .snarkComments {
|
||||
margin: 10px 0 0 !important;
|
||||
background: #270027 none repeat scroll 0 0;
|
||||
border: 1px solid #101;
|
||||
filter: none;;
|
||||
}
|
||||
|
||||
.snarkComments {
|
||||
margin-top: -1px !important;
|
||||
}
|
||||
|
||||
.snarkCommentInfo th {
|
||||
background: url(images/comment.png) 8px center no-repeat, linear-gradient(to bottom, #202, #101);
|
||||
padding: 8px 5px 8px 30px !important;
|
||||
}
|
||||
|
||||
.snarkCommentInfo tr:nth-child(even), .snarkComments tr:nth-child(odd) {
|
||||
background: #351933;
|
||||
border-bottom: 1px solid #101;
|
||||
}
|
||||
|
||||
.snarkCommentInfo tr:nth-child(odd), .snarkComments tr:nth-child(even) {
|
||||
background: #270027;
|
||||
border-bottom: 1px solid #101;
|
||||
}
|
||||
|
||||
.snarkCommentInfo th {
|
||||
padding: 8px 5px;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td, .snarkComments td {
|
||||
padding: 8px 5px;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td:first-child {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td:first-child {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td:first-child::after, .snarkComments td:first-child::after {
|
||||
content: "";
|
||||
display: inline-block;
|
||||
min-height: 32px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.snarkCommentInfo input.accept {
|
||||
float: right;
|
||||
margin-right: 5px !important;
|
||||
}
|
||||
|
||||
.snarkCommentInfo textarea {
|
||||
font-family: "Droid Sans", "Noto Sans", Ubuntu, "Segoe UI", "Lucida Grande", "DejaVu Sans", Verdana, sans-serif;
|
||||
width: 100%;
|
||||
min-height: 64px;
|
||||
height: 64px;
|
||||
resize: vertical;
|
||||
}
|
||||
|
||||
.commentRating, .commentAuthor {
|
||||
width: 1%;
|
||||
}
|
||||
|
||||
#nameRequired {
|
||||
float: right;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.commentRating {
|
||||
padding-right: 10px !important;
|
||||
}
|
||||
|
||||
.commentRating img {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
}
|
||||
|
||||
.commentDate {
|
||||
width: 100px;
|
||||
background: url(images/clock.png) left center no-repeat;
|
||||
padding-left: 20px !important;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td:first-child, .snarkComments td:first-child {
|
||||
min-width: 160px !important;
|
||||
width: 160px !important;
|
||||
padding-right: 2px;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td:last-child, .snarkComments td:last-child {
|
||||
width: 1% !important;
|
||||
}
|
||||
|
||||
.snarkComments td {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.commentAuthorName {
|
||||
background: url(images/author.png) left center no-repeat;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
.commentText {
|
||||
white-space: normal;
|
||||
text-align: justify;
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
.commentWrapper {
|
||||
border: 1px solid #101;
|
||||
margin: 2px 0;
|
||||
padding: 8px 10px 8px 26px;
|
||||
border-radius: 3px;
|
||||
background: #303;
|
||||
box-shadow: inset 0 0 0 1px #515, 0 0 1px 0 rgba(0,0,0,0.3);
|
||||
background: url(images/comment.png) 6px center no-repeat #303;
|
||||
background-blend-mode: luminosity;
|
||||
}
|
||||
|
||||
.snarkComments select {
|
||||
margin-right: 0 !important;
|
||||
}
|
||||
|
||||
#commentDeleteAction {
|
||||
background: linear-gradient(to bottom, #202, #101);
|
||||
box-shadow: inset 0 0 0 1px #303;
|
||||
}
|
||||
|
||||
#commentDeleteAction td {
|
||||
padding-right: 6px;
|
||||
}
|
||||
|
||||
.commentAction, .commentDelete {
|
||||
width: 1%;
|
||||
white-space: nowrap;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.addCommentText, .commentText {
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
.commentAction input[type="submit"] {
|
||||
margin-top: 8px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.commentDelete {
|
||||
text-align: center;
|
||||
padding: 5px 8px 5px 22px !important;
|
||||
background: url(images/nuke.png) 2px center no-repeat;
|
||||
}
|
||||
|
||||
.commentDelete .optbox {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#newRating td {
|
||||
padding-top: 10px !important;
|
||||
padding-bottom: 10px !important;
|
||||
}
|
||||
|
||||
#newRating td:first-child {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#newRating select {
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
#myRating td:empty {
|
||||
padding: 0 !important;
|
||||
border-top: none !important;
|
||||
border-bottom: none !important;
|
||||
}
|
||||
|
||||
#myRating td:empty::after { /* hides My Ratings row when Ratings disabled */
|
||||
min-height: 1px !important;
|
||||
}
|
||||
|
||||
.commentRating img {
|
||||
margin: 0 0 2px;
|
||||
padding: 0;
|
||||
font-size: 14pt;
|
||||
color: #FF7200;
|
||||
text-shadow: 0 0 1px #900;
|
||||
filter: drop-shadow(0 0 1px rgba(153, 51, 0, 0.6));
|
||||
}
|
||||
|
||||
.commentsSection {
|
||||
background: linear-gradient(to bottom, #545 0%, #434 100%);
|
||||
margin: 0 0 10px 0;
|
||||
padding: 0 10px 10px;
|
||||
border: 1px solid #101;
|
||||
color: #ddd;
|
||||
border-radius: 4px;
|
||||
box-shadow: inset 0 0 3px 0 #101;
|
||||
word-wrap: break-word;
|
||||
filter: drop-shadow(0 0 1px #515);
|
||||
}
|
||||
|
||||
/* end Comments section */
|
||||
|
||||
/* MS Edge fix */
|
||||
|
||||
_:-ms-lang(x), * {
|
||||
@ -2283,7 +2493,7 @@ _:-ms-lang(x), input[type="radio"], input[type="checkbox"] {
|
||||
}
|
||||
|
||||
input[type="checkbox"]:hover, input[type="checkbox"]:focus {
|
||||
filter: sepia(100%) invert(100%) hue-rotate(58deg) brightness(80%) drop-shadow(0 0 3px f60) !important;
|
||||
filter: sepia(100%) invert(100%) hue-rotate(58deg) brightness(80%) drop-shadow(0 0 3px #f60) !important;
|
||||
}
|
||||
|
||||
/* end Edge fix */
|
||||
@ -2329,7 +2539,7 @@ input[type="checkbox"]:hover, input[type="checkbox"]:focus {
|
||||
margin: 5px;
|
||||
}
|
||||
|
||||
table.snarkDirInfo {
|
||||
.snarkDirInfo {
|
||||
margin-top: 6px !important;
|
||||
}
|
||||
|
||||
@ -2337,15 +2547,25 @@ table.snarkDirInfo {
|
||||
max-height: 20px;
|
||||
}
|
||||
|
||||
.snarkTorrents td:nth-child(2) {
|
||||
.snarkTorrentStatus {
|
||||
white-space: nowrap;
|
||||
font-weight: bold !important;
|
||||
}
|
||||
|
||||
.snarkTorrents a, .snarkTorrentETA, .snarkTorrents tfoot th, .peerinfo td, .snarkTorrents td, .snarkTorrentInfo td, .snarkDirInfo td {
|
||||
font-size: 8pt;
|
||||
}
|
||||
|
||||
.snarkTorrents td:first-child img {
|
||||
.snarkTorrents thead img {
|
||||
max-height: 20px;
|
||||
}
|
||||
|
||||
.snarkGraphicStatus {
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
td.snarkGraphicStatus img {
|
||||
max-height: 16px;
|
||||
}
|
||||
|
||||
@ -2411,6 +2631,10 @@ b.alwaysShow {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.knownTracker td:nth-child(3) a {
|
||||
max-width: 200px;
|
||||
}
|
||||
|
||||
#trackerselect td a {
|
||||
max-width: 350px;
|
||||
}
|
||||
@ -2542,7 +2766,7 @@ th, td, .choked, .unchoked {
|
||||
letter-spacing: 0 !important;
|
||||
}
|
||||
|
||||
body, .snarkTorrents td, .snarkAddInfo, th, td, .snarkFileName, .snarkFileStatus {
|
||||
body, .snarkTorrents td, .snarkAddInfo, th, td, .snarkFileName, .snarkFileStatus, .snarkCommentInfo textarea {
|
||||
font-family: "Droid Sans", "Noto Sans", Ubuntu, "Segoe UI", "DejaVu Sans", Verdana, "Lucida Grande", Helvetica, sans-serif;
|
||||
font-size: 10pt !important;
|
||||
}
|
||||
@ -2593,6 +2817,10 @@ input[type="submit"], input[type="reset"], select, select option, button, a.cont
|
||||
max-width: none;
|
||||
}
|
||||
|
||||
.snarkTorrentAction {
|
||||
padding-right: 3px !important;
|
||||
}
|
||||
|
||||
.snarkTorrents tt {
|
||||
font-size: 10pt;
|
||||
color: #cc0;
|
||||
@ -2605,6 +2833,15 @@ input[type="submit"], input[type="reset"], select, select option, button, a.cont
|
||||
margin: 1px 3px !important;
|
||||
}
|
||||
|
||||
.priority {
|
||||
font-size: 8pt;
|
||||
vertical-align: middle;
|
||||
text-align: right !important;
|
||||
padding-right: 15px;
|
||||
white-space: nowrap;
|
||||
width: 1%;
|
||||
}
|
||||
|
||||
tt, .snarkMessages, input, textarea {
|
||||
font-size: 9pt !important;
|
||||
}
|
||||
@ -2672,187 +2909,3 @@ select {
|
||||
|
||||
/* end responsive layout */
|
||||
|
||||
/* Comments Section */
|
||||
/* TODO: merge with other rules where applicable */
|
||||
|
||||
.snarkCommentInfo, .snarkComments {
|
||||
margin: 10px 0 0 !important;
|
||||
background: #270027 none repeat scroll 0 0;
|
||||
border: 1px solid #101;
|
||||
filter: drop-shadow(0px 0 1px rgba(16, 8, 16, 0.7));
|
||||
}
|
||||
|
||||
.snarkCommentInfo th {
|
||||
background: url(images/comment.png) 8px center no-repeat, linear-gradient(to bottom, #202, #101);
|
||||
padding: 8px 5px 8px 30px !important;
|
||||
}
|
||||
|
||||
.snarkCommentInfo tr:nth-child(even), .snarkComments tr:nth-child(even) {
|
||||
background: #351933;
|
||||
border-bottom: 1px solid #101;
|
||||
}
|
||||
|
||||
.snarkCommentInfo tr:nth-child(odd), .snarkComments tr:nth-child(odd) {
|
||||
background: #270027;
|
||||
border-bottom: 1px solid #101;
|
||||
}
|
||||
|
||||
.snarkCommentInfo th {
|
||||
padding: 8px 5px;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td, .snarkComments td {
|
||||
padding: 8px 5px;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td:first-child {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td:first-child {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td:first-child::after, .snarkComments td:first-child::after {
|
||||
content: "";
|
||||
display: inline-block;
|
||||
min-height: 32px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.snarkCommentInfo input.accept {
|
||||
float: right;
|
||||
margin-right: 5px !important;
|
||||
}
|
||||
|
||||
.snarkCommentInfo textarea { /* remember to set 10pt @ > 1400px */
|
||||
width: 100%;
|
||||
min-height: 64px;
|
||||
height: 64px;
|
||||
resize: vertical;
|
||||
}
|
||||
|
||||
.snarkComments th {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.commentRating, .commentAuthor {
|
||||
width: 1%;
|
||||
}
|
||||
|
||||
#nameRequired {
|
||||
float: right;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.commentRating {
|
||||
padding-right: 10px !important;
|
||||
}
|
||||
|
||||
.commentRating img {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
}
|
||||
|
||||
.commentDate {
|
||||
width: 100px;
|
||||
background: url(images/clock.png) left center no-repeat;
|
||||
padding-left: 20px !important;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td:first-child, .snarkComments td:first-child {
|
||||
width: 160px !important;
|
||||
padding-right: 2px;
|
||||
}
|
||||
|
||||
.snarkCommentInfo td:last-child, .snarkComments td:last-child {
|
||||
width: 1% !important;
|
||||
}
|
||||
|
||||
.snarkComments td {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.commentAuthorName {
|
||||
background: url(images/author.png) left center no-repeat;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
td.commentText {
|
||||
white-space: normal;
|
||||
text-align: justify;
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
.commentWrapper {
|
||||
border: 1px solid #101;
|
||||
margin: 2px 0;
|
||||
padding: 8px 10px 8px 26px;
|
||||
border-radius: 3px;
|
||||
background: #303;
|
||||
box-shadow: inset 0 0 0 1px #515, 0 0 1px 0 rgba(0,0,0,0.3);
|
||||
background: url(images/comment.png) 6px center no-repeat #303;
|
||||
background-blend-mode: luminosity;
|
||||
}
|
||||
|
||||
.snarkComments select {
|
||||
margin-right: 0 !important;
|
||||
}
|
||||
|
||||
#commentDeleteAction {
|
||||
background: linear-gradient(to bottom, #202, #101);
|
||||
box-shadow: inset 0 0 0 1px #303;
|
||||
}
|
||||
|
||||
#commentDeleteAction td {
|
||||
padding-right: 6px;
|
||||
}
|
||||
|
||||
.commentAction, .commentDelete {
|
||||
width: 1%;
|
||||
white-space: nowrap;
|
||||
min-width: 180px !important;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.addCommentText, .commentText {
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
.commentAction input[type="submit"] {
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.commentDelete {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#newRating td {
|
||||
padding-top: 10px !important;
|
||||
padding-bottom: 10px !important;
|
||||
}
|
||||
|
||||
#myRating td:empty {
|
||||
padding: 0 !important;
|
||||
border-top: none !important;
|
||||
border-bottom: none !important;
|
||||
}
|
||||
|
||||
#myRating td:empty::after { /* hides My Ratings row when Ratings disabled */
|
||||
min-height: 1px !important;
|
||||
}
|
||||
|
||||
.commentRating img {
|
||||
margin: 0 0 4px;
|
||||
padding: 0;
|
||||
font-size: 14pt;
|
||||
color: #FF7200;
|
||||
text-shadow: 0 0 1px #900;
|
||||
filter: none;
|
||||
}
|
||||
|
||||
/* end Comments section */
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user