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 5a6d168e3a65cb86ab80ea6449f81f914da01f74..ddea8c8cd9daf4bcc306002e47056f28b3628c1f 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/CSSHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/CSSHelper.java @@ -13,7 +13,7 @@ public class CSSHelper extends HelperBase { public CSSHelper() {} - public static final String THEME_CONFIG_FILE = "themes.config"; + public static final String PROP_UNIVERSAL_THEMING = "routerconsole.theme.universal"; public static final String PROP_THEME_NAME = "routerconsole.theme"; public static final String DEFAULT_THEME = "light"; public static final String BASE_THEME_PATH = "/themes/console/"; @@ -32,7 +32,7 @@ public class CSSHelper extends HelperBase { // This is the first thing to use _context on most pages if (_context == null) throw new IllegalStateException("No contexts. This is usually because the router is either starting up or shutting down."); - String theme = _context.readConfigFile(THEME_CONFIG_FILE).getProperty(PROP_THEME_NAME, DEFAULT_THEME); + String theme = _context.getProperty(PROP_THEME_NAME, DEFAULT_THEME); url += theme + "/"; } return url; 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 6599ffbeaf3c8cda980fb4f34bd21fb75ea32b50..6538315ffe26ebb0b9a36a2f9c5b2a4936f36a6e 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHandler.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHandler.java @@ -1,8 +1,5 @@ package net.i2p.router.web; -import java.util.Iterator; -import java.util.Properties; - /** set the theme */ public class ConfigUIHandler extends FormHandler { private boolean _shouldSave; @@ -27,21 +24,18 @@ public class ConfigUIHandler extends FormHandler { private void saveChanges() { if (_config == null) return; - Properties props = _context.readConfigFile(CSSHelper.THEME_CONFIG_FILE); - String oldTheme = props.getProperty(CSSHelper.PROP_THEME_NAME, CSSHelper.DEFAULT_THEME); - // Save routerconsole theme first to ensure it is in config file + String oldTheme = _context.getProperty(CSSHelper.PROP_THEME_NAME, CSSHelper.DEFAULT_THEME); + boolean ok; if (_config.equals("default")) // obsolete - props.put(CSSHelper.PROP_THEME_NAME, null); + ok = _context.router().saveConfig(CSSHelper.PROP_THEME_NAME, null); else - props.put(CSSHelper.PROP_THEME_NAME, _config); - if (_universalTheming) { - // The routerconsole theme gets set again, but oh well - for (Iterator it = props.keySet().iterator(); it.hasNext();) { - String key = (String) it.next(); - props.put(key, _config); - } + ok = _context.router().saveConfig(CSSHelper.PROP_THEME_NAME, _config); + if (ok) { + if (_universalTheming) + ok = _context.router().saveConfig(CSSHelper.PROP_UNIVERSAL_THEMING, "true"); + else + ok = _context.router().saveConfig(CSSHelper.PROP_UNIVERSAL_THEMING, null); } - boolean ok = _context.writeConfigFile(CSSHelper.THEME_CONFIG_FILE, props); if (ok) { if (!oldTheme.equals(_config)) addFormNotice(_("Theme change saved.") + 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 fcb19bc38b9d4f09671b70198f57a8a1d536beac..990572ab489aacaf8fd214a602018d4cef450361 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHelper.java @@ -9,7 +9,7 @@ public class ConfigUIHelper extends HelperBase { public String getSettings() { StringBuilder buf = new StringBuilder(512); - String current = _context.readConfigFile(CSSHelper.THEME_CONFIG_FILE).getProperty(CSSHelper.PROP_THEME_NAME, CSSHelper.DEFAULT_THEME); + String current = _context.getProperty(CSSHelper.PROP_THEME_NAME, CSSHelper.DEFAULT_THEME); Set<String> themes = themeSet(); for (String theme : themes) { buf.append("<input type=\"radio\" class=\"optbox\" name=\"theme\" "); @@ -17,7 +17,11 @@ public class ConfigUIHelper extends HelperBase { buf.append("checked=\"checked\" "); buf.append("value=\"").append(theme).append("\">").append(_(theme)).append("<br>\n"); } - buf.append("<input type=\"checkbox\" name=\"universalTheming\" value=\"1\">") + boolean universalTheming = _context.getBooleanProperty(CSSHelper.PROP_UNIVERSAL_THEMING); + buf.append("<input type=\"checkbox\" name=\"universalTheming\" "); + if (universalTheming) + buf.append("checked=\"checked\" "); + buf.append("value=\"1\">") .append(_("Set theme universally across all apps")) .append("<br>\n"); return buf.toString();