From fe394b0b46a1549b47623ead1458f382d44d4983 Mon Sep 17 00:00:00 2001
From: z3d <z3d@mail.i2p>
Date: Tue, 21 Jul 2009 04:33:13 +0000
Subject: [PATCH] Add a preliminary undercoat to I2PSnark UI.

---
 .../src/org/klomp/snark/SnarkManager.java     |   2 +-
 .../org/klomp/snark/web/I2PSnarkServlet.java  |  93 ++------------
 apps/i2psnark/snark.css                       |  93 ++++++++++++++
 installer/resources/themes/console/snark.css  | 114 ++++++++++++++++++
 4 files changed, 221 insertions(+), 81 deletions(-)
 create mode 100644 apps/i2psnark/snark.css
 create mode 100644 installer/resources/themes/console/snark.css

diff --git a/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java b/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java
index 733c54fdff..ccdfb14608 100644
--- a/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java
+++ b/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java
@@ -702,7 +702,7 @@ public class SnarkManager implements Snark.CompleteListener {
 //       , "mastertracker", "http://VzXD~stRKbL3MOmeTn1iaCQ0CFyTmuFHiKYyo0Rd~dFPZFCYH-22rT8JD7i-C2xzYFa4jT5U2aqHzHI-Jre4HL3Ri5hFtZrLk2ax3ji7Qfb6qPnuYkuiF2E2UDmKUOppI8d9Ye7tjdhQVCy0izn55tBaB-U7UWdcvSK2i85sauyw3G0Gfads1Rvy5-CAe2paqyYATcDmGjpUNLoxbfv9KH1KmwRTNH6k1v4PyWYYnhbT39WfKMbBjSxVQRdi19cyJrULSWhjxaQfJHeWx5Z8Ev4bSPByBeQBFl2~4vqy0S5RypINsRSa3MZdbiAAyn5tr5slWR6QdoqY3qBQgBJFZppy-3iWkFqqKgSxCPundF8gdDLC5ddizl~KYcYKl42y9SGFHIukH-TZs8~em0~iahzsqWVRks3zRG~tlBcX2U3M2~OJs~C33-NKhyfZT7-XFBREvb8Szmd~p66jDxrwOnKaku-G6DyoQipJqIz4VHmY9-y5T8RrUcJcM-5lVoMpAAAA.i2p/announce.php=http://tracker.mastertracker.i2p/"
 //       , "Galen", "http://5jpwQMI5FT303YwKa5Rd38PYSX04pbIKgTaKQsWbqoWjIfoancFdWCShXHLI5G5ofOb0Xu11vl2VEMyPsg1jUFYSVnu4-VfMe3y4TKTR6DTpetWrnmEK6m2UXh91J5DZJAKlgmO7UdsFlBkQfR2rY853-DfbJtQIFl91tbsmjcA5CGQi4VxMFyIkBzv-pCsuLQiZqOwWasTlnzey8GcDAPG1LDcvfflGV~6F5no9mnuisZPteZKlrv~~TDoXTj74QjByWc4EOYlwqK8sbU9aOvz~s31XzErbPTfwiawiaZ0RUI-IDrKgyvmj0neuFTWgjRGVTH8bz7cBZIc3viy6ioD-eMQOrXaQL0TCWZUelRwHRvgdPiQrxdYQs7ixkajeHzxi-Pq0EMm5Vbh3j3Q9kfUFW3JjFDA-MLB4g6XnjCbM5J1rC0oOBDCIEfhQkszru5cyLjHiZ5yeA0VThgu~c7xKHybv~OMXION7V8pBKOgET7ZgAkw1xgYe3Kkyq5syAAAA.i2p/tr/announce.php=http://galen.i2p/tr/"
        , "crstrack", "http://b4G9sCdtfvccMAXh~SaZrPqVQNyGQbhbYMbw6supq2XGzbjU4NcOmjFI0vxQ8w1L05twmkOvg5QERcX6Mi8NQrWnR0stLExu2LucUXg1aYjnggxIR8TIOGygZVIMV3STKH4UQXD--wz0BUrqaLxPhrm2Eh9Hwc8TdB6Na4ShQUq5Xm8D4elzNUVdpM~RtChEyJWuQvoGAHY3ppX-EJJLkiSr1t77neS4Lc-KofMVmgI9a2tSSpNAagBiNI6Ak9L1T0F9uxeDfEG9bBSQPNMOSUbAoEcNxtt7xOW~cNOAyMyGydwPMnrQ5kIYPY8Pd3XudEko970vE0D6gO19yoBMJpKx6Dh50DGgybLQ9CpRaynh2zPULTHxm8rneOGRcQo8D3mE7FQ92m54~SvfjXjD2TwAVGI~ae~n9HDxt8uxOecAAvjjJ3TD4XM63Q9TmB38RmGNzNLDBQMEmJFpqQU8YeuhnS54IVdUoVQFqui5SfDeLXlSkh4vYoMU66pvBfWbAAAA.i2p/tracker/announce.php=http://crstrack.i2p/tracker/"
-       , "Postman2", "http://tracker2.postman.i2p/announce.php=http://tracker2.postman.i2p/"
+       , "PaTracker", "http://tracker2.postman.i2p/announce.php=http://tracker2.postman.i2p/"
     };
     
     /** comma delimited list of name=announceURL=baseURL for the trackers to be displayed */
