diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHandler.java index 48343ff1998405e0353e65572a4ee86f8480cd9c..729a4b14d1c73629cd39e0bcc281b037e0256a3a 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHandler.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHandler.java @@ -59,7 +59,7 @@ public class ConfigClientsHandler extends FormHandler { } if (_action.equals(_("Install Plugin"))) { if (pluginsEnabled && - (_context.getBooleanProperty(ConfigClientsHelper.PROP_ENABLE_PLUGIN_INSTALL) || + (_context.getBooleanPropertyDefaultTrue(ConfigClientsHelper.PROP_ENABLE_PLUGIN_INSTALL) || isAdvanced())) installPlugin(); else diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHelper.java index c9620cb7a98afd82ba2eb5ec29834cafd443c005..ab83bcbd202410fc1453d389d020fba4165529a2 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHelper.java @@ -39,7 +39,12 @@ public class ConfigClientsHelper extends HelperBase { /** @since 0.9.14.1 */ public boolean isPluginInstallEnabled() { return PluginStarter.pluginsEnabled(_context) && - (_context.getBooleanProperty(PROP_ENABLE_PLUGIN_INSTALL) || isAdvanced()); + (_context.getBooleanPropertyDefaultTrue(PROP_ENABLE_PLUGIN_INSTALL) || isAdvanced()); + } + + /** @since 0.9.15 */ + public boolean isPluginUpdateEnabled() { + return !PluginStarter.getPlugins().isEmpty(); } /** @since 0.8.3 */ diff --git a/apps/routerconsole/jsp/configclients.jsp b/apps/routerconsole/jsp/configclients.jsp index 8bbfef188f233432806c23275c8158fc4e82307b..a6d049ed7fc37f1a249f79d13a18a704b50ec80d 100644 --- a/apps/routerconsole/jsp/configclients.jsp +++ b/apps/routerconsole/jsp/configclients.jsp @@ -105,7 +105,10 @@ input.default { width: 1px; height: 1px; visibility: hidden; } <input type="submit" name="action" class="accept" value="<%=intl._("Save WebApp Configuration")%>" /> </div></form></div> -<% if (clientshelper.showPlugins()) { %> +<% + if (clientshelper.showPlugins()) { + if (clientshelper.isPluginUpdateEnabled()) { +%> <h3><a name="pconfig"></a><%=intl._("Plugin Configuration")%></h3><p> <%=intl._("The plugins listed below are started by the webConsole client.")%> </p><div class="wideload"> @@ -116,25 +119,47 @@ input.default { width: 1px; height: 1px; visibility: hidden; } <input type="submit" class="cancel" name="foo" value="<%=intl._("Cancel")%>" /> <input type="submit" name="action" class="accept" value="<%=intl._("Save Plugin Configuration")%>" /> </div></form></div> - -<% if (clientshelper.isPluginInstallEnabled()) { %> +<% + } // pluginUpdateEnabled + if (clientshelper.isPluginInstallEnabled()) { +%> <h3><a name="plugin"></a><%=intl._("Plugin Installation")%></h3><p> <%=intl._("Look for available plugins on {0}.", "<a href=\"http://plugins.i2p\">plugins.i2p</a>")%> <%=intl._("To install a plugin, enter the download URL:")%> - </p><div class="wideload"> + </p> +<% + } // pluginInstallEnabled + if (clientshelper.isPluginInstallEnabled() || clientshelper.isPluginUpdateEnabled()) { +%> +<div class="wideload"> <form action="configclients" method="POST"> <input type="hidden" name="nonce" value="<%=pageNonce%>" > +<% + if (clientshelper.isPluginInstallEnabled()) { +%> <p> <input type="text" size="60" name="pluginURL" > </p><hr><div class="formaction"> <input type="submit" name="action" class="default" value="<%=intl._("Install Plugin")%>" /> <input type="submit" class="cancel" name="foo" value="<%=intl._("Cancel")%>" /> <input type="submit" name="action" class="download" value="<%=intl._("Install Plugin")%>" /> -</div><hr><div class="formaction"> +</div> +<% + } // pluginInstallEnabled +%> +</div> +<% + if (clientshelper.isPluginUpdateEnabled()) { +%> +<hr><div class="formaction"> <input type="submit" name="action" class="reload" value="<%=intl._("Update All Installed Plugins")%>" /> - </div></form></div> +</div> +<% + } // pluginUpdateEnabled +%> +</form></div> <% - } // pluginInstallEnabled - } // showPlugins + } // pluginInstallEnabled || pluginUpdateEnabled + } // showPlugins %> </div></div></body></html>