From 00b8e14adf880681bd2cf26484cda730c045671b Mon Sep 17 00:00:00 2001 From: zzz Date: Wed, 25 Jan 2012 14:34:54 +0000 Subject: [PATCH] /confighome: - config search engines - add icons - restore defaults button --- .../net/i2p/router/web/ConfigHomeHandler.java | 19 ++++++-- .../src/net/i2p/router/web/HomeHelper.java | 43 +++++++++++++++---- .../src/net/i2p/router/web/SearchHelper.java | 6 +-- apps/routerconsole/jsp/confighome.jsp | 15 +++++++ 4 files changed, 68 insertions(+), 15 deletions(-) diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigHomeHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/ConfigHomeHandler.java index eecb0c549..9e599e6af 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigHomeHandler.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigHomeHandler.java @@ -22,6 +22,7 @@ public class ConfigHomeHandler extends FormHandler { String group = getJettyString("group"); boolean deleting = _action.equals(_("Delete selected")); boolean adding = _action.equals(_("Add item")); + boolean restoring = _action.equals(_("Restore defaults")); if (_action.equals(_("Save")) && "0".equals(group)) { boolean old = _context.getBooleanProperty(HomeHelper.PROP_OLDHOME); boolean nnew = getJettyString("oldHome") != null; @@ -29,7 +30,7 @@ public class ConfigHomeHandler extends FormHandler { _context.router().saveConfig(HomeHelper.PROP_OLDHOME, "" + nnew); addFormNotice(_("Home page changed")); } - } else if (adding || deleting) { + } else if (adding || deleting || restoring) { String prop; String dflt; if ("1".equals(group)) { @@ -38,12 +39,24 @@ public class ConfigHomeHandler extends FormHandler { } else if ("2".equals(group)) { prop = HomeHelper.PROP_SERVICES; dflt = HomeHelper.DEFAULT_SERVICES; + } else if ("3".equals(group)) { + prop = SearchHelper.PROP_ENGINES; + dflt = SearchHelper.ENGINES_DEFAULT; } else { addFormError("Bad group"); return; } + if (restoring) { + _context.router().saveConfig(prop, dflt); + addFormNotice(_("Restored default settings")); + return; + } String config = _context.getProperty(prop, dflt); - Collection apps = HomeHelper.buildApps(_context, config); + Collection apps; + if ("3".equals(group)) + apps = HomeHelper.buildSearchApps(config); + else + apps = HomeHelper.buildApps(_context, config); if (adding) { String name = getJettyString("name"); if (name == null || name.length() <= 0) { @@ -80,7 +93,7 @@ public class ConfigHomeHandler extends FormHandler { } } } - HomeHelper.saveApps(_context, prop, apps); + HomeHelper.saveApps(_context, prop, apps, !("3".equals(group))); } else { addFormError(_("Unsupported")); } diff --git a/apps/routerconsole/java/src/net/i2p/router/web/HomeHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/HomeHelper.java index 6e8ba44ea..a8d396144 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/HomeHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/HomeHelper.java @@ -71,6 +71,10 @@ public class HomeHelper extends HelperBase { return configTable(PROP_FAVORITES, DEFAULT_FAVORITES); } + public String getConfigSearch() { + return configTable(SearchHelper.PROP_ENGINES, SearchHelper.ENGINES_DEFAULT); + } + public String getConfigHome() { boolean oldHome = _context.getBooleanProperty(PROP_OLDHOME); return oldHome ? "checked=\"true\"" : ""; @@ -96,7 +100,11 @@ public class HomeHelper extends HelperBase { private String configTable(String prop, String dflt) { String config = _context.getProperty(prop, dflt); - Collection apps = buildApps(_context, config); + Collection apps; + if (prop.equals(SearchHelper.PROP_ENGINES)) + apps = buildSearchApps(config); + else + apps = buildApps(_context, config); return renderConfig(apps); } @@ -113,13 +121,26 @@ public class HomeHelper extends HelperBase { return apps; } - static void saveApps(RouterContext ctx, String prop, Collection apps) { + static Collection buildSearchApps(String config) { + String[] args = config.split("" + S); + Set apps = new TreeSet(new AppComparator()); + for (int i = 0; i < args.length - 1; i += 2) { + String name = args[i]; + String url = args[i+1]; + apps.add(new App(name, null, url, null)); + } + return apps; + } + + static void saveApps(RouterContext ctx, String prop, Collection apps, boolean full) { StringBuilder buf = new StringBuilder(1024); for (App app : apps) { - buf.append(app.name).append(S) - .append(app.desc).append(S) - .append(app.url).append(S) - .append(app.icon).append(S); + buf.append(app.name).append(S); + if (full) + buf.append(app.desc).append(S); + buf.append(app.url).append(S); + if (full) + buf.append(app.icon).append(S); } ctx.router().saveConfig(prop, buf.toString()); } @@ -152,7 +173,7 @@ public class HomeHelper extends HelperBase { StringBuilder buf = new StringBuilder(1024); buf.append("\n"); } - buf.append("" + ""); diff --git a/apps/routerconsole/java/src/net/i2p/router/web/SearchHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/SearchHelper.java index 876284c09..f4d7d820f 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/SearchHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/SearchHelper.java @@ -17,10 +17,10 @@ public class SearchHelper extends HelperBase { private Map _engines = new TreeMap(); private static final char S = ';'; - private static final String PROP_ENGINES = "routerconsole.searchEngines"; + static final String PROP_ENGINES = "routerconsole.searchEngines"; private static final String PROP_DEFAULT = "routerconsole.searchEngine"; - private static final String PROP_DEFAULTS = + static final String ENGINES_DEFAULT = "eepsites.i2p" + S + "http://eepsites.i2p/Content/Search/SearchResults.aspx?inpQuery=%s" + S + "epsilon.i2p" + S + "http://epsilon.i2p/search.jsp?q=%s" + S + "sprongle.i2p" + S + "http://sprongle.i2p/sprongle.php?q=%s" + S + @@ -40,7 +40,7 @@ public class SearchHelper extends HelperBase { } private void buildEngineMap() { - String config = _context.getProperty(PROP_ENGINES, PROP_DEFAULTS); + String config = _context.getProperty(PROP_ENGINES, ENGINES_DEFAULT); String[] args = config.split("" + S); for (int i = 0; i < args.length - 1; i += 2) { String name = args[i]; diff --git a/apps/routerconsole/jsp/confighome.jsp b/apps/routerconsole/jsp/confighome.jsp index 99a3c150c..e2e941361 100644 --- a/apps/routerconsole/jsp/confighome.jsp +++ b/apps/routerconsole/jsp/confighome.jsp @@ -33,6 +33,19 @@ " > +

<%=intl._("Search Engines")%>

+
+ + + +
+ " > + " > + " > + " > +
+ +

<%=intl._("Recommended Eepsites")%>

@@ -41,6 +54,7 @@
" > " > + " > " >
@@ -53,6 +67,7 @@
" > " > + " > " >
") .append(_("Remove")) - .append("") + .append("") .append(_("Name")) .append("") .append(_("URL")) @@ -160,7 +181,11 @@ public class HomeHelper extends HelperBase { for (App app : apps) { buf.append("
") + .append("\">"); + if (app.icon != null) { + buf.append(""); + } + buf.append("") .append(app.name) .append("
") + buf.append("
") .append(_("Add")).append(":" + "