diff --git a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java
index 85497d4f73..40f5e61cc1 100644
--- a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java
+++ b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java
@@ -83,12 +83,9 @@ public class I2PSnarkServlet extends HttpServlet {
         out.write("<meta http-equiv=\"refresh\" content=\"60;" + req.getRequestURI() + peerString + "\">\n");
         out.write(HEADER);
         
-        out.write("<table border=\"0\" width=\"100%\">\n");
-        out.write("<tr><td width=\"20%\" class=\"snarkTitle\" valign=\"top\" align=\"left\">");
-        out.write("I2PSnark<br />\n");
-        out.write("<table border=\"0\" width=\"100%\">\n");
-        out.write("<tr><td><a href=\"" + req.getRequestURI() + peerString + "\" class=\"snarkRefresh\">Refresh</a>\n");
-        out.write("<td><a href=\"http://forum.i2p/viewforum.php?f=21\" class=\"snarkRefresh\">Forum</a>\n");
+out.write("<div class=\"page\"><table border=\"0\" width=\"100%\"><tr><td align=\"center\" valign=\"top\" class=\"snarkTitle\">I2PSnark<br>Anonymous BitTorrent Client for I2P<hr /></hr></td></tr>");
+        out.write("<tr><td align=\"center\"><a href=\"" + req.getRequestURI() + peerString + "\" class=\"snarkRefresh\">Refresh</a>");
+        out.write(" | <a href=\"http://forum.i2p/viewforum.php?f=21\" class=\"snarkRefresh\">Forum</a>\n");
         int count = 0;
         Map trackers = _manager.getTrackers();
         for (Iterator iter = trackers.entrySet().iterator(); iter.hasNext(); ) {
@@ -100,19 +97,19 @@ public class I2PSnarkServlet extends HttpServlet {
                 continue;
             baseURL = baseURL.substring(e + 1);
             if (count++ % 2 == 0)
-                out.write("<tr>");
-            out.write("<td><a href=\"" + baseURL + "\" class=\"snarkRefresh\">" + name + "</a>\n");
+                out.write("");
+            out.write(" | <a href=\"" + baseURL + "\" class=\"snarkRefresh\">" + name + "</a>");
         }
         if (count % 2 == 1)
-            out.write("<td>&nbsp;\n");
+            out.write("");
         out.write("</table>\n");
-        out.write("</td><td width=\"80%\" class=\"snarkMessages\" valign=\"top\" align=\"left\"><pre>");
+        out.write("<div class=\"snarkMessages\"><table><tr><td valign=\"top\" align=\"left\"><pre>");
         List msgs = _manager.getMessages();
         for (int i = msgs.size()-1; i >= 0; i--) {
             String msg = (String)msgs.get(i);
             out.write(msg + "\n");
         }
-        out.write("</pre></td></tr></table>\n");
+        out.write("</pre></td></tr></table></div>\n");
 
         List snarks = getSortedSnarks(req);
         String uri = req.getRequestURI();
@@ -791,72 +788,8 @@ public class I2PSnarkServlet extends HttpServlet {
                                                "<head>\n" +
                                                "<title>I2PSnark - anonymous bittorrent</title>\n";
                                          
-    private static final String HEADER = "<style>\n" +
-                                         "body {\n" +
-                                         "	background-color: #C7CFB4;\n" +
-                                         "}\n" +
-                                         ".snarkTitle {\n" +
-                                         "	text-align: left;\n" +
-                                         "	float: left;\n" +
-                                         "	margin: 0px 0px 5px 5px;\n" +
-                                         "	display: inline;\n" +
-                                         "	font-size: 16pt;\n" +
-                                         "	font-weight: bold;\n" +
-                                         "}\n" +
-                                         ".snarkRefresh {\n" +
-                                         "                  font-size: 10pt;\n" +
-                                         "}\n" +
-                                         ".snarkMessages {\n" +
-                                         "	border: none;\n" +
-                                         "                  background-color: #CECFC6;\n" +
-                                         "                  font-family: monospace;\n" +
-                                         "                  font-size: 10pt;\n" +
-                                         "                  font-weight: 100;\n" +
-                                         "                  width: 100%;\n" +
-                                         "                  text-align: left;\n" +
-                                         "                  margin: 0px 0px 0px 0px;\n" +
-                                         "                  border: 0px;\n" +
-                                         "                  padding: 5px;\n" +
-                                         "                  border-width: 0px;\n" +
-                                         "                  border-spacing: 0px;\n" +
-                                         "}\n" +
-                                         "table {\n" +
-                                         "	margin: 0px 0px 0px 0px;\n" +
-                                         "	border: 0px;\n" +
-                                         "	padding: 0px;\n" +
-                                         "	border-width: 0px;\n" +
-                                         "	border-spacing: 0px;\n" +
-                                         "}\n" +
-                                         "th {\n" +
-                                         "	background-color: #C7D5D5;\n" +
-                                         "	padding: 0px 7px 0px 3px;\n" +
-                                         "}\n" +
-                                         "td {\n" +
-                                         "	padding: 0px 7px 0px 3px;\n" +
-                                         "}\n" +
-                                         ".snarkTorrentEven {\n" +
-                                         "	background-color: #E7E7E7;\n" +
-                                         "}\n" +
-                                         ".snarkTorrentOdd {\n" +
-                                         "	background-color: #DDDDCC;\n" +
-                                         "}\n" +
-                                         ".snarkNewTorrent {\n" +
-                                         "	font-size: 10pt;\n" +
-                                         "}\n" +
-                                         ".snarkAddInfo {\n" +
-                                         "	font-size: 10pt;\n" +
-                                         "}\n" +
-                                         ".snarkConfigTitle {\n" +
-                                         "	font-size: 12pt;\n" +
-                                         "                  font-weight: bold;\n" +
-                                         "}\n" +
-                                         ".snarkConfig {\n" +
-                                         "                  font-size: 10pt;\n" +
-                                         "}\n" +
-                                         "</style>\n" +
-                                         "</head>\n" +
-                                         "<body>\n";
-
+    private static final String HEADER = "<link href=\"../themes/console/snark.css\" rel=\"stylesheet\" type=\"text/css\" />";
+                                       
 
     private static final String TABLE_HEADER = "<table border=\"0\" class=\"snarkTorrents\" width=\"100%\" cellpadding=\"0 10px\">\n" +
                                                "<thead>\n" +
@@ -871,12 +804,12 @@ public class I2PSnarkServlet extends HttpServlet {
                                                "    <th align=\"right\" valign=\"top\">Up Rate</th>\n";
     
    private static final String TABLE_EMPTY  = "<tr class=\"snarkTorrentEven\">" +
-                                              "<td class=\"snarkTorrentEven\" align=\"left\"" +
-                                              "    valign=\"top\" colspan=\"8\">No torrents</td></tr>\n";
+                                              "<td class=\"snarkTorrentEven\" align=\"center\"" +
+                                              "    valign=\"top\" colspan=\"8\"><i>No torrents</i></td></tr>\n";
 
     private static final String TABLE_FOOTER = "</table>\n";
     
-    private static final String FOOTER = "</body></html>";
+    private static final String FOOTER = "</div></div></body></html>";
 
 /** inner class, don't bother reindenting */
 private static class FetchAndAdd implements Runnable {
diff --git a/apps/i2psnark/snark.css b/apps/i2psnark/snark.css
new file mode 100644
index 0000000000..40817a68d9
--- /dev/null
+++ b/apps/i2psnark/snark.css
@@ -0,0 +1,93 @@
+body {
+	background-color: #eef;
+	color:#001;
+	font-family:"Lucida Sans Unicode", "Bitstream Vera Sans", Verdana, Tahoma, Helvetica, sans-serif;
+}
+
+.snarkTitle {
+	text-align: left;
+	float: left;
+	margin: 0px 0px 5px 5px;
+	display: inline;
+	font-size: 16pt;
+	font-weight: bold;
+}
+.snarkRefresh {
+                  font-size: 10pt;
+}
+.snarkMessages {
+	border: none;
+  background-color: #ddf;
+  font-family: monospace;
+  font-size: 10pt;
+  font-weight: 100;
+  width: 100%;
+  text-align: left;
+  margin: 0px 0px 15px 15px;
+  border: 0px;
+  padding: 5px;
+  border-width: 0px;
+  border-spacing: 0px;
+  -moz-border-radius: 4px;
+  -khtml-border-radius: 4px;
+  border-radius: 4px;
+  border: 1px solid #001;
+}
+table {
+	margin: 0px 0px 0px 0px;
+	border: 0px;
+	padding: 0px;
+	border-width: 0px;
+	border-spacing: 0px;
+}
+th {
+	background-color: #C7D5D5;
+	padding: 5px;
+  font-size: 9pt;
+}
+td {
+	padding: 5px;
+}
+.snarkTorrentEven {
+	background-color: #E7E7E7;
+}
+.snarkTorrentOdd {
+	background-color: #DDDDCC;
+}
+.snarkNewTorrent {
+	font-size: 10pt;
+}
+.snarkAddInfo {
+	font-size: 10pt;
+  line-height: 130% !important;
+}
+.snarkConfigTitle {
+	font-size: 11pt;
+                  font-weight: bold;
+}
+.snarkConfig {
+                  font-size: 10pt;
+}
+
+.page {
+	background-color: #fff;
+	color:#001;
+  margin: 20px;
+  padding: 20px 20px 0 20px;
+  -moz-border-radius: 4px;
+  -khtml-border-radius: 4px;
+  border-radius: 4px;
+  border: 1px solid #001;
+  font-size: 9pt !important;
+  line-height: 160% !important;
+  -moz-box-shadow: inset 0px 0px 1px 0px #002;
+  text-align: center;
+}
+
+form {
+  line-height: 300%
+}
+
+p { 
+  line-height: 150%
+}
\ No newline at end of file
diff --git a/installer/resources/themes/console/snark.css b/installer/resources/themes/console/snark.css
new file mode 100644
index 0000000000..a6a66852ab
--- /dev/null
+++ b/installer/resources/themes/console/snark.css
@@ -0,0 +1,114 @@
+body {
+	background-color: #eef;
+	color:#001;
+	font-family:"Lucida Sans Unicode", "Bitstream Vera Sans", Verdana, Tahoma, Helvetica, sans-serif;
+  font-size: 9pt;
+}
+
+/*
+.snarkTitle {
+	text-align: left;
+	float: left;
+	margin: 0px 0px 5px 5px;
+	display: inline;
+	font-size: 16pt;
+	font-weight: bold;
+}
+*/
+
+.snarkTitle {
+	font-size: 16pt;
+	font-weight: bold;
+	text-align: center;
+}
+
+.snarkRefresh {
+  font-size: 9pt;
+}
+
+.snarkMessages {
+	border: none;
+  background-color: #9f9;
+  font-family: monospace;
+  font-size: 10pt;
+  font-weight: bold;
+/*  width: 100%; */
+  text-align: left;
+  margin: 0 0 15px 0;
+  border: 0px;
+  padding: 5px;
+  border-width: 0px;
+  border-spacing: 0px;
+  -moz-border-radius: 4px;
+  -khtml-border-radius: 4px;
+  border-radius: 4px;
+  border: 2px inset #770;
+  overflow-x: scroll;
+}
+
+table {
+	margin: 0px 0px 20px 0px;
+	border: 0px;
+	padding: 0px;
+	border-width: 0px;
+	border-spacing: 0px;
+}
+th {
+	background-color: #C7D5D5;
+	padding: 5px;
+  font-size: 9pt;
+}
+td {
+	padding: 5px;
+}
+.snarkTorrentEven {
+	background-color: #bbf;
+  font-size: 8pt;
+}
+.snarkTorrentOdd {
+	background-color: #ddf;
+  font-size: 8pt;
+}
+.snarkNewTorrent {
+	font-size: 10pt;
+}
+.snarkAddInfo {
+	font-size: 10pt;
+  line-height: 130% !important;
+}
+.snarkConfigTitle {
+	font-size: 11pt;
+  font-weight: bold;
+  text-decoration: underline;
+}
+
+.snarkConfig {
+ font-size: 10pt;
+}
+
+.page {
+	background-color: #fff;
+	color:#001;
+  margin: 20px;
+  padding: 20px 20px 0 20px;
+  -moz-border-radius: 4px;
+  -khtml-border-radius: 4px;
+  border-radius: 4px;
+  border: 1px solid #001;
+  font-size: 9pt !important;
+  line-height: 160% !important;
+  -moz-box-shadow: inset 0px 0px 1px 0px #002;
+  text-align: center;
+}
+
+form {
+  line-height: 300%
+}
+
+p { 
+  line-height: 150%
+}
+
+a:link {
+  padding 5px;
+}
\ No newline at end of file
-- 
GitLab