From 718f73ebb1000572d8b14aab9dbc9553d5faaf53 Mon Sep 17 00:00:00 2001 From: z3d Date: Thu, 23 Jul 2009 17:01:43 +0000 Subject: [PATCH] I2PSnark UI changes: add a splash of color! Fix for light i2ptunnels theme. --- .../src/org/klomp/snark/SnarkManager.java | 34 ++-- .../org/klomp/snark/web/I2PSnarkServlet.java | 24 +-- .../themes/console/images/greentile.png | Bin 0 -> 1383 bytes .../themes/console/images/orangetile.png | Bin 0 -> 1210 bytes .../themes/console/images/orangetilealt.png | Bin 0 -> 1282 bytes .../themes/console/images/redtile.png | Bin 0 -> 1477 bytes .../console/images/tabletitleorange.png | Bin 0 -> 202 bytes .../themes/console/images/yellowtile.png | Bin 0 -> 1313 bytes .../themes/console/light/default.css | 9 +- installer/resources/themes/console/snark.css | 172 ++++++++++++++---- 10 files changed, 166 insertions(+), 73 deletions(-) create mode 100644 installer/resources/themes/console/images/greentile.png create mode 100644 installer/resources/themes/console/images/orangetile.png create mode 100644 installer/resources/themes/console/images/orangetilealt.png create mode 100644 installer/resources/themes/console/images/redtile.png create mode 100644 installer/resources/themes/console/images/tabletitleorange.png create mode 100644 installer/resources/themes/console/images/yellowtile.png diff --git a/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java b/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java index 234ba80e1..31eedd330 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java +++ b/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java @@ -339,20 +339,20 @@ public class SnarkManager implements Snark.CompleteListener { } if (_util.shouldUseOpenTrackers() != useOpenTrackers) { _config.setProperty(I2PSnarkUtil.PROP_USE_OPENTRACKERS, useOpenTrackers + ""); - addMessage((useOpenTrackers ? "En" : "Dis") + "abled open trackers - torrent restart required to take effect"); + addMessage((useOpenTrackers ? "En" : "Dis") + "abled open trackers - torrent restart required to take effect."); changed = true; } if (openTrackers != null) { if (openTrackers.trim().length() > 0 && !openTrackers.trim().equals(_util.getOpenTrackerString())) { _config.setProperty(I2PSnarkUtil.PROP_OPENTRACKERS, openTrackers.trim()); - addMessage("Open Tracker list changed - torrent restart required to take effect"); + addMessage("Open Tracker list changed - torrent restart required to take effect."); changed = true; } } if (changed) { saveConfig(); } else { - addMessage("Configuration unchanged"); + addMessage("Configuration unchanged."); } } @@ -362,7 +362,7 @@ public class SnarkManager implements Snark.CompleteListener { DataHelper.storeProps(_config, _configFile); } } catch (IOException ioe) { - addMessage("Unable to save the config to '" + _configFile.getAbsolutePath() + "'"); + addMessage("Unable to save the config to '" + _configFile.getAbsolutePath() + "'."); } } @@ -383,7 +383,7 @@ public class SnarkManager implements Snark.CompleteListener { addMessage("Connecting to I2P"); boolean ok = _util.connect(); if (!ok) { - addMessage("Error connecting to I2P - check your I2CP settings"); + addMessage("Error connecting to I2P - check your I2CP settings!"); return; } } @@ -446,9 +446,9 @@ public class SnarkManager implements Snark.CompleteListener { File f = new File(filename); if (!dontAutoStart && shouldAutoStart()) { torrent.startTorrent(); - addMessage("Torrent added and started: '" + f.getName() + "'"); + addMessage("Torrent added and started: '" + f.getName() + "'."); } else { - addMessage("Torrent added: '" + f.getName() + "'"); + addMessage("Torrent added: '" + f.getName() + "'."); } } @@ -544,24 +544,24 @@ public class SnarkManager implements Snark.CompleteListener { // basic validation of url if ((!announce.startsWith("http://")) || (announce.indexOf(".i2p/") < 0)) // need to do better than this - return "Non-i2p tracker in " + info.getName() + ", deleting it"; + return "Non-i2p tracker in " + info.getName() + ", removing it from our list of trackers!"; List files = info.getFiles(); if ( (files != null) && (files.size() > MAX_FILES_PER_TORRENT) ) { - return "Too many files in " + info.getName() + " (" + files.size() + "), deleting it"; + return "Too many files in " + info.getName() + " (" + files.size() + "), deleting it!"; } else if (info.getPieces() <= 0) { - return "No pieces in " + info.getName() + "? deleting it"; + return "No pieces in " + info.getName() + "? deleting it!"; } else if (info.getPieceLength(0) > Storage.MAX_PIECE_SIZE) { return "Pieces are too large in " + info.getName() + " (" + DataHelper.formatSize(info.getPieceLength(0)) + - "B), deleting it"; + "B), deleting it."; } else if (info.getTotalLength() > Storage.MAX_TOTAL_SIZE) { System.out.println("torrent info: " + info.toString()); List lengths = info.getLengths(); if (lengths != null) for (int i = 0; i < lengths.size(); i++) - System.out.println("File " + i + " is " + lengths.get(i) + " long"); + System.out.println("File " + i + " is " + lengths.get(i) + " long."); return "Torrents larger than " + DataHelper.formatSize(Storage.MAX_TOTAL_SIZE) + - "B are not supported yet (because we're paranoid): " + info.getName() + ", deleting it"; + "B are not supported yet (because we're paranoid): " + info.getName() + ", deleting it!"; } else { // ok return null; @@ -598,7 +598,7 @@ public class SnarkManager implements Snark.CompleteListener { ////_util. } if (!wasStopped) - addMessage("Torrent stopped: '" + sfile.getName() + "'"); + addMessage("Torrent stopped: '" + sfile.getName() + "'."); } return torrent; } @@ -613,7 +613,7 @@ public class SnarkManager implements Snark.CompleteListener { torrentFile.delete(); if (torrent.storage != null) removeTorrentStatus(torrent.storage.getMetaInfo()); - addMessage("Torrent removed: '" + torrentFile.getName() + "'"); + addMessage("Torrent removed: '" + torrentFile.getName() + "'."); } } @@ -646,7 +646,7 @@ public class SnarkManager implements Snark.CompleteListener { public void torrentComplete(Snark snark) { File f = new File(snark.torrent); long len = snark.meta.getTotalLength(); - addMessage("Download complete of " + f.getName() + " (size: " + DataHelper.formatSize(len) + "B)"); + addMessage("Download finished: " + f.getName() + " (size: " + DataHelper.formatSize(len) + "B)"); updateStatus(snark); } @@ -674,7 +674,7 @@ public class SnarkManager implements Snark.CompleteListener { // already known. noop } else { if (shouldAutoStart() && !_util.connect()) - addMessage("Unable to connect to I2P"); + addMessage("Unable to connect to I2P!"); addTorrent((String)foundNames.get(i), !shouldAutoStart()); } } 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 7f291c233..9aef0cd93 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java +++ b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java @@ -83,8 +83,8 @@ public class I2PSnarkServlet extends HttpServlet { out.write("\n"); out.write(HEADER); out.write(""); - out.write("
\"I2PSnark
"); - out.write("Forum\n"); + out.write("
\"I2PSnark
"); + out.write("Forum\n"); Map trackers = _manager.getTrackers(); for (Iterator iter = trackers.entrySet().iterator(); iter.hasNext(); ) { Map.Entry entry = (Map.Entry)iter.next(); @@ -94,10 +94,10 @@ public class I2PSnarkServlet extends HttpServlet { if (e < 0) continue; baseURL = baseURL.substring(e + 1); - out.write("" + name + ""); + out.write("" + name + ""); } out.write("
\n"); - out.write("
");
+        out.write("
");
         List msgs = _manager.getMessages();
         for (int i = msgs.size()-1; i >= 0; i--) {
             String msg = (String)msgs.get(i);
@@ -353,7 +353,7 @@ public class I2PSnarkServlet extends HttpServlet {
                 }
             }
         } else if ("StopAll".equals(action)) {
-            _manager.addMessage("Stopping all torrents and closing the I2P tunnel");
+            _manager.addMessage("Stopping all torrents and closing the I2P tunnel.");
             List snarks = getSortedSnarks(req);
             for (int i = 0; i < snarks.size(); i++) {
                 Snark snark = (Snark)snarks.get(i);
@@ -362,10 +362,10 @@ public class I2PSnarkServlet extends HttpServlet {
             }
             if (_manager.util().connected()) {
                 _manager.util().disconnect();
-                _manager.addMessage("I2P tunnel closed");
+                _manager.addMessage("I2P tunnel closed.");
             }
         } else if ("StartAll".equals(action)) {
-            _manager.addMessage("Opening the I2P tunnel and starting all torrents");
+            _manager.addMessage("Opening the I2P tunnel and starting all torrents.");
             List snarks = getSortedSnarks(req);
             for (int i = 0; i < snarks.size(); i++) {
                 Snark snark = (Snark)snarks.get(i);
@@ -510,9 +510,9 @@ public class I2PSnarkServlet extends HttpServlet {
                 if (e < 0)
                     continue;
                 baseURL = baseURL.substring(e + 1);
-                out.write("   (Details)");
+                out.write("\" title=\"" + name + " Tracker\">Details]");
                 break;
             }
         }
@@ -652,7 +652,7 @@ public class I2PSnarkServlet extends HttpServlet {
         // *not* enctype="multipart/form-data", so that the input type=file sends the filename, not the file
         out.write("
\n"); out.write("\n"); - out.write("
Add Torrent:
\n"); + out.write("
Add Torrent:
\n"); out.write("From URL : \n"); // not supporting from file at the moment, since the file name passed isn't always absolute (so it may not resolve) //out.write("From file:
\n"); @@ -668,7 +668,7 @@ public class I2PSnarkServlet extends HttpServlet { if (baseFile == null) baseFile = ""; - out.write("
\n"); + out.write("
\n"); // *not* enctype="multipart/form-data", so that the input type=file sends the filename, not the file out.write("\n"); out.write("\n"); @@ -704,7 +704,7 @@ public class I2PSnarkServlet extends HttpServlet { //int seedPct = 0; out.write("\n"); - out.write("
\n"); + out.write("
\n"); out.write("\n"); out.write("Configuration:
\n"); out.write("Data directory: {5xg#CVYSX`U5t1k ziy9G zoishR>}Klp*#A>wk2=ra%3pt>Z+pn)RdxMf(XyLgXY79Wf6ZR~?e;bDe+=f8CKtY4 zKJBNjp5ZyKM{88D6Pp&Li{9T~x%0=QpLKip{4ZaV5sh6TP7_chj`HWn@nwHastEj7 zogb)wsxyDBM*G$1X|5Yv%Gc^#Ppev8|4TRT-}&eK_Lfh%!@ry_FkQSx;S|>*`V&Ea zeq4V3_ig&yclrE#&)>fLcmMr+-#(w4|9kIT$@}ru*80!t=kIwT6T5GIS>Ly1dv3c| z-#z*M_PfdFpVhAab|o$Q)y>r4#oI5>-MjK{>#SRqUzXjAyB{`t?aEMv?5NVyB(`Zns}4!bwG5HgCuTj*S0Y&_i5B+zhkg7teZ3i*`q|6(7HqW4*gD;$ z+>Gu0yL0Jl{gO@Qe_=bj^j!Mlzjqyrv!DH}s5#%ev-VondHeb+d2{^cSodD8v)b-g zz4+?-u?CT&bnv+9&Xq-<>!J~_Uqz%zMZ$o5BdD_$2|Vezq9gs z%Fh{oU%j)qc3oLt{_JeK`u$h!cSPj(;OkH}&M2EM}}%y>M1MG6B0 zOOB_DV@SoEw|5=$qEkg260JF`FYGw8Ag6(K17p~!9>v#*M|v0+Za&6&Xxa)-B~ihk z?-sqD|HJnMzkC^%6`z;a=cg5#_1ymNkGncIV*hu<8_b@2C7SPO_nsGbTYB5~zcAQy zqI*w9lK!mg-?ujJTY1*)&lQje5WT4XvFOjfX>b13*}US-x44yFrlS)Qv0_8O$3VR= zE42R2?*HWEe$=V8m5W=KkLfzWZaD`tRF(o^nN)%!Yu(g@=%p;t)7` z_Wty>`+rn@eRZAxd(FnG(tUORl1dBDJimGL=hNunt zyc3>dBBN2T;6Ni2I~Q#k3I9Ix-~V@9KB@fodG&XB`z6-P|D1C^?)^90=jxwh?d)g1 z|5tP2Gbhii{W~wR?>~3ad42KUnkHu1vkUfKpD9}*%VyZ&$dh!zRzk!;BO&0xf(A#% zW+paP9ZAUzN1k^-efH|zo?G+gy`4G#?!SB0pFiD9 zDxOohGgALvvR!Ph`1@J*cVlwpP4d@oJN^9j(dX6A&adOIDF0Vmz4v_L=U#`yH9zP3 z%(a!0^`HCw%8DzM8{8J26Eq1@V1=RuoGTYQa4i8NlUr*bv|z7@M8 literal 0 HcmV?d00001 diff --git a/installer/resources/themes/console/images/orangetilealt.png b/installer/resources/themes/console/images/orangetilealt.png new file mode 100644 index 0000000000000000000000000000000000000000..be2a04d4dede984152fe06fe62e5673fa9109607 GIT binary patch literal 1282 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvEiGhJ})y~t$fE>;OkH}&M2EM}}%y>M1MG6B0 z%N9=;$B>FSZ*O_$C5MW%K8)G_h@B}=l3`J^OTVH4Gut7K8BDw`%|9FFPy+3yNZT;JHc1u~^x1Jp* zT=j}3cE^;|tvdVs)=d7b-g!@y#CL*3FaBJ)tuDTL-rD6i?j4V+y>4i}B<79w?hu_R zNee}|mqutDbt6pi%|N7r!pY{FduHSuA#aLT4G+Z1NxwrxYI+~nB zL>4U&pqNc0|o5vG>_4(O^n%#EC56^!1_ie?N$1->C-;4kD=SkX^ z^3Unn{?_^ba-Uz_T{iFB!-{h2!`<7BwHD1?zIp3%Sr$bOM-Hce%WoAxv_O+UivmOl zAJeo}%qKunRuo9srxL9TY!g0XQ5F1;Z(0>!|8v>q8D;5@U7uIola{l+uW$ADY~__m zo1F8T@2%K9qh$GG*Y7`VW_)d9e|E3L#@^<<`rb(9;(WW8>z=<(%rARo^X{Bl_4Bye z|HsX?*Z=rd6}olVU;pUUPrn|HcRy3UdevUb`mpo$`)0_$+PQxoyZ`6p`l9VwYoEK? zmT!B0@JU|fpFJ@=a&{N)#OeJy|NJZ8;mObPY|odU@Bez|-M+p5AJ4pfzyABvi!a_B zexYi0`T2`4@e4lh;GcWh;8(+oH^*L>lvuT2h!kr)RB6m?C;&zQk2MUytf`HxAOX=f zL8z3dnK49(0JCWy6Iia34<=`cE@v1Z838gVAW;Hlaw57V0TW+9>@p0Ph%P6;OkH}&M2EM}}%y>M1MG6B0 zYq_V3V@SoEx3_N>iKL3OJv8O~&7#VAP&ykOO4B2@7}mSfB0`fd;at0ElE0k zntDYOyJJdD>1SP?_vgO!+?Cx?U(at%oF8v@J?4p$_|6lqz58FBeIE7P-TD6Op9WG~}A=0ZCKK%dxyIK0~g@=zgMe0mh`t>urbKRo9>u+rj zI$ZZ!?%~f9`RApsPiWl~q0vnaF{M7P>}Ba5i~H5@j&v6}o|L2}-miF_s{-5i9H@;heMUlgiBP+<7!%3h?pasnJea+!` z_9ajlBy{CU8B`d=opnvHY1U;yh{_c!-zq>=0X3SgRc0|=t_(KMDIoZ^BiuZWtSEPm zEI)UM6$_SaYlhegHhxQ=z?C_DFq?DPA+~}XvLaJfafPKU$bBH2Z}CBFeep%$ik4PI zk#1Q2k@oXRg?sDw)hj={^*Q9ud|6Zdwa0IrsN7ez-#Gv1BR9+cM$+8M&yNQ`<>Q`h z`}vZa&8oBVq3>;G>Akm~(Oqr#Zua%Z*Jpm3d-#mG`QvXFpSK&Qwws$*J$rPHee2J# zujiUyZ?v+m(0jKh_Kg4IgKuu{tVrByrf;Vkukrlrr+>mT^N+mxTBP?ca_zH64}XMv z8-CQX`>(rA|A>Ea^K*IrXWb|N99>YkY1aQ$=k={W@7=j0YWDo^XFnHyb-g2LvOoN6 zecAcxNvV4Gf-;OkH}&M2EM}}%y>M1MG8=` z#?!?yq+(9;ANz~Vjg5^T>!l{7BqSv`ERt|2a^O^3A@KM=mt_YF_u<{{E4&;xB}|Tx zm>2K7!ogHvYSN$kS!WtpfC913PyhexJCmN|z`EqqLOvIx|EIG<{-rb3yxP@%tLE7M yyJb8(7;OkH}&M2EM}}%y>M1MG6B0 z%Vkd&$B>FSZ*Lt8iY}FCEA(ShbYjxA%KgeGGyU9-uVK4B3dy|RwEC6P-5r{bIFf|8 zmP~kjGP9di=w5-)@-siG#sAmkKAgQif4-eg#>db8_t%{DseIf1b7q~x#%!&0y&zW*GOCKV3V$rjipG$M&^6I8`$A1;O8?opA&r|+f86^ZoQWbyH0Ai?#cM!(;x-&v;)~_-wh&j{O_k#aLT4G+Z1N zxwrxYI+~nBL>4U&pq)_H{kR&-Ta}lj{}}$Sy(KNPr?%bN|98DSPq}zaz5F}7?06fB)k=i4{>*ZG?H&b=RMjP^dib;tVsw^`@s zf3Zq8eqQ%Hr{w<5YO^)d{PVMo_*W%9tGV{JKmXj}SH z_weVnC0pxu{oP@@^N!We)fe}KpLaKZcKvqs+toY6&o5r=S*`jx(YF59zBS+UE%L8? zKKf-|`RCbH?|jP5X1IU7^S@wSxnF*^N&KFha