diff --git a/apps/routerconsole/java/src/net/i2p/router/web/CSSHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/CSSHelper.java index b5c090ebf..b8cfa3180 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/CSSHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/CSSHelper.java @@ -23,6 +23,7 @@ public class CSSHelper extends HelperBase { public static final int MIN_REFRESH = 3; public static final String PROP_DISABLE_REFRESH = "routerconsole.summaryDisableRefresh"; private static final String PROP_XFRAME = "routerconsole.disableXFrame"; + public static final String PROP_FORCE_MOBILE_CONSOLE = "routerconsole.forceMobileConsole"; private static final String _consoleNonce = Long.toString(RandomSource.getInstance().nextLong()); @@ -137,6 +138,9 @@ public class CSSHelper extends HelperBase { * @since 0.8.5 */ public boolean allowIFrame(String ua) { + boolean forceMobileConsole = _context.getBooleanProperty(PROP_FORCE_MOBILE_CONSOLE); + if (forceMobileConsole) + return false; if (ua == null) return true; Boolean brv = _UACache.get(ua); diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHandler.java index 923395096..0762dd457 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHandler.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHandler.java @@ -9,6 +9,7 @@ import java.util.Map; public class ConfigUIHandler extends FormHandler { private boolean _shouldSave; private boolean _universalTheming; + private boolean _forceMobileConsole; private String _config; @Override @@ -26,6 +27,8 @@ public class ConfigUIHandler extends FormHandler { public void setUniversalTheming(String baa) { _universalTheming = true; } + public void setForceMobileConsole(String baa) { _forceMobileConsole = true; } + public void setTheme(String val) { _config = val; } @@ -37,6 +40,7 @@ public class ConfigUIHandler extends FormHandler { Map changes = new HashMap(); List removes = new ArrayList(); String oldTheme = _context.getProperty(CSSHelper.PROP_THEME_NAME, CSSHelper.DEFAULT_THEME); + boolean oldForceMobileConsole = _context.getBooleanProperty(CSSHelper.PROP_FORCE_MOBILE_CONSOLE); if (_config.equals("default")) // obsolete removes.add(CSSHelper.PROP_THEME_NAME); else @@ -45,6 +49,10 @@ public class ConfigUIHandler extends FormHandler { changes.put(CSSHelper.PROP_UNIVERSAL_THEMING, "true"); else removes.add(CSSHelper.PROP_UNIVERSAL_THEMING); + if (_forceMobileConsole) + changes.put(CSSHelper.PROP_FORCE_MOBILE_CONSOLE, "true"); + else + removes.add(CSSHelper.PROP_FORCE_MOBILE_CONSOLE); boolean ok = _context.router().saveConfig(changes, removes); if (ok) { if (!oldTheme.equals(_config)) @@ -52,6 +60,11 @@ public class ConfigUIHandler extends FormHandler { " " + _("Refresh the page to view.") + ""); + if (oldForceMobileConsole != _forceMobileConsole) + addFormNotice(_("Mobile console option saved.") + + " " + + _("Refresh the page to view.") + + ""); } else { addFormError(_("Error saving the configuration (applied but not saved) - please see the error logs.")); } diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHelper.java index 273c8521d..28fa6034a 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHelper.java @@ -28,6 +28,18 @@ public class ConfigUIHelper extends HelperBase { return buf.toString(); } + public String getForceMobileConsole() { + StringBuilder buf = new StringBuilder(256); + boolean forceMobileConsole = _context.getBooleanProperty(CSSHelper.PROP_FORCE_MOBILE_CONSOLE); + buf.append("") + .append(_("Force the mobile console to be used")) + .append("
\n"); + return buf.toString(); + } + static final String PROP_THEME_PFX = "routerconsole.theme."; /** @return standard and user-installed themes, sorted (untranslated) */ diff --git a/apps/routerconsole/jsp/configui.jsp b/apps/routerconsole/jsp/configui.jsp index b19c0103c..ce556aa19 100644 --- a/apps/routerconsole/jsp/configui.jsp +++ b/apps/routerconsole/jsp/configui.jsp @@ -44,6 +44,7 @@ input.default {
<%=uihelper._("If you're not using IE, it's likely that your browser is pretending to be IE; please configure your browser (or proxy) to use a different User Agent string if you'd like to access the console themes.")%> <% } %> +

<%=uihelper._("Router Console Language")%>

<%=uihelper._("Please contribute to the router console translation project! Contact the developers in #i2p-dev on IRC to help.")%> diff --git a/history.txt b/history.txt index 3c7cebeaf..3e2fcb5ca 100644 --- a/history.txt +++ b/history.txt @@ -1,3 +1,8 @@ +2013-01-21 str4d + * Console: + - Added option to /configui to force the mobile console to be used + (for cases where the UserAgent matching fails) + 2013-01-19 str4d * Console: - Added proper support for mobile browsers with a CSS override file