Reverted routerconsole to storing theme itself, also store universal theming boolean

This commit is contained in:
str4d
2012-08-01 01:50:59 +00:00
parent 3d69d2bf63
commit a623d924fa
3 changed files with 17 additions and 19 deletions

View File

@ -13,7 +13,7 @@ public class CSSHelper extends HelperBase {
public CSSHelper() {} 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 PROP_THEME_NAME = "routerconsole.theme";
public static final String DEFAULT_THEME = "light"; public static final String DEFAULT_THEME = "light";
public static final String BASE_THEME_PATH = "/themes/console/"; 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 // This is the first thing to use _context on most pages
if (_context == null) if (_context == null)
throw new IllegalStateException("No contexts. This is usually because the router is either starting up or shutting down."); 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 + "/"; url += theme + "/";
} }
return url; return url;

View File

@ -1,8 +1,5 @@
package net.i2p.router.web; package net.i2p.router.web;
import java.util.Iterator;
import java.util.Properties;
/** set the theme */ /** set the theme */
public class ConfigUIHandler extends FormHandler { public class ConfigUIHandler extends FormHandler {
private boolean _shouldSave; private boolean _shouldSave;
@ -27,21 +24,18 @@ public class ConfigUIHandler extends FormHandler {
private void saveChanges() { private void saveChanges() {
if (_config == null) if (_config == null)
return; return;
Properties props = _context.readConfigFile(CSSHelper.THEME_CONFIG_FILE); String oldTheme = _context.getProperty(CSSHelper.PROP_THEME_NAME, CSSHelper.DEFAULT_THEME);
String oldTheme = props.getProperty(CSSHelper.PROP_THEME_NAME, CSSHelper.DEFAULT_THEME); boolean ok;
// Save routerconsole theme first to ensure it is in config file
if (_config.equals("default")) // obsolete if (_config.equals("default")) // obsolete
props.put(CSSHelper.PROP_THEME_NAME, null); ok = _context.router().saveConfig(CSSHelper.PROP_THEME_NAME, null);
else else
props.put(CSSHelper.PROP_THEME_NAME, _config); ok = _context.router().saveConfig(CSSHelper.PROP_THEME_NAME, _config);
if (_universalTheming) { if (ok) {
// The routerconsole theme gets set again, but oh well if (_universalTheming)
for (Iterator it = props.keySet().iterator(); it.hasNext();) { ok = _context.router().saveConfig(CSSHelper.PROP_UNIVERSAL_THEMING, "true");
String key = (String) it.next(); else
props.put(key, _config); ok = _context.router().saveConfig(CSSHelper.PROP_UNIVERSAL_THEMING, null);
}
} }
boolean ok = _context.writeConfigFile(CSSHelper.THEME_CONFIG_FILE, props);
if (ok) { if (ok) {
if (!oldTheme.equals(_config)) if (!oldTheme.equals(_config))
addFormNotice(_("Theme change saved.") + addFormNotice(_("Theme change saved.") +

View File

@ -9,7 +9,7 @@ public class ConfigUIHelper extends HelperBase {
public String getSettings() { public String getSettings() {
StringBuilder buf = new StringBuilder(512); 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(); Set<String> themes = themeSet();
for (String theme : themes) { for (String theme : themes) {
buf.append("<input type=\"radio\" class=\"optbox\" name=\"theme\" "); buf.append("<input type=\"radio\" class=\"optbox\" name=\"theme\" ");
@ -17,7 +17,11 @@ public class ConfigUIHelper extends HelperBase {
buf.append("checked=\"checked\" "); buf.append("checked=\"checked\" ");
buf.append("value=\"").append(theme).append("\">").append(_(theme)).append("<br>\n"); 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(_("Set theme universally across all apps"))
.append("<br>\n"); .append("<br>\n");
return buf.toString(); return buf.toString();