From 0aa9e39ee31182d3c3bac11e1ece41bd25d49f3a Mon Sep 17 00:00:00 2001 From: zzz Date: Mon, 23 Jan 2012 17:53:59 +0000 Subject: [PATCH 1/5] * Plugins: Add completion message after all-update check --- .../java/src/net/i2p/router/web/PluginStarter.java | 12 ++++++++++++ .../src/net/i2p/router/web/PluginUpdateChecker.java | 6 ++++++ .../src/net/i2p/router/web/PluginUpdateHandler.java | 10 ++++++++++ 3 files changed, 28 insertions(+) diff --git a/apps/routerconsole/java/src/net/i2p/router/web/PluginStarter.java b/apps/routerconsole/java/src/net/i2p/router/web/PluginStarter.java index 7a3077ea5..27fe4e9f8 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/PluginStarter.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/PluginStarter.java @@ -127,6 +127,7 @@ public class PluginStarter implements Runnable { } Log log = ctx.logManager().getLog(PluginStarter.class); + int updated = 0; for (Map.Entry entry : toUpdate.entrySet()) { String appName = entry.getKey(); if (log.shouldLog(Log.WARN)) @@ -152,7 +153,13 @@ public class PluginStarter implements Runnable { Thread.sleep(5*1000); } catch (InterruptedException ie) {} } while (puh.isRunning()); + if (puh.wasUpdateSuccessful()) + updated++; } + if (updated > 0) + puc.setDoneStatus(ngettext("1 plugin updated", "{0} plugins updated", updated, ctx)); + else + puc.setDoneStatus(Messages.getString("Plugin update check complete", ctx)); } /** this shouldn't throw anything */ @@ -764,4 +771,9 @@ public class PluginStarter implements Runnable { method.setAccessible(true); method.invoke(urlClassLoader, new Object[]{u}); } + + /** translate a string */ + private static String ngettext(String s, String p, int n, I2PAppContext ctx) { + return Messages.getString(n, s, p, ctx); + } } diff --git a/apps/routerconsole/java/src/net/i2p/router/web/PluginUpdateChecker.java b/apps/routerconsole/java/src/net/i2p/router/web/PluginUpdateChecker.java index bc4ef05db..d5e168714 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/PluginUpdateChecker.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/PluginUpdateChecker.java @@ -104,6 +104,12 @@ public class PluginUpdateChecker extends UpdateHandler { public void setAppStatus(String status) { updateStatus(status); } + + /** @since 0.8.13 */ + public void setDoneStatus(String status) { + updateStatus(status); + scheduleStatusClean(status); + } public boolean isRunning() { return _pluginUpdateCheckerRunner != null && _pluginUpdateCheckerRunner.isRunning(); diff --git a/apps/routerconsole/java/src/net/i2p/router/web/PluginUpdateHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/PluginUpdateHandler.java index 0c1fce48e..f34c9ac90 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/PluginUpdateHandler.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/PluginUpdateHandler.java @@ -42,6 +42,8 @@ public class PluginUpdateHandler extends UpdateHandler { private static PluginUpdateRunner _pluginUpdateRunner; private String _xpi2pURL; private String _appStatus; + private volatile boolean _updated; + private static final String XPI2P = "app.xpi2p"; private static final String ZIP = XPI2P + ".zip"; public static final String PLUGIN_DIR = "plugins"; @@ -92,6 +94,11 @@ public class PluginUpdateHandler extends UpdateHandler { return false; } + /** @since 0.8.13 */ + public boolean wasUpdateSuccessful() { + return _updated; + } + private void scheduleStatusClean(String msg) { SimpleScheduler.getInstance().addEvent(new Cleaner(msg), 20*60*1000); } @@ -108,6 +115,7 @@ public class PluginUpdateHandler extends UpdateHandler { } public class PluginUpdateRunner extends UpdateRunner implements Runnable, EepGet.StatusListener { + private boolean _updated; public PluginUpdateRunner(String url) { super(); @@ -115,6 +123,7 @@ public class PluginUpdateHandler extends UpdateHandler { @Override protected void update() { + _updated = false; updateStatus("" + _("Downloading plugin from {0}", _xpi2pURL) + ""); // use the same settings as for updater boolean shouldProxy = Boolean.valueOf(_context.getProperty(ConfigUpdateHandler.PROP_SHOULD_PROXY, ConfigUpdateHandler.DEFAULT_SHOULD_PROXY)).booleanValue(); @@ -383,6 +392,7 @@ public class PluginUpdateHandler extends UpdateHandler { return; } + _updated = true; to.delete(); if (Boolean.valueOf(props.getProperty("dont-start-at-install")).booleanValue()) { if (Boolean.valueOf(props.getProperty("router-restart-required")).booleanValue()) From 97e5bc87efc4a5c8428aa1ee8f96d4db81f62538 Mon Sep 17 00:00:00 2001 From: zzz Date: Mon, 23 Jan 2012 18:33:13 +0000 Subject: [PATCH 2/5] i2ptunnel: fix white-on-white buttons on hover --- installer/resources/themes/console/light/default.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/installer/resources/themes/console/light/default.css b/installer/resources/themes/console/light/default.css index f51a77944..ac16f21db 100644 --- a/installer/resources/themes/console/light/default.css +++ b/installer/resources/themes/console/light/default.css @@ -228,7 +228,7 @@ hr { -khtml-border-radius: 4px; border-radius: 4px; margin-top: 8px; - background: #ffe url(images/header.png) center center repeat-x !important; + background: #ffe url(images/header.png) center center repeat-x; text-decoration: none; } From 63d2e197690da58f43fd605df467b21372351288 Mon Sep 17 00:00:00 2001 From: zzz Date: Mon, 23 Jan 2012 23:07:24 +0000 Subject: [PATCH 3/5] * susidns: add icons to buttons magnifier.png from Silk icons: See licenses/LICENSE-SilkIcons.txt --- apps/susidns/src/css.css | 40 ++++++++ apps/susidns/src/jsp/addressbook.jsp | 14 +-- apps/susidns/src/jsp/config.jsp | 4 +- apps/susidns/src/jsp/details.jsp | 2 +- .../themes/console/images/magnifier.png | Bin 0 -> 615 bytes .../themes/console/light/console.css | 88 ++++++++++++++++++ 6 files changed, 138 insertions(+), 10 deletions(-) create mode 100644 installer/resources/themes/console/images/magnifier.png diff --git a/apps/susidns/src/css.css b/apps/susidns/src/css.css index fcb29457c..e39060eaf 100644 --- a/apps/susidns/src/css.css +++ b/apps/susidns/src/css.css @@ -172,3 +172,43 @@ input[type=reset]:hover { opacity: 1.0; -moz-box-shadow: inset 0px 0px 0px 1px #fff; } + +input.accept { + background: #ddf url('/themes/console/images/accept.png') no-repeat 2px center; + padding: 2px 3px 2px 20px; + min-height: 22px; +} + +input.add { + background: #ddf url('/themes/console/images/add.png') no-repeat 2px center; + padding: 2px 3px 2px 20px; + min-height: 22px; +} + +input.cancel { + background: #ddf url('/themes/console/images/cancel.png') no-repeat 2px center; + padding: 2px 3px 2px 20px; + min-height: 22px; +} + +input.delete { + background: #ddf url('/themes/console/images/delete.png') no-repeat 2px center; + padding: 2px 3px 2px 20px; + min-height: 22px; +} + +input.reload { + background: #ddf url('/themes/console/images/arrow_refresh.png') no-repeat 2px center; + padding: 2px 3px 2px 20px; + min-height: 22px; +} + +input.search { + background: #ddf url('/themes/console/images/magnifier.png') no-repeat 2px center; + padding: 2px 3px 2px 24px; + min-height: 22px; +} + +input.search[type="text"] { + background: #eef url('/themes/console/images/magnifier.png') no-repeat 2px center; +} diff --git a/apps/susidns/src/jsp/addressbook.jsp b/apps/susidns/src/jsp/addressbook.jsp index 109425f9d..044c4c5a1 100644 --- a/apps/susidns/src/jsp/addressbook.jsp +++ b/apps/susidns/src/jsp/addressbook.jsp @@ -117,8 +117,8 @@ ${book.loadBookMessages} - - + +
@@ -167,8 +167,8 @@ ${book.loadBookMessages}

-" > -" > +" > +" >

@@ -193,9 +193,9 @@ ${book.loadBookMessages} <%=intl._("Destination")%>

-" > -" > -" > +" > +" > +" >

diff --git a/apps/susidns/src/jsp/config.jsp b/apps/susidns/src/jsp/config.jsp index 675797338..23cce5ada 100644 --- a/apps/susidns/src/jsp/config.jsp +++ b/apps/susidns/src/jsp/config.jsp @@ -69,8 +69,8 @@
-" > -" > +" > +" >
diff --git a/apps/susidns/src/jsp/details.jsp b/apps/susidns/src/jsp/details.jsp index 042f07ea2..fae6e0720 100644 --- a/apps/susidns/src/jsp/details.jsp +++ b/apps/susidns/src/jsp/details.jsp @@ -129,7 +129,7 @@ -" > +" >

diff --git a/installer/resources/themes/console/images/magnifier.png b/installer/resources/themes/console/images/magnifier.png new file mode 100644 index 0000000000000000000000000000000000000000..cf3d97f75e9cde9c143980d89272fe61fc2d64ee GIT binary patch literal 615 zcmV-t0+{`YP)gNuvOO$0ks zMIj=HnnBRUR?tKXG11rxCU4&7dG4NbuvR2_mEvc)n?Cow;~Wve|KR^>9@p5l)|QB+ z$jmun3q#x>;ss-PW_mnr2MHVzLAl1RW&0?VkixF*4t!St0YVb2wnKdU(kmOHiL;aW zK8Xte%(k>MVGG$E4no6dcNnb>BhVHHGD&1pv4YZ68kE2V03t5#PCEFm7=ad$6)+3B zTCmn*?A?=u(o~ET7~-7g0)ZB=6|lumi4}B}MLgy~Ysy6)Q5%Al7|05&1z3Jpu>cF8 z3?VXs*3<}%h3`5Wld)N2zJnk%Agw<~3k)sPTLFd=F5;d8-bj-09SkQuynfflNcZLN z!^_37fdZvzrq=9~mp*($%mcDRKC&qvaaZuX+C=AT6O*~tHl>0mcP<_q>-z%$xO(@! zYluq5a8VQI$S@4?r*v;gPo!QQ%pX3A#>xx4t=w-L6COWx?aj&`f+!YePsFtj=hOQR zP3=E2j@9L7s8;T^&s?u(Hdpu?CubjMrGn{t_37>9$|AD)QE08weJlKn8|OyjL~7oP zC8mPT`jzuH*Dh^I0048RGafUIT)4H~*m8m>egI0iH=(LB%b@@O002ovPDHLkV1lw0 B3 Date: Mon, 23 Jan 2012 23:14:15 +0000 Subject: [PATCH 4/5] two more buttons --- apps/susidns/src/jsp/subscriptions.jsp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/susidns/src/jsp/subscriptions.jsp b/apps/susidns/src/jsp/subscriptions.jsp index 8e2a7042f..8d1c6c248 100644 --- a/apps/susidns/src/jsp/subscriptions.jsp +++ b/apps/susidns/src/jsp/subscriptions.jsp @@ -69,8 +69,8 @@
-" > -" > +" > +" >
From 0a4d6c0bd81eea1780ce08c46d537e27913a8088 Mon Sep 17 00:00:00 2001 From: zzz Date: Tue, 24 Jan 2012 00:29:20 +0000 Subject: [PATCH 5/5] * susimail: add icons to buttons arrow_left, arrow_up, email.png from Silk icons: See licenses/LICENSE-SilkIcons.txt --- apps/susimail/src/css.css | 63 +++++++++++++++++- .../src/src/i2p/susi/webmail/WebMail.java | 4 +- .../themes/console/images/arrow_left.png | Bin 0 -> 345 bytes .../themes/console/images/arrow_up.png | Bin 0 -> 372 bytes .../resources/themes/console/images/email.png | Bin 0 -> 641 bytes 5 files changed, 64 insertions(+), 3 deletions(-) create mode 100644 installer/resources/themes/console/images/arrow_left.png create mode 100644 installer/resources/themes/console/images/arrow_up.png create mode 100644 installer/resources/themes/console/images/email.png diff --git a/apps/susimail/src/css.css b/apps/susimail/src/css.css index 380fa7975..8af8b1ae0 100644 --- a/apps/susimail/src/css.css +++ b/apps/susimail/src/css.css @@ -129,4 +129,65 @@ form { .mailhead { font-size: 9pt; font-weight: bold; -} \ No newline at end of file +} + +input.cancel, input.clearselection, input.logout { + background: #ddf url('/themes/console/images/cancel.png') no-repeat 2px center; + padding: 2px 3px 2px 20px; + min-height: 22px; +} + +input.delete, input.delete_attachment, input.really_delete { + background: #ddf url('/themes/console/images/delete.png') no-repeat 2px center; + padding: 2px 3px 2px 20px; + min-height: 22px; +} + +input.download, input.lastpage { + background: #ddf url('/themes/console/images/arrow_down.png') no-repeat 2px center; + padding: 2px 3px 2px 20px; + min-height: 22px; +} + +input.firstpage { + background: #ddf url('/themes/console/images/arrow_up.png') no-repeat 2px center; + padding: 2px 3px 2px 20px; + min-height: 22px; +} + +input.forward, input.login, input.nextpage, input.send { + background: #ddf url('/themes/console/images/arrow_right.png') no-repeat 2px center; + padding: 2px 3px 2px 20px; + min-height: 22px; +} + +input.invertselection, input.reload, input.refresh { + background: #ddf url('/themes/console/images/arrow_refresh.png') no-repeat 2px center; + padding: 2px 3px 2px 20px; + min-height: 22px; +} + +input.markall, input.show { + background: #ddf url('/themes/console/images/tick.png') no-repeat 2px center; + padding: 2px 3px 2px 20px; + min-height: 22px; +} + +input.new, input.reply, input.replyall { + background: #ddf url('/themes/console/images/email.png') no-repeat 2px center; + padding: 2px 3px 2px 20px; + min-height: 22px; +} + +input.prevpage { + background: #ddf url('/themes/console/images/arrow_left.png') no-repeat 2px center; + padding: 2px 3px 2px 20px; + min-height: 22px; +} + +input.send, input.setpagesize { + background: #ddf url('/themes/console/images/accept.png') no-repeat 2px center; + padding: 2px 3px 2px 20px; + min-height: 22px; +} + diff --git a/apps/susimail/src/src/i2p/susi/webmail/WebMail.java b/apps/susimail/src/src/i2p/susi/webmail/WebMail.java index 1005c47de..9df0c53b5 100644 --- a/apps/susimail/src/src/i2p/susi/webmail/WebMail.java +++ b/apps/susimail/src/src/i2p/susi/webmail/WebMail.java @@ -346,7 +346,7 @@ public class WebMail extends HttpServlet */ private static String button( String name, String label ) { - return ""; + return ""; } /** * returns html string of a disabled form button with name and label @@ -1601,7 +1601,7 @@ public class WebMail extends HttpServlet "" + _("SMTP-Port") + "\n"); } out.println( - "" + button( LOGIN, _("Login") ) + " \n" + + "" + button( LOGIN, _("Login") ) + " \n" + "" + _("Learn about I2P mail") + "\n" + "" + _("Create Account") + "\n" + ""); diff --git a/installer/resources/themes/console/images/arrow_left.png b/installer/resources/themes/console/images/arrow_left.png new file mode 100644 index 0000000000000000000000000000000000000000..5dc696781e6135d37b5bf2e98e46fd94f020c48d GIT binary patch literal 345 zcmV-f0jBq$gGR5;6H z{Qv(y10{fofkH6I3@AO3$p*x`Nil#0jeqs;pT9Ds7{CaN1)$9r#n~kE{`~pF@bLXZ zhF?E_GyM7i!oL`P0x_8Wj$ni2F7#hzWPxfvDaI6w#wHUuW*nL5>vZR zlg{G&%mT~|kL3ei%GW0*UOHUMs5XI$4uxe-L?I@SAefq*207}Iqtjm#e5*fP53AiC z)C|RQfwzxx<#_WfANRGZx{+tFDl8~Q?;~Ve=lM^*8UTTnVL?HTDz8uta0D@d28E9S z_)i8aLz^UE6PPKymi;2GJ`34{eIia-CtfAt0H61rk0 SPTNud0000Az`{eoOom?Tf*9)f$7n8&|1&5M4#i^32;+&E? zC3Q;bRFQN#y*%%=_V)Mfa<$xe^kB0TO;vJPkN*k(2v-CI7)OaWj?&eKPos(H4wGh_ zIC;6#q1B5SMap5{(Hc0~XO7OfqZ=x{kupu8-H&9azl`L1pTuu^Znm3EA)kCoG=JuwsyNLEtY83i->Z~j3y~F)`RA1k>zTES07po!kBVS2y#L{jCt|CMY&v{ zxmqM|`OA#P2{R&)OcQd}v0kt6_Dh#`Z$i5_;q|93je3Q^PcfR{TmBHRmr;rWahz~G z2x-&;d_O~HkmKXt5Cd#Bs?-+qj3zOiUdU24KowBIUPg(gPNmxqX)Fiia~V*$y;5L( zrGNmU;81MA$F2k%oeUXQ@}N%bXz=qOij$4IYk4W=jfhDxfCz{PGXe-#ge#VfYTyoj zh4JvDePrW{lf(Oux2xG;VZmlSvDU+Qf@i=O!B`MLglhttCUHDIKkc7