forked from I2P_Developers/i2p.i2p
Console: Split net.i2p.router.web into two packages, and move the new .helper package to the war
This commit is contained in:
@ -123,7 +123,7 @@
|
|||||||
<target name="jar1" depends="compile, bundle-news, bundle-countries, jarUpToDate, listChangedFiles" unless="jar.uptodate" >
|
<target name="jar1" depends="compile, bundle-news, bundle-countries, jarUpToDate, listChangedFiles" unless="jar.uptodate" >
|
||||||
<!-- set if unset -->
|
<!-- set if unset -->
|
||||||
<property name="workspace.changes.j.tr" value="" />
|
<property name="workspace.changes.j.tr" value="" />
|
||||||
<jar destfile="./build/routerconsole.jar" basedir="./build/obj" includes="**/*.class">
|
<jar destfile="./build/routerconsole.jar" basedir="./build/obj" excludes="net/i2p/router/web/helpers/*">
|
||||||
<manifest>
|
<manifest>
|
||||||
<!-- DTG added in 0.8.4, not in the classpath for very old installs, before we changed wrapper.config to specify * -->
|
<!-- DTG added in 0.8.4, not in the classpath for very old installs, before we changed wrapper.config to specify * -->
|
||||||
<!-- very old installs don't have i2psnark,jstl,standard in the classpath... not added in WebAppConfiguration any more -->
|
<!-- very old installs don't have i2psnark,jstl,standard in the classpath... not added in WebAppConfiguration any more -->
|
||||||
@ -169,7 +169,7 @@
|
|||||||
<compilerarg line="${javac.compilerargs}" />
|
<compilerarg line="${javac.compilerargs}" />
|
||||||
</javac>
|
</javac>
|
||||||
<!-- jar again to get the latest messages_*.class files -->
|
<!-- jar again to get the latest messages_*.class files -->
|
||||||
<jar destfile="./build/routerconsole.jar" basedir="./build/obj" includes="**/*.class" update="true" />
|
<jar destfile="./build/routerconsole.jar" basedir="./build/obj" includes="**/messages_*.class" update="true" />
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="jarUpToDate">
|
<target name="jarUpToDate">
|
||||||
@ -312,6 +312,7 @@
|
|||||||
<attribute name="X-Compile-Source-JDK" value="${javac.version}" />
|
<attribute name="X-Compile-Source-JDK" value="${javac.version}" />
|
||||||
<attribute name="X-Compile-Target-JDK" value="${javac.version}" />
|
<attribute name="X-Compile-Target-JDK" value="${javac.version}" />
|
||||||
</manifest>
|
</manifest>
|
||||||
|
<classes dir="./build/obj" includes="net/i2p/router/web/helpers/*" />
|
||||||
</war>
|
</war>
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
@ -387,8 +388,7 @@
|
|||||||
<pathelement location="../../systray/java/build/obj" />
|
<pathelement location="../../systray/java/build/obj" />
|
||||||
<pathelement location="../../desktopgui/dist/desktopgui.jar" />
|
<pathelement location="../../desktopgui/dist/desktopgui.jar" />
|
||||||
<pathelement location="../../../installer/lib/wrapper/all/wrapper.jar" />
|
<pathelement location="../../../installer/lib/wrapper/all/wrapper.jar" />
|
||||||
<pathelement location="build/routerconsole.jar" />
|
<pathelement location="build/obj/" />
|
||||||
<pathelement location="build/" />
|
|
||||||
<pathelement location="../../../router/java/build/router.jar" />
|
<pathelement location="../../../router/java/build/router.jar" />
|
||||||
<pathelement location="../../../core/java/build/i2p.jar" />
|
<pathelement location="../../../core/java/build/i2p.jar" />
|
||||||
</classpath>
|
</classpath>
|
||||||
@ -427,8 +427,7 @@
|
|||||||
<pathelement location="../../systray/java/build/obj" />
|
<pathelement location="../../systray/java/build/obj" />
|
||||||
<pathelement location="../../desktopgui/dist/desktopgui.jar" />
|
<pathelement location="../../desktopgui/dist/desktopgui.jar" />
|
||||||
<pathelement location="../../../installer/lib/wrapper/all/wrapper.jar" />
|
<pathelement location="../../../installer/lib/wrapper/all/wrapper.jar" />
|
||||||
<pathelement location="build/routerconsole.jar" />
|
<pathelement location="build/obj/" />
|
||||||
<pathelement location="build" />
|
|
||||||
<pathelement location="../../../router/java/build/router.jar" />
|
<pathelement location="../../../router/java/build/router.jar" />
|
||||||
<pathelement location="../../../core/java/build/i2p.jar" />
|
<pathelement location="../../../core/java/build/i2p.jar" />
|
||||||
</classpath>
|
</classpath>
|
||||||
|
@ -16,11 +16,10 @@ import net.i2p.data.DataFormatException;
|
|||||||
import net.i2p.data.DataHelper;
|
import net.i2p.data.DataHelper;
|
||||||
import net.i2p.data.SigningPublicKey;
|
import net.i2p.data.SigningPublicKey;
|
||||||
import net.i2p.router.RouterContext;
|
import net.i2p.router.RouterContext;
|
||||||
import net.i2p.router.web.ConfigClientsHelper;
|
|
||||||
import net.i2p.router.web.ConfigUpdateHandler;
|
import net.i2p.router.web.ConfigUpdateHandler;
|
||||||
import net.i2p.router.web.LogsHelper;
|
|
||||||
import net.i2p.router.web.Messages;
|
import net.i2p.router.web.Messages;
|
||||||
import net.i2p.router.web.PluginStarter;
|
import net.i2p.router.web.PluginStarter;
|
||||||
|
import net.i2p.router.web.RouterConsoleRunner;
|
||||||
import net.i2p.update.*;
|
import net.i2p.update.*;
|
||||||
import net.i2p.util.EepGet;
|
import net.i2p.util.EepGet;
|
||||||
import net.i2p.util.FileUtil;
|
import net.i2p.util.FileUtil;
|
||||||
@ -387,7 +386,7 @@ class PluginUpdateRunner extends UpdateRunner {
|
|||||||
_appName = appName;
|
_appName = appName;
|
||||||
_newVersion = version;
|
_newVersion = version;
|
||||||
|
|
||||||
String minVersion = ConfigClientsHelper.stripHTML(props, "min-i2p-version");
|
String minVersion = PluginStarter.stripHTML(props, "min-i2p-version");
|
||||||
if (minVersion != null &&
|
if (minVersion != null &&
|
||||||
VersionComparator.comp(CoreVersion.VERSION, minVersion) < 0) {
|
VersionComparator.comp(CoreVersion.VERSION, minVersion) < 0) {
|
||||||
to.delete();
|
to.delete();
|
||||||
@ -395,7 +394,7 @@ class PluginUpdateRunner extends UpdateRunner {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
minVersion = ConfigClientsHelper.stripHTML(props, "min-java-version");
|
minVersion = PluginStarter.stripHTML(props, "min-java-version");
|
||||||
if (minVersion != null &&
|
if (minVersion != null &&
|
||||||
VersionComparator.comp(System.getProperty("java.version"), minVersion) < 0) {
|
VersionComparator.comp(System.getProperty("java.version"), minVersion) < 0) {
|
||||||
to.delete();
|
to.delete();
|
||||||
@ -436,22 +435,22 @@ class PluginUpdateRunner extends UpdateRunner {
|
|||||||
statusDone("<b>" + _t("Downloaded plugin version {0} is not newer than installed plugin", version) + "</b>");
|
statusDone("<b>" + _t("Downloaded plugin version {0} is not newer than installed plugin", version) + "</b>");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
minVersion = ConfigClientsHelper.stripHTML(props, "min-installed-version");
|
minVersion = PluginStarter.stripHTML(props, "min-installed-version");
|
||||||
if (minVersion != null &&
|
if (minVersion != null &&
|
||||||
VersionComparator.comp(minVersion, oldVersion) > 0) {
|
VersionComparator.comp(minVersion, oldVersion) > 0) {
|
||||||
to.delete();
|
to.delete();
|
||||||
statusDone("<b>" + _t("Plugin update requires installed plugin version {0} or higher", minVersion) + "</b>");
|
statusDone("<b>" + _t("Plugin update requires installed plugin version {0} or higher", minVersion) + "</b>");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
String maxVersion = ConfigClientsHelper.stripHTML(props, "max-installed-version");
|
String maxVersion = PluginStarter.stripHTML(props, "max-installed-version");
|
||||||
if (maxVersion != null &&
|
if (maxVersion != null &&
|
||||||
VersionComparator.comp(maxVersion, oldVersion) < 0) {
|
VersionComparator.comp(maxVersion, oldVersion) < 0) {
|
||||||
to.delete();
|
to.delete();
|
||||||
statusDone("<b>" + _t("Plugin update requires installed plugin version {0} or lower", maxVersion) + "</b>");
|
statusDone("<b>" + _t("Plugin update requires installed plugin version {0} or lower", maxVersion) + "</b>");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
oldVersion = LogsHelper.jettyVersion();
|
oldVersion = RouterConsoleRunner.jettyVersion();
|
||||||
minVersion = ConfigClientsHelper.stripHTML(props, "min-jetty-version");
|
minVersion = PluginStarter.stripHTML(props, "min-jetty-version");
|
||||||
if (minVersion != null &&
|
if (minVersion != null &&
|
||||||
VersionComparator.comp(minVersion, oldVersion) > 0) {
|
VersionComparator.comp(minVersion, oldVersion) > 0) {
|
||||||
to.delete();
|
to.delete();
|
||||||
@ -465,7 +464,7 @@ class PluginUpdateRunner extends UpdateRunner {
|
|||||||
statusDone("<b>" + _t("Plugin requires Jetty version {0} or lower", "8.9999") + "</b>");
|
statusDone("<b>" + _t("Plugin requires Jetty version {0} or lower", "8.9999") + "</b>");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
maxVersion = ConfigClientsHelper.stripHTML(props, "max-jetty-version");
|
maxVersion = PluginStarter.stripHTML(props, "max-jetty-version");
|
||||||
if (maxVersion != null &&
|
if (maxVersion != null &&
|
||||||
VersionComparator.comp(maxVersion, oldVersion) < 0) {
|
VersionComparator.comp(maxVersion, oldVersion) < 0) {
|
||||||
to.delete();
|
to.delete();
|
||||||
@ -536,10 +535,10 @@ class PluginUpdateRunner extends UpdateRunner {
|
|||||||
// start everything unless it was disabled and not running before
|
// start everything unless it was disabled and not running before
|
||||||
try {
|
try {
|
||||||
if (PluginStarter.startPlugin(_context, appName)) {
|
if (PluginStarter.startPlugin(_context, appName)) {
|
||||||
String linkName = ConfigClientsHelper.stripHTML(props, "consoleLinkName_" + Messages.getLanguage(_context));
|
String linkName = PluginStarter.stripHTML(props, "consoleLinkName_" + Messages.getLanguage(_context));
|
||||||
if (linkName == null)
|
if (linkName == null)
|
||||||
linkName = ConfigClientsHelper.stripHTML(props, "consoleLinkName");
|
linkName = PluginStarter.stripHTML(props, "consoleLinkName");
|
||||||
String linkURL = ConfigClientsHelper.stripHTML(props, "consoleLinkURL");
|
String linkURL = PluginStarter.stripHTML(props, "consoleLinkURL");
|
||||||
String link;
|
String link;
|
||||||
if (linkName != null && linkURL != null)
|
if (linkName != null && linkURL != null)
|
||||||
link = "<a target=\"_blank\" href=\"" + linkURL + "\"/>" + linkName + ' ' + version + "</a>";
|
link = "<a target=\"_blank\" href=\"" + linkURL + "\"/>" + linkName + ' ' + version + "</a>";
|
||||||
|
19
apps/routerconsole/java/src/net/i2p/router/web/App.java
Normal file
19
apps/routerconsole/java/src/net/i2p/router/web/App.java
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
package net.i2p.router.web;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 0.9.33 moved from HomeHelper
|
||||||
|
*/
|
||||||
|
public class App {
|
||||||
|
public final String name;
|
||||||
|
public final String desc;
|
||||||
|
public final String url;
|
||||||
|
public final String icon;
|
||||||
|
|
||||||
|
public App(String name, String desc, String url, String icon) {
|
||||||
|
this.name = name;
|
||||||
|
this.desc = desc;
|
||||||
|
this.url = url;
|
||||||
|
this.icon = icon;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -18,6 +18,8 @@ public class CSSHelper extends HelperBase {
|
|||||||
|
|
||||||
public static final String PROP_UNIVERSAL_THEMING = "routerconsole.universal.theme";
|
public static final String PROP_UNIVERSAL_THEMING = "routerconsole.universal.theme";
|
||||||
public static final String PROP_THEME_NAME = "routerconsole.theme";
|
public static final String PROP_THEME_NAME = "routerconsole.theme";
|
||||||
|
/** @since 0.9.33 moved from ConfigUIHelper */
|
||||||
|
public static final String PROP_THEME_PFX = PROP_THEME_NAME + '.';
|
||||||
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/";
|
||||||
private static final String FORCE = "classic";
|
private static final String FORCE = "classic";
|
||||||
|
@ -5,6 +5,7 @@ import java.io.IOException;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
|
|
||||||
|
import net.i2p.I2PAppContext;
|
||||||
import net.i2p.app.ClientApp;
|
import net.i2p.app.ClientApp;
|
||||||
import net.i2p.app.ClientAppManager;
|
import net.i2p.app.ClientAppManager;
|
||||||
import net.i2p.app.ClientAppState;
|
import net.i2p.app.ClientAppState;
|
||||||
@ -29,6 +30,7 @@ public class ConfigServiceHandler extends FormHandler {
|
|||||||
|
|
||||||
private static final String LISTENER_AVAILABLE = "3.2.0";
|
private static final String LISTENER_AVAILABLE = "3.2.0";
|
||||||
private static final String PROPERTIES_AVAILABLE = "3.2.0";
|
private static final String PROPERTIES_AVAILABLE = "3.2.0";
|
||||||
|
private static final String LOCATION_AVAILABLE = "3.3.7";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Register two shutdown hooks, one to rekey and/or tell the wrapper we are stopping,
|
* Register two shutdown hooks, one to rekey and/or tell the wrapper we are stopping,
|
||||||
@ -264,7 +266,7 @@ public class ConfigServiceHandler extends FormHandler {
|
|||||||
} catch (Throwable t) {
|
} catch (Throwable t) {
|
||||||
addFormError("Warning: unable to contact the service manager - " + t.getMessage());
|
addFormError("Warning: unable to contact the service manager - " + t.getMessage());
|
||||||
}
|
}
|
||||||
File wlog = LogsHelper.wrapperLogFile(_context);
|
File wlog = wrapperLogFile(_context);
|
||||||
addFormNotice(_t("Threads dumped to {0}", wlog.getAbsolutePath()));
|
addFormNotice(_t("Threads dumped to {0}", wlog.getAbsolutePath()));
|
||||||
} else if (_t("View console on startup").equals(_action)) {
|
} else if (_t("View console on startup").equals(_action)) {
|
||||||
browseOnStartup(true);
|
browseOnStartup(true);
|
||||||
@ -284,6 +286,37 @@ public class ConfigServiceHandler extends FormHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Does not necessarily exist.
|
||||||
|
*
|
||||||
|
* @return non-null, doesn't necessarily exist
|
||||||
|
* @since 0.9.1, public since 0.9.27, moved from LogsHelper in 0.9.33
|
||||||
|
*/
|
||||||
|
public static File wrapperLogFile(I2PAppContext ctx) {
|
||||||
|
File f = null;
|
||||||
|
if (ctx.hasWrapper()) {
|
||||||
|
String wv = System.getProperty("wrapper.version");
|
||||||
|
if (wv != null && VersionComparator.comp(wv, LOCATION_AVAILABLE) >= 0) {
|
||||||
|
try {
|
||||||
|
f = WrapperManager.getWrapperLogFile();
|
||||||
|
} catch (Throwable t) {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (f == null || !f.exists()) {
|
||||||
|
// RouterLaunch puts the location here if no wrapper
|
||||||
|
String path = System.getProperty("wrapper.logfile");
|
||||||
|
if (path != null) {
|
||||||
|
f = new File(path);
|
||||||
|
} else {
|
||||||
|
// look in new and old places
|
||||||
|
f = new File(System.getProperty("java.io.tmpdir"), "wrapper.log");
|
||||||
|
if (!f.exists())
|
||||||
|
f = new File(ctx.getBaseDir(), "wrapper.log");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return f;
|
||||||
|
}
|
||||||
|
|
||||||
private void installService() {
|
private void installService() {
|
||||||
try {
|
try {
|
||||||
Runtime.getRuntime().exec("install_i2p_service_winnt.bat");
|
Runtime.getRuntime().exec("install_i2p_service_winnt.bat");
|
||||||
|
@ -5,7 +5,7 @@ import java.util.List;
|
|||||||
import net.i2p.data.Hash;
|
import net.i2p.data.Hash;
|
||||||
import net.i2p.router.RouterContext;
|
import net.i2p.router.RouterContext;
|
||||||
|
|
||||||
class ContextHelper {
|
public class ContextHelper {
|
||||||
|
|
||||||
/** @throws IllegalStateException if no context available */
|
/** @throws IllegalStateException if no context available */
|
||||||
public static RouterContext getContext(String contextId) {
|
public static RouterContext getContext(String contextId) {
|
||||||
|
@ -0,0 +1,16 @@
|
|||||||
|
package net.i2p.router.web;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Basic graph defaults
|
||||||
|
*
|
||||||
|
* @since 0.9.33 pulled out of GraphHelper
|
||||||
|
*/
|
||||||
|
public class GraphConstants {
|
||||||
|
|
||||||
|
private GraphConstants() {}
|
||||||
|
|
||||||
|
public static final int DEFAULT_X = 400;
|
||||||
|
public static final int DEFAULT_Y = 100;
|
||||||
|
public static final int MAX_X = 2048;
|
||||||
|
public static final int MAX_Y = 1024;
|
||||||
|
}
|
@ -11,8 +11,10 @@ public abstract class HelperBase {
|
|||||||
protected RouterContext _context;
|
protected RouterContext _context;
|
||||||
protected Writer _out;
|
protected Writer _out;
|
||||||
|
|
||||||
static final String PROP_ADVANCED = "routerconsole.advanced";
|
/** @since public since 0.9.33, was package private */
|
||||||
static final String CHECKED = " checked=\"checked\" ";
|
public static final String PROP_ADVANCED = "routerconsole.advanced";
|
||||||
|
/** @since public since 0.9.33, was package private */
|
||||||
|
public static final String CHECKED = " checked=\"checked\" ";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Configure this bean to query a particular router context
|
* Configure this bean to query a particular router context
|
||||||
|
@ -9,7 +9,8 @@ import net.i2p.util.Translate;
|
|||||||
public class Messages extends Translate {
|
public class Messages extends Translate {
|
||||||
private static final String BUNDLE_NAME = "net.i2p.router.web.messages";
|
private static final String BUNDLE_NAME = "net.i2p.router.web.messages";
|
||||||
|
|
||||||
static final String COUNTRY_BUNDLE_NAME = "net.i2p.router.countries.messages";
|
/** @since public since 0.9.33, was package private */
|
||||||
|
public static final String COUNTRY_BUNDLE_NAME = "net.i2p.router.countries.messages";
|
||||||
|
|
||||||
/** lang in routerconsole.lang property, else current locale */
|
/** lang in routerconsole.lang property, else current locale */
|
||||||
public static String getString(String key, I2PAppContext ctx) {
|
public static String getString(String key, I2PAppContext ctx) {
|
||||||
|
@ -7,7 +7,7 @@ import java.util.Map;
|
|||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
import net.i2p.I2PAppContext;
|
import net.i2p.I2PAppContext;
|
||||||
import net.i2p.router.web.HomeHelper.App;
|
import net.i2p.router.web.App;
|
||||||
|
|
||||||
public class NavHelper {
|
public class NavHelper {
|
||||||
private static final Map<String, String> _apps = new ConcurrentHashMap<String, String>(4);
|
private static final Map<String, String> _apps = new ConcurrentHashMap<String, String>(4);
|
||||||
@ -91,12 +91,12 @@ public class NavHelper {
|
|||||||
* For HomeHelper
|
* For HomeHelper
|
||||||
* @param ctx unused
|
* @param ctx unused
|
||||||
* @return non-null, possibly empty
|
* @return non-null, possibly empty
|
||||||
* @since 0.9
|
* @since 0.9, public since 0.9.33, was package private
|
||||||
*/
|
*/
|
||||||
static List<HomeHelper.App> getClientApps(I2PAppContext ctx) {
|
public static List<App> getClientApps(I2PAppContext ctx) {
|
||||||
if (_apps.isEmpty())
|
if (_apps.isEmpty())
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
List<HomeHelper.App> rv = new ArrayList<App>(_apps.size());
|
List<App> rv = new ArrayList<App>(_apps.size());
|
||||||
for (Map.Entry<String, String> e : _apps.entrySet()) {
|
for (Map.Entry<String, String> e : _apps.entrySet()) {
|
||||||
String name = e.getKey();
|
String name = e.getKey();
|
||||||
String path = e.getValue();
|
String path = e.getValue();
|
||||||
@ -113,7 +113,7 @@ public class NavHelper {
|
|||||||
icon = "/themes/console/images/email.png";
|
icon = "/themes/console/images/email.png";
|
||||||
else
|
else
|
||||||
icon = "/themes/console/images/plugin.png";
|
icon = "/themes/console/images/plugin.png";
|
||||||
HomeHelper.App app = new HomeHelper.App(name, tip, path, icon);
|
App app = new App(name, tip, path, icon);
|
||||||
rv.add(app);
|
rv.add(app);
|
||||||
}
|
}
|
||||||
return rv;
|
return rv;
|
||||||
|
@ -87,7 +87,10 @@ public class PluginStarter implements Runnable {
|
|||||||
_context = ctx;
|
_context = ctx;
|
||||||
}
|
}
|
||||||
|
|
||||||
static boolean pluginsEnabled(I2PAppContext ctx) {
|
/**
|
||||||
|
* @since public since 0.9.33, was package private
|
||||||
|
*/
|
||||||
|
public static boolean pluginsEnabled(I2PAppContext ctx) {
|
||||||
return ctx.getBooleanPropertyDefaultTrue("router.enablePlugins");
|
return ctx.getBooleanPropertyDefaultTrue("router.enablePlugins");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -106,9 +109,9 @@ public class PluginStarter implements Runnable {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* threaded
|
* threaded
|
||||||
* @since 0.8.13
|
* @since 0.8.13, public since 0.9.33, was package private
|
||||||
*/
|
*/
|
||||||
static void updateAll(RouterContext ctx) {
|
public static void updateAll(RouterContext ctx) {
|
||||||
Thread t = new I2PAppThread(new PluginUpdater(ctx), "PluginUpdater", true);
|
Thread t = new I2PAppThread(new PluginUpdater(ctx), "PluginUpdater", true);
|
||||||
t.start();
|
t.start();
|
||||||
}
|
}
|
||||||
@ -316,7 +319,7 @@ public class PluginStarter implements Runnable {
|
|||||||
// For the following, we use the exact same translated strings as in PluginUpdateRunner
|
// For the following, we use the exact same translated strings as in PluginUpdateRunner
|
||||||
// to avoid duplication
|
// to avoid duplication
|
||||||
|
|
||||||
String minVersion = ConfigClientsHelper.stripHTML(props, "min-i2p-version");
|
String minVersion = stripHTML(props, "min-i2p-version");
|
||||||
if (minVersion != null &&
|
if (minVersion != null &&
|
||||||
VersionComparator.comp(CoreVersion.VERSION, minVersion) < 0) {
|
VersionComparator.comp(CoreVersion.VERSION, minVersion) < 0) {
|
||||||
String foo = "Plugin " + appName + " requires I2P version " + minVersion + " or higher";
|
String foo = "Plugin " + appName + " requires I2P version " + minVersion + " or higher";
|
||||||
@ -326,7 +329,7 @@ public class PluginStarter implements Runnable {
|
|||||||
throw new Exception(foo);
|
throw new Exception(foo);
|
||||||
}
|
}
|
||||||
|
|
||||||
minVersion = ConfigClientsHelper.stripHTML(props, "min-java-version");
|
minVersion = stripHTML(props, "min-java-version");
|
||||||
if (minVersion != null &&
|
if (minVersion != null &&
|
||||||
VersionComparator.comp(System.getProperty("java.version"), minVersion) < 0) {
|
VersionComparator.comp(System.getProperty("java.version"), minVersion) < 0) {
|
||||||
String foo = "Plugin " + appName + " requires Java version " + minVersion + " or higher";
|
String foo = "Plugin " + appName + " requires Java version " + minVersion + " or higher";
|
||||||
@ -336,8 +339,8 @@ public class PluginStarter implements Runnable {
|
|||||||
throw new Exception(foo);
|
throw new Exception(foo);
|
||||||
}
|
}
|
||||||
|
|
||||||
String jVersion = LogsHelper.jettyVersion();
|
String jVersion = RouterConsoleRunner.jettyVersion();
|
||||||
minVersion = ConfigClientsHelper.stripHTML(props, "min-jetty-version");
|
minVersion = stripHTML(props, "min-jetty-version");
|
||||||
if (minVersion != null &&
|
if (minVersion != null &&
|
||||||
VersionComparator.comp(minVersion, jVersion) > 0) {
|
VersionComparator.comp(minVersion, jVersion) > 0) {
|
||||||
String foo = "Plugin " + appName + " requires Jetty version " + minVersion + " or higher";
|
String foo = "Plugin " + appName + " requires Jetty version " + minVersion + " or higher";
|
||||||
@ -348,7 +351,7 @@ public class PluginStarter implements Runnable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
String blacklistVersion = jetty9Blacklist.get(appName);
|
String blacklistVersion = jetty9Blacklist.get(appName);
|
||||||
String curVersion = ConfigClientsHelper.stripHTML(props, "version");
|
String curVersion = stripHTML(props, "version");
|
||||||
if (blacklistVersion != null &&
|
if (blacklistVersion != null &&
|
||||||
VersionComparator.comp(curVersion, blacklistVersion) <= 0) {
|
VersionComparator.comp(curVersion, blacklistVersion) <= 0) {
|
||||||
String foo = "Plugin " + appName + " requires Jetty version 8.9999 or lower";
|
String foo = "Plugin " + appName + " requires Jetty version 8.9999 or lower";
|
||||||
@ -358,7 +361,7 @@ public class PluginStarter implements Runnable {
|
|||||||
throw new Exception(foo);
|
throw new Exception(foo);
|
||||||
}
|
}
|
||||||
|
|
||||||
String maxVersion = ConfigClientsHelper.stripHTML(props, "max-jetty-version");
|
String maxVersion = stripHTML(props, "max-jetty-version");
|
||||||
if (maxVersion != null &&
|
if (maxVersion != null &&
|
||||||
VersionComparator.comp(maxVersion, jVersion) < 0) {
|
VersionComparator.comp(maxVersion, jVersion) < 0) {
|
||||||
String foo = "Plugin " + appName + " requires Jetty version " + maxVersion + " or lower";
|
String foo = "Plugin " + appName + " requires Jetty version " + maxVersion + " or lower";
|
||||||
@ -379,7 +382,7 @@ public class PluginStarter implements Runnable {
|
|||||||
String name = tfiles[i].getName();
|
String name = tfiles[i].getName();
|
||||||
if (tfiles[i].isDirectory() && (!Arrays.asList(STANDARD_THEMES).contains(tfiles[i]))) {
|
if (tfiles[i].isDirectory() && (!Arrays.asList(STANDARD_THEMES).contains(tfiles[i]))) {
|
||||||
// deprecated
|
// deprecated
|
||||||
ctx.router().setConfigSetting(ConfigUIHelper.PROP_THEME_PFX + name, tfiles[i].getAbsolutePath());
|
ctx.router().setConfigSetting(CSSHelper.PROP_THEME_PFX + name, tfiles[i].getAbsolutePath());
|
||||||
// we don't need to save
|
// we don't need to save
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -438,7 +441,7 @@ public class PluginStarter implements Runnable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Check for iconfile in plugin.properties
|
// Check for iconfile in plugin.properties
|
||||||
String icfile = ConfigClientsHelper.stripHTML(props, "console-icon");
|
String icfile = stripHTML(props, "console-icon");
|
||||||
if (icfile != null && !icfile.contains("..")) {
|
if (icfile != null && !icfile.contains("..")) {
|
||||||
StringBuilder buf = new StringBuilder(32);
|
StringBuilder buf = new StringBuilder(32);
|
||||||
buf.append('/').append(appName);
|
buf.append('/').append(appName);
|
||||||
@ -481,14 +484,14 @@ public class PluginStarter implements Runnable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// add summary bar link
|
// add summary bar link
|
||||||
String name = ConfigClientsHelper.stripHTML(props, "consoleLinkName_" + Messages.getLanguage(ctx));
|
String name = stripHTML(props, "consoleLinkName_" + Messages.getLanguage(ctx));
|
||||||
if (name == null)
|
if (name == null)
|
||||||
name = ConfigClientsHelper.stripHTML(props, "consoleLinkName");
|
name = stripHTML(props, "consoleLinkName");
|
||||||
String url = ConfigClientsHelper.stripHTML(props, "consoleLinkURL");
|
String url = stripHTML(props, "consoleLinkURL");
|
||||||
if (name != null && url != null && name.length() > 0 && url.length() > 0) {
|
if (name != null && url != null && name.length() > 0 && url.length() > 0) {
|
||||||
String tip = ConfigClientsHelper.stripHTML(props, "consoleLinkTooltip_" + Messages.getLanguage(ctx));
|
String tip = stripHTML(props, "consoleLinkTooltip_" + Messages.getLanguage(ctx));
|
||||||
if (tip == null)
|
if (tip == null)
|
||||||
tip = ConfigClientsHelper.stripHTML(props, "consoleLinkTooltip");
|
tip = stripHTML(props, "consoleLinkTooltip");
|
||||||
NavHelper.registerApp(name, url, tip, iconfile);
|
NavHelper.registerApp(name, url, tip, iconfile);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -546,9 +549,9 @@ public class PluginStarter implements Runnable {
|
|||||||
|
|
||||||
// remove summary bar link
|
// remove summary bar link
|
||||||
Properties props = pluginProperties(ctx, appName);
|
Properties props = pluginProperties(ctx, appName);
|
||||||
String name = ConfigClientsHelper.stripHTML(props, "consoleLinkName_" + Messages.getLanguage(ctx));
|
String name = stripHTML(props, "consoleLinkName_" + Messages.getLanguage(ctx));
|
||||||
if (name == null)
|
if (name == null)
|
||||||
name = ConfigClientsHelper.stripHTML(props, "consoleLinkName");
|
name = stripHTML(props, "consoleLinkName");
|
||||||
if (name != null && name.length() > 0)
|
if (name != null && name.length() > 0)
|
||||||
NavHelper.unregisterApp(name);
|
NavHelper.unregisterApp(name);
|
||||||
|
|
||||||
@ -557,8 +560,11 @@ public class PluginStarter implements Runnable {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @return true on success - caller should call stopPlugin() first */
|
/**
|
||||||
static boolean deletePlugin(RouterContext ctx, String appName) throws Exception {
|
* @return true on success - caller should call stopPlugin() first
|
||||||
|
* @since public since 0.9.33, was package private
|
||||||
|
*/
|
||||||
|
public static boolean deletePlugin(RouterContext ctx, String appName) throws Exception {
|
||||||
Log log = ctx.logManager().getLog(PluginStarter.class);
|
Log log = ctx.logManager().getLog(PluginStarter.class);
|
||||||
File pluginDir = new File(ctx.getConfigDir(), PLUGIN_DIR + '/' + appName);
|
File pluginDir = new File(ctx.getConfigDir(), PLUGIN_DIR + '/' + appName);
|
||||||
if ((!pluginDir.exists()) || (!pluginDir.isDirectory())) {
|
if ((!pluginDir.exists()) || (!pluginDir.isDirectory())) {
|
||||||
@ -584,7 +590,7 @@ public class PluginStarter implements Runnable {
|
|||||||
for (int i = 0; i < tfiles.length; i++) {
|
for (int i = 0; i < tfiles.length; i++) {
|
||||||
String name = tfiles[i].getName();
|
String name = tfiles[i].getName();
|
||||||
if (tfiles[i].isDirectory() && (!Arrays.asList(STANDARD_THEMES).contains(tfiles[i]))) {
|
if (tfiles[i].isDirectory() && (!Arrays.asList(STANDARD_THEMES).contains(tfiles[i]))) {
|
||||||
removes.add(ConfigUIHelper.PROP_THEME_PFX + name);
|
removes.add(CSSHelper.PROP_THEME_PFX + name);
|
||||||
if (name.equals(current))
|
if (name.equals(current))
|
||||||
changes.put(CSSHelper.PROP_THEME_NAME, CSSHelper.DEFAULT_THEME);
|
changes.put(CSSHelper.PROP_THEME_NAME, CSSHelper.DEFAULT_THEME);
|
||||||
}
|
}
|
||||||
@ -1033,6 +1039,19 @@ public class PluginStarter implements Runnable {
|
|||||||
method.invoke(urlClassLoader, new Object[]{u});
|
method.invoke(urlClassLoader, new Object[]{u});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Like in DataHelper but doesn't convert null to ""
|
||||||
|
* There's a lot worse things a plugin could do but...
|
||||||
|
* @since moved from ConfigClientsHelper in 0.9.33
|
||||||
|
*/
|
||||||
|
public static String stripHTML(Properties props, String key) {
|
||||||
|
String orig = props.getProperty(key);
|
||||||
|
if (orig == null) return null;
|
||||||
|
String t1 = orig.replace('<', ' ');
|
||||||
|
String rv = t1.replace('>', ' ');
|
||||||
|
return rv;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* translate a string
|
* translate a string
|
||||||
* @since 0.9.30
|
* @since 0.9.30
|
||||||
|
@ -288,6 +288,11 @@ public class RouterConsoleRunner implements RouterApp {
|
|||||||
return _server;
|
return _server;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @since 0.8.13, moved from LogsHelper in 0.9.33 */
|
||||||
|
public static String jettyVersion() {
|
||||||
|
return Server.getVersion();
|
||||||
|
}
|
||||||
|
|
||||||
private void startTrayApp() {
|
private void startTrayApp() {
|
||||||
// if no permissions, don't even try
|
// if no permissions, don't even try
|
||||||
// isLaunchedAsService() always returns true on Linux
|
// isLaunchedAsService() always returns true on Linux
|
||||||
|
@ -13,6 +13,7 @@ import java.util.concurrent.Semaphore;
|
|||||||
|
|
||||||
import net.i2p.data.DataHelper;
|
import net.i2p.data.DataHelper;
|
||||||
import net.i2p.router.RouterContext;
|
import net.i2p.router.RouterContext;
|
||||||
|
import static net.i2p.router.web.GraphConstants.*;
|
||||||
import net.i2p.stat.Rate;
|
import net.i2p.stat.Rate;
|
||||||
import net.i2p.stat.RateStat;
|
import net.i2p.stat.RateStat;
|
||||||
import net.i2p.util.FileUtil;
|
import net.i2p.util.FileUtil;
|
||||||
@ -79,8 +80,8 @@ public class StatSummarizer implements Runnable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @since 0.8.7 */
|
/** @since 0.8.7, public since 0.9.33, was package private */
|
||||||
static boolean isDisabled() {
|
public static boolean isDisabled() {
|
||||||
return _instance == null || _instance._isDisabled;
|
return _instance == null || _instance._isDisabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -96,10 +97,14 @@ public class StatSummarizer implements Runnable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** list of SummaryListener instances */
|
/**
|
||||||
List<SummaryListener> getListeners() { return _listeners; }
|
* List of SummaryListener instances
|
||||||
|
* @since public since 0.9.33, was package private
|
||||||
|
*/
|
||||||
|
public List<SummaryListener> getListeners() { return _listeners; }
|
||||||
|
|
||||||
static final String DEFAULT_DATABASES = "bw.sendRate.60000" +
|
/** @since public since 0.9.33, was package private */
|
||||||
|
public static final String DEFAULT_DATABASES = "bw.sendRate.60000" +
|
||||||
",bw.recvRate.60000" +
|
",bw.recvRate.60000" +
|
||||||
// ",tunnel.testSuccessTime.60000" +
|
// ",tunnel.testSuccessTime.60000" +
|
||||||
// ",udp.outboundActiveCount.60000" +
|
// ",udp.outboundActiveCount.60000" +
|
||||||
@ -174,7 +179,7 @@ public class StatSummarizer implements Runnable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean renderPng(Rate rate, OutputStream out) throws IOException {
|
public boolean renderPng(Rate rate, OutputStream out) throws IOException {
|
||||||
return renderPng(rate, out, GraphHelper.DEFAULT_X, GraphHelper.DEFAULT_Y,
|
return renderPng(rate, out, DEFAULT_X, DEFAULT_Y,
|
||||||
false, false, false, false, -1, 0, true);
|
false, false, false, false, -1, 0, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -220,14 +225,14 @@ public class StatSummarizer implements Runnable {
|
|||||||
private boolean locked_renderPng(Rate rate, OutputStream out, int width, int height, boolean hideLegend,
|
private boolean locked_renderPng(Rate rate, OutputStream out, int width, int height, boolean hideLegend,
|
||||||
boolean hideGrid, boolean hideTitle, boolean showEvents, int periodCount,
|
boolean hideGrid, boolean hideTitle, boolean showEvents, int periodCount,
|
||||||
int end, boolean showCredit) throws IOException {
|
int end, boolean showCredit) throws IOException {
|
||||||
if (width > GraphHelper.MAX_X)
|
if (width > MAX_X)
|
||||||
width = GraphHelper.MAX_X;
|
width = MAX_X;
|
||||||
else if (width <= 0)
|
else if (width <= 0)
|
||||||
width = GraphHelper.DEFAULT_X;
|
width = DEFAULT_X;
|
||||||
if (height > GraphHelper.MAX_Y)
|
if (height > MAX_Y)
|
||||||
height = GraphHelper.MAX_Y;
|
height = MAX_Y;
|
||||||
else if (height <= 0)
|
else if (height <= 0)
|
||||||
height = GraphHelper.DEFAULT_Y;
|
height = DEFAULT_Y;
|
||||||
if (end < 0)
|
if (end < 0)
|
||||||
end = 0;
|
end = 0;
|
||||||
for (SummaryListener lsnr : _listeners) {
|
for (SummaryListener lsnr : _listeners) {
|
||||||
@ -321,14 +326,14 @@ public class StatSummarizer implements Runnable {
|
|||||||
if (txLsnr == null || rxLsnr == null)
|
if (txLsnr == null || rxLsnr == null)
|
||||||
throw new IOException("no rates for combined graph");
|
throw new IOException("no rates for combined graph");
|
||||||
|
|
||||||
if (width > GraphHelper.MAX_X)
|
if (width > MAX_X)
|
||||||
width = GraphHelper.MAX_X;
|
width = MAX_X;
|
||||||
else if (width <= 0)
|
else if (width <= 0)
|
||||||
width = GraphHelper.DEFAULT_X;
|
width = DEFAULT_X;
|
||||||
if (height > GraphHelper.MAX_Y)
|
if (height > MAX_Y)
|
||||||
height = GraphHelper.MAX_Y;
|
height = MAX_Y;
|
||||||
else if (height <= 0)
|
else if (height <= 0)
|
||||||
height = GraphHelper.DEFAULT_Y;
|
height = DEFAULT_Y;
|
||||||
txLsnr.renderPng(out, width, height, hideLegend, hideGrid, hideTitle, showEvents, periodCount,
|
txLsnr.renderPng(out, width, height, hideLegend, hideGrid, hideTitle, showEvents, periodCount,
|
||||||
end, showCredit, rxLsnr, _t("Bandwidth usage"));
|
end, showCredit, rxLsnr, _t("Bandwidth usage"));
|
||||||
return true;
|
return true;
|
||||||
@ -337,8 +342,9 @@ public class StatSummarizer implements Runnable {
|
|||||||
/**
|
/**
|
||||||
* @param specs statName.period,statName.period,statName.period
|
* @param specs statName.period,statName.period,statName.period
|
||||||
* @return list of Rate objects
|
* @return list of Rate objects
|
||||||
|
* @since public since 0.9.33, was package private
|
||||||
*/
|
*/
|
||||||
Set<Rate> parseSpecs(String specs) {
|
public Set<Rate> parseSpecs(String specs) {
|
||||||
if (specs == null)
|
if (specs == null)
|
||||||
return Collections.emptySet();
|
return Collections.emptySet();
|
||||||
StringTokenizer tok = new StringTokenizer(specs, ",");
|
StringTokenizer tok = new StringTokenizer(specs, ",");
|
||||||
|
@ -28,8 +28,9 @@ import org.jrobin.core.Sample;
|
|||||||
*
|
*
|
||||||
* @since 0.6.1.13
|
* @since 0.6.1.13
|
||||||
*/
|
*/
|
||||||
class SummaryListener implements RateSummaryListener {
|
public class SummaryListener implements RateSummaryListener {
|
||||||
static final String PROP_PERSISTENT = "routerconsole.graphPersistent";
|
/** @since public since 0.9.33, was package private */
|
||||||
|
public static final String PROP_PERSISTENT = "routerconsole.graphPersistent";
|
||||||
/** note that .jrb files are NOT compatible with .rrd files */
|
/** note that .jrb files are NOT compatible with .rrd files */
|
||||||
static final String RRD_DIR = "rrd";
|
static final String RRD_DIR = "rrd";
|
||||||
private static final String RRD_PREFIX = "rrd-";
|
private static final String RRD_PREFIX = "rrd-";
|
||||||
@ -51,7 +52,8 @@ class SummaryListener implements RateSummaryListener {
|
|||||||
|
|
||||||
static final int PERIODS = 60 * 24; // 1440
|
static final int PERIODS = 60 * 24; // 1440
|
||||||
private static final int MIN_ROWS = PERIODS;
|
private static final int MIN_ROWS = PERIODS;
|
||||||
static final int MAX_ROWS = 91 * MIN_ROWS;
|
/** @since public since 0.9.33, was package private */
|
||||||
|
public static final int MAX_ROWS = 91 * MIN_ROWS;
|
||||||
private static final long THREE_MONTHS = 91l * 24 * 60 * 60 * 1000;
|
private static final long THREE_MONTHS = 91l * 24 * 60 * 60 * 1000;
|
||||||
|
|
||||||
public SummaryListener(Rate r) {
|
public SummaryListener(Rate r) {
|
||||||
|
@ -18,6 +18,7 @@ import net.i2p.I2PAppContext;
|
|||||||
import net.i2p.data.DataHelper;
|
import net.i2p.data.DataHelper;
|
||||||
import net.i2p.router.RouterContext;
|
import net.i2p.router.RouterContext;
|
||||||
import net.i2p.router.util.EventLog;
|
import net.i2p.router.util.EventLog;
|
||||||
|
import static net.i2p.router.web.GraphConstants.*;
|
||||||
import net.i2p.util.Log;
|
import net.i2p.util.Log;
|
||||||
import net.i2p.util.SystemVersion;
|
import net.i2p.util.SystemVersion;
|
||||||
|
|
||||||
@ -74,8 +75,8 @@ class SummaryRenderer {
|
|||||||
RrdGraphDef def = template.getRrdGraphDef();
|
RrdGraphDef def = template.getRrdGraphDef();
|
||||||
def.setTimeSpan(start/1000, end/1000); // ignore the periods in the template
|
def.setTimeSpan(start/1000, end/1000); // ignore the periods in the template
|
||||||
// FIXME not clear how to get the height and width from the template
|
// FIXME not clear how to get the height and width from the template
|
||||||
int width = GraphHelper.DEFAULT_X;
|
int width = DEFAULT_X;
|
||||||
int height = GraphHelper.DEFAULT_Y;
|
int height = DEFAULT_Y;
|
||||||
def.setWidth(width);
|
def.setWidth(width);
|
||||||
def.setHeight(height);
|
def.setHeight(height);
|
||||||
|
|
||||||
@ -97,7 +98,7 @@ class SummaryRenderer {
|
|||||||
*****/
|
*****/
|
||||||
}
|
}
|
||||||
|
|
||||||
public void render(OutputStream out) throws IOException { render(out, GraphHelper.DEFAULT_X, GraphHelper.DEFAULT_Y,
|
public void render(OutputStream out) throws IOException { render(out, DEFAULT_X, DEFAULT_Y,
|
||||||
false, false, false, false, -1, 0, false); }
|
false, false, false, false, -1, 0, false); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -52,8 +52,9 @@ public class WebAppStarter {
|
|||||||
* Prior to 0.9.28, was not guaranteed to throw on failure.
|
* Prior to 0.9.28, was not guaranteed to throw on failure.
|
||||||
*
|
*
|
||||||
* @throws Exception just about anything, caller would be wise to catch Throwable
|
* @throws Exception just about anything, caller would be wise to catch Throwable
|
||||||
|
* @since public since 0.9.33, was package private
|
||||||
*/
|
*/
|
||||||
static void startWebApp(RouterContext ctx, ContextHandlerCollection server,
|
public static void startWebApp(RouterContext ctx, ContextHandlerCollection server,
|
||||||
String appName, String warPath) throws Exception {
|
String appName, String warPath) throws Exception {
|
||||||
File tmpdir = new SecureDirectory(ctx.getTempDir(), "jetty-work-" + appName + ctx.random().nextInt());
|
File tmpdir = new SecureDirectory(ctx.getTempDir(), "jetty-work-" + appName + ctx.random().nextInt());
|
||||||
WebAppContext wac = addWebApp(ctx, server, appName, warPath, tmpdir);
|
WebAppContext wac = addWebApp(ctx, server, appName, warPath, tmpdir);
|
||||||
@ -138,8 +139,9 @@ public class WebAppStarter {
|
|||||||
/**
|
/**
|
||||||
* Stop it and remove the context.
|
* Stop it and remove the context.
|
||||||
* Throws just about anything, caller would be wise to catch Throwable
|
* Throws just about anything, caller would be wise to catch Throwable
|
||||||
|
* @since public since 0.9.33, was package private
|
||||||
*/
|
*/
|
||||||
static void stopWebApp(String appName) {
|
public static void stopWebApp(String appName) {
|
||||||
ContextHandler wac = getWebApp(appName);
|
ContextHandler wac = getWebApp(appName);
|
||||||
if (wac == null)
|
if (wac == null)
|
||||||
return;
|
return;
|
||||||
@ -156,7 +158,8 @@ public class WebAppStarter {
|
|||||||
} catch (IllegalStateException ise) {}
|
} catch (IllegalStateException ise) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
static boolean isWebAppRunning(String appName) {
|
/** @since public since 0.9.33; was package private */
|
||||||
|
public static boolean isWebAppRunning(String appName) {
|
||||||
ContextHandler wac = getWebApp(appName);
|
ContextHandler wac = getWebApp(appName);
|
||||||
if (wac == null)
|
if (wac == null)
|
||||||
return false;
|
return false;
|
||||||
@ -182,8 +185,11 @@ public class WebAppStarter {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** see comments in ConfigClientsHandler */
|
/**
|
||||||
static ContextHandlerCollection getConsoleServer() {
|
* See comments in ConfigClientsHandler
|
||||||
|
* @since public since 0.9.33, was package private
|
||||||
|
*/
|
||||||
|
public static ContextHandlerCollection getConsoleServer() {
|
||||||
Server s = RouterConsoleRunner.getConsoleServer();
|
Server s = RouterConsoleRunner.getConsoleServer();
|
||||||
if (s == null)
|
if (s == null)
|
||||||
return null;
|
return null;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
/*
|
/*
|
||||||
* free (adj.): unencumbered; not under the control of others
|
* free (adj.): unencumbered; not under the control of others
|
||||||
* Written by jrandom in 2003 and released into the public domain
|
* Written by jrandom in 2003 and released into the public domain
|
||||||
@ -20,6 +20,7 @@ import net.i2p.data.DataHelper;
|
|||||||
import net.i2p.data.Hash;
|
import net.i2p.data.Hash;
|
||||||
import net.i2p.router.RouterContext;
|
import net.i2p.router.RouterContext;
|
||||||
import net.i2p.router.Banlist;
|
import net.i2p.router.Banlist;
|
||||||
|
import net.i2p.router.web.Messages;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Moved from Banlist.java
|
* Moved from Banlist.java
|
@ -1,4 +1,4 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@ -6,6 +6,7 @@ import java.io.IOException;
|
|||||||
import net.i2p.data.DataHelper;
|
import net.i2p.data.DataHelper;
|
||||||
import net.i2p.util.FileUtil;
|
import net.i2p.util.FileUtil;
|
||||||
import net.i2p.router.crypto.FamilyKeyCrypto;
|
import net.i2p.router.crypto.FamilyKeyCrypto;
|
||||||
|
import net.i2p.router.web.HelperBase;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
@ -1,4 +1,4 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@ -15,6 +15,7 @@ import javax.servlet.ServletResponse;
|
|||||||
|
|
||||||
import net.i2p.I2PAppContext;
|
import net.i2p.I2PAppContext;
|
||||||
import net.i2p.data.Base64;
|
import net.i2p.data.Base64;
|
||||||
|
import net.i2p.router.web.NavHelper;
|
||||||
import net.i2p.util.FileUtil;
|
import net.i2p.util.FileUtil;
|
||||||
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@ -10,6 +10,7 @@ import java.util.Set;
|
|||||||
|
|
||||||
import net.i2p.data.DataHelper;
|
import net.i2p.data.DataHelper;
|
||||||
import net.i2p.router.networkdb.kademlia.FloodfillNetworkDatabaseFacade;
|
import net.i2p.router.networkdb.kademlia.FloodfillNetworkDatabaseFacade;
|
||||||
|
import net.i2p.router.web.FormHandler;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handler to deal with form submissions from the advanced config form and act
|
* Handler to deal with form submissions from the advanced config form and act
|
@ -1,9 +1,10 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.TreeMap;
|
import java.util.TreeMap;
|
||||||
|
|
||||||
import net.i2p.data.DataHelper;
|
import net.i2p.data.DataHelper;
|
||||||
|
import net.i2p.router.web.HelperBase;
|
||||||
|
|
||||||
public class ConfigAdvancedHelper extends HelperBase {
|
public class ConfigAdvancedHelper extends HelperBase {
|
||||||
static final String PROP_FLOODFILL_PARTICIPANT = "router.floodfillParticipant";
|
static final String PROP_FLOODFILL_PARTICIPANT = "router.floodfillParticipant";
|
@ -1,4 +1,4 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.io.BufferedOutputStream;
|
import java.io.BufferedOutputStream;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@ -24,6 +24,15 @@ import net.i2p.router.startup.ClientAppConfig;
|
|||||||
import net.i2p.router.startup.LoadClientAppsJob;
|
import net.i2p.router.startup.LoadClientAppsJob;
|
||||||
import net.i2p.router.update.ConsoleUpdateManager;
|
import net.i2p.router.update.ConsoleUpdateManager;
|
||||||
import static net.i2p.update.UpdateType.*;
|
import static net.i2p.update.UpdateType.*;
|
||||||
|
import net.i2p.router.web.ConfigUpdateHandler;
|
||||||
|
import net.i2p.router.web.ConsolePasswordManager;
|
||||||
|
import net.i2p.router.web.FormHandler;
|
||||||
|
import net.i2p.router.web.Messages;
|
||||||
|
import net.i2p.router.web.NewsHelper;
|
||||||
|
import net.i2p.router.web.PluginStarter;
|
||||||
|
import net.i2p.router.web.RouterConsoleRunner;
|
||||||
|
import net.i2p.router.web.UpdateHandler;
|
||||||
|
import net.i2p.router.web.WebAppStarter;
|
||||||
import net.i2p.util.SecureFileOutputStream;
|
import net.i2p.util.SecureFileOutputStream;
|
||||||
import net.i2p.util.PortMapper;
|
import net.i2p.util.PortMapper;
|
||||||
|
|
||||||
@ -529,7 +538,7 @@ public class ConfigClientsHandler extends FormHandler {
|
|||||||
}
|
}
|
||||||
// So that update() will post a status to the summary bar before we reload
|
// So that update() will post a status to the summary bar before we reload
|
||||||
try {
|
try {
|
||||||
Thread.sleep(1000);
|
Thread.sleep(5000);
|
||||||
} catch (InterruptedException ie) {}
|
} catch (InterruptedException ie) {}
|
||||||
}
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.text.Collator;
|
import java.text.Collator;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
@ -18,6 +18,11 @@ import net.i2p.data.DataHelper;
|
|||||||
import net.i2p.router.client.ClientManagerFacadeImpl;
|
import net.i2p.router.client.ClientManagerFacadeImpl;
|
||||||
import net.i2p.router.startup.ClientAppConfig;
|
import net.i2p.router.startup.ClientAppConfig;
|
||||||
import net.i2p.router.startup.LoadClientAppsJob;
|
import net.i2p.router.startup.LoadClientAppsJob;
|
||||||
|
import net.i2p.router.web.HelperBase;
|
||||||
|
import net.i2p.router.web.Messages;
|
||||||
|
import net.i2p.router.web.PluginStarter;
|
||||||
|
import net.i2p.router.web.RouterConsoleRunner;
|
||||||
|
import net.i2p.router.web.WebAppStarter;
|
||||||
import net.i2p.util.Addresses;
|
import net.i2p.util.Addresses;
|
||||||
|
|
||||||
public class ConfigClientsHelper extends HelperBase {
|
public class ConfigClientsHelper extends HelperBase {
|
||||||
@ -389,10 +394,6 @@ public class ConfigClientsHelper extends HelperBase {
|
|||||||
* There's a lot worse things a plugin could do but...
|
* There's a lot worse things a plugin could do but...
|
||||||
*/
|
*/
|
||||||
public static String stripHTML(Properties props, String key) {
|
public static String stripHTML(Properties props, String key) {
|
||||||
String orig = props.getProperty(key);
|
return PluginStarter.stripHTML(props, key);
|
||||||
if (orig == null) return null;
|
|
||||||
String t1 = orig.replace('<', ' ');
|
|
||||||
String rv = t1.replace('>', ' ');
|
|
||||||
return rv;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
@ -14,6 +14,7 @@ import java.util.Map;
|
|||||||
import net.i2p.crypto.CertUtil;
|
import net.i2p.crypto.CertUtil;
|
||||||
import net.i2p.crypto.KeyStoreUtil;
|
import net.i2p.crypto.KeyStoreUtil;
|
||||||
import net.i2p.router.crypto.FamilyKeyCrypto;
|
import net.i2p.router.crypto.FamilyKeyCrypto;
|
||||||
|
import net.i2p.router.web.FormHandler;
|
||||||
import net.i2p.util.SecureDirectory;
|
import net.i2p.util.SecureDirectory;
|
||||||
|
|
||||||
/**
|
/**
|
@ -1,6 +1,7 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import net.i2p.router.crypto.FamilyKeyCrypto;
|
import net.i2p.router.crypto.FamilyKeyCrypto;
|
||||||
|
import net.i2p.router.web.HelperBase;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @since 0.9.25
|
* @since 0.9.25
|
@ -1,4 +1,4 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
@ -6,6 +6,8 @@ import java.util.Iterator;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import net.i2p.data.DataHelper;
|
import net.i2p.data.DataHelper;
|
||||||
|
import net.i2p.router.web.App;
|
||||||
|
import net.i2p.router.web.FormHandler;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Simple home page configuration.
|
* Simple home page configuration.
|
||||||
@ -52,7 +54,7 @@ public class ConfigHomeHandler extends FormHandler {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
String config = _context.getProperty(prop, dflt);
|
String config = _context.getProperty(prop, dflt);
|
||||||
Collection<HomeHelper.App> apps;
|
Collection<App> apps;
|
||||||
if ("3".equals(group))
|
if ("3".equals(group))
|
||||||
apps = HomeHelper.buildSearchApps(config);
|
apps = HomeHelper.buildSearchApps(config);
|
||||||
else
|
else
|
||||||
@ -73,13 +75,13 @@ public class ConfigHomeHandler extends FormHandler {
|
|||||||
//url = DataHelper.escapeHTML(url).replace(",", ",");
|
//url = DataHelper.escapeHTML(url).replace(",", ",");
|
||||||
name = name.replace(",", ".");
|
name = name.replace(",", ".");
|
||||||
url = url.replace(",", "."); // fail
|
url = url.replace(",", "."); // fail
|
||||||
HomeHelper.App app = null;
|
App app = null;
|
||||||
if ("1".equals(group))
|
if ("1".equals(group))
|
||||||
app = new HomeHelper.App(name, "", url, "/themes/console/images/eepsite.png");
|
app = new App(name, "", url, "/themes/console/images/eepsite.png");
|
||||||
else if ("2".equals(group))
|
else if ("2".equals(group))
|
||||||
app = new HomeHelper.App(name, "", url, "/themes/console/images/title_window.png");
|
app = new App(name, "", url, "/themes/console/images/title_window.png");
|
||||||
else
|
else
|
||||||
app = new HomeHelper.App(name, "", url, "/themes/console/images/question.png");
|
app = new App(name, "", url, "/themes/console/images/question.png");
|
||||||
apps.add(app);
|
apps.add(app);
|
||||||
addFormNotice(_t("Added") + ": " + app.name);
|
addFormNotice(_t("Added") + ": " + app.name);
|
||||||
} else {
|
} else {
|
||||||
@ -94,8 +96,8 @@ public class ConfigHomeHandler extends FormHandler {
|
|||||||
k = k.substring(7);
|
k = k.substring(7);
|
||||||
toDelete.add(k);
|
toDelete.add(k);
|
||||||
}
|
}
|
||||||
for (Iterator<HomeHelper.App> iter = apps.iterator(); iter.hasNext(); ) {
|
for (Iterator<App> iter = apps.iterator(); iter.hasNext(); ) {
|
||||||
HomeHelper.App app = iter.next();
|
App app = iter.next();
|
||||||
if (toDelete.contains(app.name)) {
|
if (toDelete.contains(app.name)) {
|
||||||
iter.remove();
|
iter.remove();
|
||||||
addFormNotice(_t("Removed") + ": " + app.name);
|
addFormNotice(_t("Removed") + ": " + app.name);
|
@ -1,8 +1,9 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import net.i2p.data.DataFormatException;
|
import net.i2p.data.DataFormatException;
|
||||||
import net.i2p.data.Hash;
|
import net.i2p.data.Hash;
|
||||||
import net.i2p.data.SessionKey;
|
import net.i2p.data.SessionKey;
|
||||||
|
import net.i2p.router.web.FormHandler;
|
||||||
import net.i2p.util.ConvertToHash;
|
import net.i2p.util.ConvertToHash;
|
||||||
|
|
||||||
/**
|
/**
|
@ -1,8 +1,10 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.StringWriter;
|
import java.io.StringWriter;
|
||||||
|
|
||||||
|
import net.i2p.router.web.HelperBase;
|
||||||
|
|
||||||
|
|
||||||
public class ConfigKeyringHelper extends HelperBase {
|
public class ConfigKeyringHelper extends HelperBase {
|
||||||
public ConfigKeyringHelper() {}
|
public ConfigKeyringHelper() {}
|
@ -1,10 +1,11 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
|
|
||||||
import net.i2p.data.DataHelper;
|
import net.i2p.data.DataHelper;
|
||||||
|
import net.i2p.router.web.FormHandler;
|
||||||
import net.i2p.util.LogManager;
|
import net.i2p.util.LogManager;
|
||||||
|
|
||||||
/**
|
/**
|
@ -1,4 +1,4 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -7,6 +7,7 @@ import java.util.Set;
|
|||||||
import java.util.TreeSet;
|
import java.util.TreeSet;
|
||||||
|
|
||||||
import net.i2p.data.DataHelper;
|
import net.i2p.data.DataHelper;
|
||||||
|
import net.i2p.router.web.HelperBase;
|
||||||
import net.i2p.util.Log;
|
import net.i2p.util.Log;
|
||||||
|
|
||||||
public class ConfigLoggingHelper extends HelperBase {
|
public class ConfigLoggingHelper extends HelperBase {
|
@ -1,4 +1,4 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.text.Collator;
|
import java.text.Collator;
|
||||||
@ -8,6 +8,10 @@ import java.util.Comparator;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
|
import net.i2p.router.web.HelperBase;
|
||||||
|
import net.i2p.router.web.Messages;
|
||||||
|
import net.i2p.router.web.PluginStarter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Render the configuration menu at the top of all the config pages.
|
* Render the configuration menu at the top of all the config pages.
|
||||||
* refactored from confignav.jsp to reduce size and make translation easier
|
* refactored from confignav.jsp to reduce size and make translation easier
|
@ -1,4 +1,4 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
@ -15,6 +15,7 @@ import net.i2p.router.transport.TransportManager;
|
|||||||
import net.i2p.router.transport.TransportUtil;
|
import net.i2p.router.transport.TransportUtil;
|
||||||
import net.i2p.router.transport.udp.UDPTransport;
|
import net.i2p.router.transport.udp.UDPTransport;
|
||||||
import net.i2p.router.web.ConfigServiceHandler;
|
import net.i2p.router.web.ConfigServiceHandler;
|
||||||
|
import net.i2p.router.web.FormHandler;
|
||||||
import net.i2p.util.Addresses;
|
import net.i2p.util.Addresses;
|
||||||
|
|
||||||
/**
|
/**
|
@ -1,4 +1,4 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
@ -12,6 +12,7 @@ import net.i2p.router.Router;
|
|||||||
import net.i2p.router.transport.TransportManager;
|
import net.i2p.router.transport.TransportManager;
|
||||||
import net.i2p.router.transport.TransportUtil;
|
import net.i2p.router.transport.TransportUtil;
|
||||||
import net.i2p.router.transport.udp.UDPTransport;
|
import net.i2p.router.transport.udp.UDPTransport;
|
||||||
|
import net.i2p.router.web.HelperBase;
|
||||||
import net.i2p.util.Addresses;
|
import net.i2p.util.Addresses;
|
||||||
|
|
||||||
/**
|
/**
|
@ -1,8 +1,9 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import net.i2p.data.Hash;
|
import net.i2p.data.Hash;
|
||||||
import net.i2p.data.Base64;
|
import net.i2p.data.Base64;
|
||||||
import net.i2p.router.peermanager.PeerProfile;
|
import net.i2p.router.peermanager.PeerProfile;
|
||||||
|
import net.i2p.router.web.FormHandler;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
@ -1,8 +1,10 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.StringWriter;
|
import java.io.StringWriter;
|
||||||
|
|
||||||
|
import net.i2p.router.web.HelperBase;
|
||||||
|
|
||||||
|
|
||||||
public class ConfigPeerHelper extends HelperBase {
|
public class ConfigPeerHelper extends HelperBase {
|
||||||
public ConfigPeerHelper() {}
|
public ConfigPeerHelper() {}
|
@ -1,4 +1,4 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@ -11,6 +11,8 @@ import java.util.Map;
|
|||||||
|
|
||||||
import net.i2p.router.networkdb.reseed.ReseedChecker;
|
import net.i2p.router.networkdb.reseed.ReseedChecker;
|
||||||
import net.i2p.router.networkdb.reseed.Reseeder;
|
import net.i2p.router.networkdb.reseed.Reseeder;
|
||||||
|
import net.i2p.router.web.FormHandler;
|
||||||
|
import net.i2p.router.web.Messages;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @since 0.8.3
|
* @since 0.8.3
|
@ -1,4 +1,4 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
@ -6,6 +6,7 @@ import java.util.List;
|
|||||||
import java.util.StringTokenizer;
|
import java.util.StringTokenizer;
|
||||||
|
|
||||||
import net.i2p.router.networkdb.reseed.Reseeder;
|
import net.i2p.router.networkdb.reseed.Reseeder;
|
||||||
|
import net.i2p.router.web.HelperBase;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @since 0.8.3
|
* @since 0.8.3
|
@ -1,8 +1,11 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import net.i2p.data.DataHelper;
|
import net.i2p.data.DataHelper;
|
||||||
import net.i2p.router.Router;
|
import net.i2p.router.Router;
|
||||||
import net.i2p.router.RouterContext;
|
import net.i2p.router.RouterContext;
|
||||||
|
import net.i2p.router.web.ConfigServiceHandler;
|
||||||
|
import net.i2p.router.web.ContextHelper;
|
||||||
|
import net.i2p.router.web.Messages;
|
||||||
import net.i2p.util.RandomSource;
|
import net.i2p.util.RandomSource;
|
||||||
|
|
||||||
/**
|
/**
|
@ -1,4 +1,4 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@ -6,6 +6,7 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.StringTokenizer;
|
import java.util.StringTokenizer;
|
||||||
|
|
||||||
|
import net.i2p.router.web.FormHandler;
|
||||||
import net.i2p.stat.StatManager;
|
import net.i2p.stat.StatManager;
|
||||||
|
|
||||||
/**
|
/**
|
@ -1,4 +1,4 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.text.Collator;
|
import java.text.Collator;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@ -11,6 +11,8 @@ import java.util.SortedSet;
|
|||||||
import java.util.StringTokenizer;
|
import java.util.StringTokenizer;
|
||||||
import java.util.TreeMap;
|
import java.util.TreeMap;
|
||||||
|
|
||||||
|
import net.i2p.router.web.HelperBase;
|
||||||
|
import net.i2p.router.web.StatSummarizer;
|
||||||
import net.i2p.stat.FrequencyStat;
|
import net.i2p.stat.FrequencyStat;
|
||||||
import net.i2p.stat.Rate;
|
import net.i2p.stat.Rate;
|
||||||
import net.i2p.stat.RateStat;
|
import net.i2p.stat.RateStat;
|
@ -1,4 +1,4 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
@ -7,6 +7,9 @@ import java.util.Set;
|
|||||||
import java.util.TreeMap;
|
import java.util.TreeMap;
|
||||||
|
|
||||||
import net.i2p.data.DataHelper;
|
import net.i2p.data.DataHelper;
|
||||||
|
import net.i2p.router.web.CSSHelper;
|
||||||
|
import net.i2p.router.web.FormHandler;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Simple summary bar configuration.
|
* Simple summary bar configuration.
|
@ -1,4 +1,4 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -6,6 +6,7 @@ import java.util.Map;
|
|||||||
import net.i2p.data.DataFormatException;
|
import net.i2p.data.DataFormatException;
|
||||||
import net.i2p.data.Hash;
|
import net.i2p.data.Hash;
|
||||||
import net.i2p.router.TunnelPoolSettings;
|
import net.i2p.router.TunnelPoolSettings;
|
||||||
|
import net.i2p.router.web.FormHandler;
|
||||||
import net.i2p.util.Log;
|
import net.i2p.util.Log;
|
||||||
|
|
||||||
/**
|
/**
|
@ -1,4 +1,4 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
@ -6,6 +6,7 @@ import java.util.Set;
|
|||||||
import net.i2p.data.DataHelper;
|
import net.i2p.data.DataHelper;
|
||||||
import net.i2p.data.Destination;
|
import net.i2p.data.Destination;
|
||||||
import net.i2p.router.TunnelPoolSettings;
|
import net.i2p.router.TunnelPoolSettings;
|
||||||
|
import net.i2p.router.web.HelperBase;
|
||||||
|
|
||||||
public class ConfigTunnelsHelper extends HelperBase {
|
public class ConfigTunnelsHelper extends HelperBase {
|
||||||
private static final String HOP = "hop";
|
private static final String HOP = "hop";
|
@ -1,4 +1,4 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@ -6,6 +6,11 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import net.i2p.data.DataHelper;
|
import net.i2p.data.DataHelper;
|
||||||
|
import net.i2p.router.web.CSSHelper;
|
||||||
|
import net.i2p.router.web.ConsolePasswordManager;
|
||||||
|
import net.i2p.router.web.RouterConsoleRunner;
|
||||||
|
import net.i2p.router.web.FormHandler;
|
||||||
|
|
||||||
|
|
||||||
/** set the theme */
|
/** set the theme */
|
||||||
public class ConfigUIHandler extends FormHandler {
|
public class ConfigUIHandler extends FormHandler {
|
@ -1,10 +1,16 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.TreeSet;
|
import java.util.TreeSet;
|
||||||
|
|
||||||
|
import net.i2p.router.web.CSSHelper;
|
||||||
|
import net.i2p.router.web.ConsolePasswordManager;
|
||||||
|
import net.i2p.router.web.HelperBase;
|
||||||
|
import net.i2p.router.web.Messages;
|
||||||
|
import net.i2p.router.web.RouterConsoleRunner;
|
||||||
|
|
||||||
public class ConfigUIHelper extends HelperBase {
|
public class ConfigUIHelper extends HelperBase {
|
||||||
|
|
||||||
public String getSettings() {
|
public String getSettings() {
|
||||||
@ -56,8 +62,6 @@ public class ConfigUIHelper extends HelperBase {
|
|||||||
return buf.toString();
|
return buf.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
static final String PROP_THEME_PFX = "routerconsole.theme.";
|
|
||||||
|
|
||||||
/** @return standard and user-installed themes, sorted (untranslated) */
|
/** @return standard and user-installed themes, sorted (untranslated) */
|
||||||
private Set<String> themeSet() {
|
private Set<String> themeSet() {
|
||||||
Set<String> rv = new TreeSet<String>();
|
Set<String> rv = new TreeSet<String>();
|
||||||
@ -75,8 +79,8 @@ public class ConfigUIHelper extends HelperBase {
|
|||||||
// user themes
|
// user themes
|
||||||
Set<String> props = _context.getPropertyNames();
|
Set<String> props = _context.getPropertyNames();
|
||||||
for (String prop : props) {
|
for (String prop : props) {
|
||||||
if (prop.startsWith(PROP_THEME_PFX) && prop.length() > PROP_THEME_PFX.length())
|
if (prop.startsWith(CSSHelper.PROP_THEME_PFX) && prop.length() > CSSHelper.PROP_THEME_PFX.length())
|
||||||
rv.add(prop.substring(PROP_THEME_PFX.length()));
|
rv.add(prop.substring(CSSHelper.PROP_THEME_PFX.length()));
|
||||||
}
|
}
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.Writer;
|
import java.io.Writer;
|
||||||
@ -16,6 +16,8 @@ import java.util.TreeMap;
|
|||||||
|
|
||||||
import net.i2p.data.DataHelper;
|
import net.i2p.data.DataHelper;
|
||||||
import net.i2p.router.util.EventLog;
|
import net.i2p.router.util.EventLog;
|
||||||
|
import net.i2p.router.web.CSSHelper;
|
||||||
|
import net.i2p.router.web.FormHandler;
|
||||||
import net.i2p.util.SystemVersion;
|
import net.i2p.util.SystemVersion;
|
||||||
|
|
||||||
/**
|
/**
|
@ -1,4 +1,4 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
@ -18,6 +18,8 @@ import java.util.jar.Manifest;
|
|||||||
|
|
||||||
import net.i2p.crypto.SHA256Generator;
|
import net.i2p.crypto.SHA256Generator;
|
||||||
import net.i2p.data.DataHelper;
|
import net.i2p.data.DataHelper;
|
||||||
|
import net.i2p.router.web.HelperBase;
|
||||||
|
import net.i2p.router.web.PluginStarter;
|
||||||
import net.i2p.util.FileUtil;
|
import net.i2p.util.FileUtil;
|
||||||
import net.i2p.util.SystemVersion;
|
import net.i2p.util.SystemVersion;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
@ -11,6 +11,13 @@ import java.util.Set;
|
|||||||
import java.util.TreeSet;
|
import java.util.TreeSet;
|
||||||
|
|
||||||
import net.i2p.data.DataHelper;
|
import net.i2p.data.DataHelper;
|
||||||
|
import net.i2p.router.web.CSSHelper;
|
||||||
|
import net.i2p.router.web.FormHandler;
|
||||||
|
import static net.i2p.router.web.GraphConstants.*;
|
||||||
|
import net.i2p.router.web.HelperBase;
|
||||||
|
import net.i2p.router.web.NavHelper;
|
||||||
|
import net.i2p.router.web.StatSummarizer;
|
||||||
|
import net.i2p.router.web.SummaryListener;
|
||||||
import net.i2p.stat.Rate;
|
import net.i2p.stat.Rate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -34,13 +41,9 @@ public class GraphHelper extends FormHandler {
|
|||||||
private static final String PROP_PERIODS = "routerconsole.graphPeriods";
|
private static final String PROP_PERIODS = "routerconsole.graphPeriods";
|
||||||
private static final String PROP_EVENTS = "routerconsole.graphEvents";
|
private static final String PROP_EVENTS = "routerconsole.graphEvents";
|
||||||
private static final String PROP_LEGEND = "routerconsole.graphHideLegend";
|
private static final String PROP_LEGEND = "routerconsole.graphHideLegend";
|
||||||
public static final int DEFAULT_X = 400;
|
|
||||||
public static final int DEFAULT_Y = 100;
|
|
||||||
private static final int DEFAULT_REFRESH = 5*60;
|
private static final int DEFAULT_REFRESH = 5*60;
|
||||||
private static final int DEFAULT_PERIODS = 60;
|
private static final int DEFAULT_PERIODS = 60;
|
||||||
private static final boolean DEFAULT_LEGEND = false;
|
private static final boolean DEFAULT_LEGEND = false;
|
||||||
static final int MAX_X = 2048;
|
|
||||||
static final int MAX_Y = 1024;
|
|
||||||
private static final int MIN_X = 200;
|
private static final int MIN_X = 200;
|
||||||
private static final int MIN_Y = 60;
|
private static final int MIN_Y = 60;
|
||||||
private static final int MIN_C = 20;
|
private static final int MIN_C = 20;
|
@ -1,4 +1,4 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
@ -9,6 +9,11 @@ import java.util.TreeSet;
|
|||||||
|
|
||||||
import net.i2p.data.DataHelper;
|
import net.i2p.data.DataHelper;
|
||||||
import net.i2p.router.RouterContext;
|
import net.i2p.router.RouterContext;
|
||||||
|
import net.i2p.router.web.App;
|
||||||
|
import net.i2p.router.web.ConfigUpdateHandler;
|
||||||
|
import net.i2p.router.web.HelperBase;
|
||||||
|
import net.i2p.router.web.Messages;
|
||||||
|
import net.i2p.router.web.NavHelper;
|
||||||
import net.i2p.util.PortMapper;
|
import net.i2p.util.PortMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -250,20 +255,6 @@ public class HomeHelper extends HelperBase {
|
|||||||
return buf.toString();
|
return buf.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
static class App {
|
|
||||||
public final String name;
|
|
||||||
public final String desc;
|
|
||||||
public final String url;
|
|
||||||
public final String icon;
|
|
||||||
|
|
||||||
public App(String name, String desc, String url, String icon) {
|
|
||||||
this.name = name;
|
|
||||||
this.desc = desc;
|
|
||||||
this.url = url;
|
|
||||||
this.icon = icon;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** ignore case, current locale */
|
/** ignore case, current locale */
|
||||||
private static class AppComparator implements Comparator<App>, Serializable {
|
private static class AppComparator implements Comparator<App>, Serializable {
|
||||||
public int compare(App l, App r) {
|
public int compare(App l, App r) {
|
@ -1,4 +1,4 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.StringWriter;
|
import java.io.StringWriter;
|
||||||
@ -12,6 +12,7 @@ import java.util.List;
|
|||||||
import net.i2p.data.DataHelper;
|
import net.i2p.data.DataHelper;
|
||||||
import net.i2p.router.Job;
|
import net.i2p.router.Job;
|
||||||
import net.i2p.router.JobStats;
|
import net.i2p.router.JobStats;
|
||||||
|
import net.i2p.router.web.HelperBase;
|
||||||
import net.i2p.util.ObjectCounter;
|
import net.i2p.util.ObjectCounter;
|
||||||
|
|
||||||
public class JobQueueHelper extends HelperBase {
|
public class JobQueueHelper extends HelperBase {
|
@ -1,4 +1,4 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@ -11,25 +11,18 @@ import java.util.List;
|
|||||||
|
|
||||||
import net.i2p.I2PAppContext;
|
import net.i2p.I2PAppContext;
|
||||||
import net.i2p.crypto.SigType;
|
import net.i2p.crypto.SigType;
|
||||||
|
import net.i2p.router.web.ConfigServiceHandler;
|
||||||
|
import net.i2p.router.web.HelperBase;
|
||||||
|
import net.i2p.router.web.RouterConsoleRunner;
|
||||||
import net.i2p.util.FileUtil;
|
import net.i2p.util.FileUtil;
|
||||||
import net.i2p.util.VersionComparator;
|
|
||||||
|
|
||||||
import org.eclipse.jetty.server.Server;
|
|
||||||
import org.tanukisoftware.wrapper.WrapperManager;
|
|
||||||
|
|
||||||
public class LogsHelper extends HelperBase {
|
public class LogsHelper extends HelperBase {
|
||||||
|
|
||||||
private static final String LOCATION_AVAILABLE = "3.3.7";
|
|
||||||
private static final String _jstlVersion = jstlVersion();
|
private static final String _jstlVersion = jstlVersion();
|
||||||
|
|
||||||
/** @since 0.8.12 */
|
/** @since 0.8.12 */
|
||||||
public String getJettyVersion() {
|
public String getJettyVersion() {
|
||||||
return Server.getVersion();
|
return RouterConsoleRunner.jettyVersion();
|
||||||
}
|
|
||||||
|
|
||||||
/** @since 0.8.13 */
|
|
||||||
public static String jettyVersion() {
|
|
||||||
return Server.getVersion();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @since 0.9.15 */
|
/** @since 0.9.15 */
|
||||||
@ -86,39 +79,8 @@ public class LogsHelper extends HelperBase {
|
|||||||
return formatMessages(_context.logManager().getBuffer().getMostRecentCriticalMessages());
|
return formatMessages(_context.logManager().getBuffer().getMostRecentCriticalMessages());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Does not necessarily exist.
|
|
||||||
*
|
|
||||||
* @return non-null, doesn't necessarily exist
|
|
||||||
* @since 0.9.1, public since 0.9.27
|
|
||||||
*/
|
|
||||||
public static File wrapperLogFile(I2PAppContext ctx) {
|
|
||||||
File f = null;
|
|
||||||
if (ctx.hasWrapper()) {
|
|
||||||
String wv = System.getProperty("wrapper.version");
|
|
||||||
if (wv != null && VersionComparator.comp(wv, LOCATION_AVAILABLE) >= 0) {
|
|
||||||
try {
|
|
||||||
f = WrapperManager.getWrapperLogFile();
|
|
||||||
} catch (Throwable t) {}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (f == null || !f.exists()) {
|
|
||||||
// RouterLaunch puts the location here if no wrapper
|
|
||||||
String path = System.getProperty("wrapper.logfile");
|
|
||||||
if (path != null) {
|
|
||||||
f = new File(path);
|
|
||||||
} else {
|
|
||||||
// look in new and old places
|
|
||||||
f = new File(System.getProperty("java.io.tmpdir"), "wrapper.log");
|
|
||||||
if (!f.exists())
|
|
||||||
f = new File(ctx.getBaseDir(), "wrapper.log");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return f;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getServiceLogs() {
|
public String getServiceLogs() {
|
||||||
File f = wrapperLogFile(_context);
|
File f = ConfigServiceHandler.wrapperLogFile(_context);
|
||||||
String str;
|
String str;
|
||||||
if (_context.hasWrapper()) {
|
if (_context.hasWrapper()) {
|
||||||
// platform encoding
|
// platform encoding
|
@ -1,8 +1,9 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import net.i2p.crypto.SigType;
|
import net.i2p.crypto.SigType;
|
||||||
import net.i2p.data.DataHelper;
|
import net.i2p.data.DataHelper;
|
||||||
|
import net.i2p.router.web.HelperBase;
|
||||||
|
|
||||||
public class NetDbHelper extends HelperBase {
|
public class NetDbHelper extends HelperBase {
|
||||||
private String _routerPrefix;
|
private String _routerPrefix;
|
@ -1,4 +1,4 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
/*
|
/*
|
||||||
* free (adj.): unencumbered; not under the control of others
|
* free (adj.): unencumbered; not under the control of others
|
||||||
* Written by jrandom in 2003 and released into the public domain
|
* Written by jrandom in 2003 and released into the public domain
|
||||||
@ -36,6 +36,7 @@ import net.i2p.router.RouterContext;
|
|||||||
import net.i2p.router.TunnelPoolSettings;
|
import net.i2p.router.TunnelPoolSettings;
|
||||||
import net.i2p.router.util.HashDistance; // debug
|
import net.i2p.router.util.HashDistance; // debug
|
||||||
import net.i2p.router.networkdb.kademlia.FloodfillNetworkDatabaseFacade;
|
import net.i2p.router.networkdb.kademlia.FloodfillNetworkDatabaseFacade;
|
||||||
|
import net.i2p.router.web.Messages;
|
||||||
import net.i2p.util.Log;
|
import net.i2p.util.Log;
|
||||||
import net.i2p.util.ObjectCounter;
|
import net.i2p.util.ObjectCounter;
|
||||||
import net.i2p.util.Translate;
|
import net.i2p.util.Translate;
|
@ -1,4 +1,4 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@ -10,6 +10,7 @@ import net.i2p.CoreVersion;
|
|||||||
import net.i2p.data.DataHelper;
|
import net.i2p.data.DataHelper;
|
||||||
import net.i2p.data.Hash;
|
import net.i2p.data.Hash;
|
||||||
import net.i2p.router.RouterVersion;
|
import net.i2p.router.RouterVersion;
|
||||||
|
import net.i2p.router.web.HelperBase;
|
||||||
|
|
||||||
|
|
||||||
public class OldConsoleHelper extends HelperBase {
|
public class OldConsoleHelper extends HelperBase {
|
@ -1,4 +1,4 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
@ -20,7 +20,8 @@ import net.i2p.router.transport.ntcp.NTCPConnection;
|
|||||||
import net.i2p.router.transport.ntcp.NTCPTransport;
|
import net.i2p.router.transport.ntcp.NTCPTransport;
|
||||||
import net.i2p.router.transport.udp.PeerState;
|
import net.i2p.router.transport.udp.PeerState;
|
||||||
import net.i2p.router.transport.udp.UDPTransport;
|
import net.i2p.router.transport.udp.UDPTransport;
|
||||||
import static net.i2p.router.web.UDPSorters.*;
|
import net.i2p.router.web.HelperBase;
|
||||||
|
import static net.i2p.router.web.helpers.UDPSorters.*;
|
||||||
import net.i2p.util.SystemVersion;
|
import net.i2p.util.SystemVersion;
|
||||||
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
@ -15,6 +15,8 @@ import net.i2p.router.RouterContext;
|
|||||||
import net.i2p.router.peermanager.DBHistory;
|
import net.i2p.router.peermanager.DBHistory;
|
||||||
import net.i2p.router.peermanager.PeerProfile;
|
import net.i2p.router.peermanager.PeerProfile;
|
||||||
import net.i2p.router.peermanager.ProfileOrganizer;
|
import net.i2p.router.peermanager.ProfileOrganizer;
|
||||||
|
import net.i2p.router.web.HelperBase;
|
||||||
|
import net.i2p.router.web.Messages;
|
||||||
import net.i2p.stat.Rate;
|
import net.i2p.stat.Rate;
|
||||||
import net.i2p.stat.RateAverages;
|
import net.i2p.stat.RateAverages;
|
||||||
import net.i2p.stat.RateStat;
|
import net.i2p.stat.RateStat;
|
@ -1,7 +1,9 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
|
import net.i2p.router.web.HelperBase;
|
||||||
|
|
||||||
|
|
||||||
public class ProfilesHelper extends HelperBase {
|
public class ProfilesHelper extends HelperBase {
|
||||||
private int _full;
|
private int _full;
|
@ -1,4 +1,4 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
@ -6,6 +6,7 @@ import net.i2p.data.DataHelper;
|
|||||||
import net.i2p.data.router.RouterAddress;
|
import net.i2p.data.router.RouterAddress;
|
||||||
import net.i2p.data.router.RouterInfo;
|
import net.i2p.data.router.RouterInfo;
|
||||||
import net.i2p.data.Signature;
|
import net.i2p.data.Signature;
|
||||||
|
import net.i2p.router.web.HelperBase;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sign a statement about this router.
|
* Sign a statement about this router.
|
@ -1,4 +1,4 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
/*
|
/*
|
||||||
* free (adj.): unencumbered; not under the control of others
|
* free (adj.): unencumbered; not under the control of others
|
||||||
* Written by jrandom in 2003 and released into the public domain
|
* Written by jrandom in 2003 and released into the public domain
|
@ -1,8 +1,10 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
|
import net.i2p.router.web.HelperBase;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handler to create a i2preseed.zip file
|
* Handler to create a i2preseed.zip file
|
||||||
* @since 0.9.19
|
* @since 0.9.19
|
@ -1,6 +1,8 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import net.i2p.router.RouterContext;
|
import net.i2p.router.RouterContext;
|
||||||
|
import net.i2p.router.web.ContextHelper;
|
||||||
|
import net.i2p.router.web.HelperBase;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handler to deal with reseed requests.
|
* Handler to deal with reseed requests.
|
@ -1,9 +1,10 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.TreeMap;
|
import java.util.TreeMap;
|
||||||
|
|
||||||
import net.i2p.data.DataHelper;
|
import net.i2p.data.DataHelper;
|
||||||
|
import net.i2p.router.web.HelperBase;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Helper for searches.
|
* Helper for searches.
|
@ -1,10 +1,11 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import net.i2p.data.DataFormatException;
|
import net.i2p.data.DataFormatException;
|
||||||
import net.i2p.data.Hash;
|
import net.i2p.data.Hash;
|
||||||
|
import net.i2p.router.web.HelperBase;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dump the peer profile data if given a full B64 peer string or prefix.
|
* Dump the peer profile data if given a full B64 peer string or prefix.
|
@ -1,4 +1,4 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.Writer;
|
import java.io.Writer;
|
||||||
@ -13,6 +13,7 @@ import java.util.TreeMap;
|
|||||||
|
|
||||||
import net.i2p.data.DataHelper;
|
import net.i2p.data.DataHelper;
|
||||||
import net.i2p.router.RouterContext;
|
import net.i2p.router.RouterContext;
|
||||||
|
import net.i2p.router.web.Messages;
|
||||||
import net.i2p.stat.Frequency;
|
import net.i2p.stat.Frequency;
|
||||||
import net.i2p.stat.FrequencyStat;
|
import net.i2p.stat.FrequencyStat;
|
||||||
import net.i2p.stat.Rate;
|
import net.i2p.stat.Rate;
|
@ -1,4 +1,4 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@ -16,6 +16,11 @@ import net.i2p.data.DataHelper;
|
|||||||
import net.i2p.router.RouterContext;
|
import net.i2p.router.RouterContext;
|
||||||
import net.i2p.router.news.NewsEntry;
|
import net.i2p.router.news.NewsEntry;
|
||||||
import net.i2p.router.news.NewsManager;
|
import net.i2p.router.news.NewsManager;
|
||||||
|
import net.i2p.router.web.CSSHelper;
|
||||||
|
import net.i2p.router.web.Messages;
|
||||||
|
import net.i2p.router.web.NavHelper;
|
||||||
|
import net.i2p.router.web.NewsHelper;
|
||||||
|
import net.i2p.router.web.StatSummarizer;
|
||||||
import net.i2p.util.PortMapper;
|
import net.i2p.util.PortMapper;
|
||||||
import net.i2p.util.SystemVersion;
|
import net.i2p.util.SystemVersion;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.text.Collator;
|
import java.text.Collator;
|
||||||
@ -25,6 +25,9 @@ import net.i2p.router.TunnelPoolSettings;
|
|||||||
import net.i2p.router.networkdb.kademlia.FloodfillNetworkDatabaseFacade;
|
import net.i2p.router.networkdb.kademlia.FloodfillNetworkDatabaseFacade;
|
||||||
import net.i2p.router.networkdb.reseed.ReseedChecker;
|
import net.i2p.router.networkdb.reseed.ReseedChecker;
|
||||||
import net.i2p.router.transport.TransportUtil;
|
import net.i2p.router.transport.TransportUtil;
|
||||||
|
import net.i2p.router.web.CSSHelper;
|
||||||
|
import net.i2p.router.web.HelperBase;
|
||||||
|
import net.i2p.router.web.NewsHelper;
|
||||||
import net.i2p.stat.Rate;
|
import net.i2p.stat.Rate;
|
||||||
import net.i2p.stat.RateStat;
|
import net.i2p.stat.RateStat;
|
||||||
import net.i2p.util.PortMapper;
|
import net.i2p.util.PortMapper;
|
@ -1,4 +1,4 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
@ -31,6 +31,7 @@ import net.i2p.router.peermanager.DBHistory;
|
|||||||
import net.i2p.router.peermanager.PeerProfile;
|
import net.i2p.router.peermanager.PeerProfile;
|
||||||
import net.i2p.router.tunnel.pool.TunnelPool;
|
import net.i2p.router.tunnel.pool.TunnelPool;
|
||||||
import net.i2p.router.util.HashDistance;
|
import net.i2p.router.util.HashDistance;
|
||||||
|
import net.i2p.router.web.Messages;
|
||||||
import net.i2p.stat.Rate;
|
import net.i2p.stat.Rate;
|
||||||
import net.i2p.stat.RateAverages;
|
import net.i2p.stat.RateAverages;
|
||||||
import net.i2p.stat.RateStat;
|
import net.i2p.stat.RateStat;
|
@ -1,8 +1,10 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.StringWriter;
|
import java.io.StringWriter;
|
||||||
|
|
||||||
|
import net.i2p.router.web.HelperBase;
|
||||||
|
|
||||||
|
|
||||||
public class TunnelHelper extends HelperBase {
|
public class TunnelHelper extends HelperBase {
|
||||||
public TunnelHelper() {}
|
public TunnelHelper() {}
|
@ -1,4 +1,4 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
@ -18,6 +18,8 @@ import net.i2p.router.RouterContext;
|
|||||||
import net.i2p.router.TunnelInfo;
|
import net.i2p.router.TunnelInfo;
|
||||||
import net.i2p.router.tunnel.HopConfig;
|
import net.i2p.router.tunnel.HopConfig;
|
||||||
import net.i2p.router.tunnel.pool.TunnelPool;
|
import net.i2p.router.tunnel.pool.TunnelPool;
|
||||||
|
import net.i2p.router.web.HelperBase;
|
||||||
|
import net.i2p.router.web.Messages;
|
||||||
import net.i2p.stat.RateStat;
|
import net.i2p.stat.RateStat;
|
||||||
|
|
||||||
/**
|
/**
|
@ -1,4 +1,4 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
@ -1,4 +1,4 @@
|
|||||||
package net.i2p.router.web;
|
package net.i2p.router.web.helpers;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
@ -0,0 +1,24 @@
|
|||||||
|
<html>
|
||||||
|
<body>
|
||||||
|
<p>
|
||||||
|
Helpers and handlers for the router console user interface,
|
||||||
|
with these classes supporting the webapp in routerconsole.war.
|
||||||
|
All of these classes are packaged in routerconsole.war.
|
||||||
|
These classes are only accessible from the jsp files.
|
||||||
|
</p><p>
|
||||||
|
Most jsp pages in the console use a "Helper" or a "Renderer" class to
|
||||||
|
assist in generating the HTML.
|
||||||
|
For configuration pages that accept changes via POST, there
|
||||||
|
is additionally a "Handler" class to process the POST data.
|
||||||
|
Helpers usually extend HelperBase, and Handlers usually extend FormHandler.
|
||||||
|
</p><p>
|
||||||
|
This package was created in release 0.9.33 by moving
|
||||||
|
these classes from net.i2p.router.web to here,
|
||||||
|
and moving them from routerconsole.war to routerconsole.jar.
|
||||||
|
</p><p>
|
||||||
|
No classes contained here are part of a public API.
|
||||||
|
Subject to change.
|
||||||
|
Not for public use.
|
||||||
|
</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -4,6 +4,23 @@
|
|||||||
The router console user interface, implemented in routerconsole.jar, with these classes
|
The router console user interface, implemented in routerconsole.jar, with these classes
|
||||||
supporting the webapp in routerconsole.war.
|
supporting the webapp in routerconsole.war.
|
||||||
Entry point is RouterConsoleRunner, started from clients.config.
|
Entry point is RouterConsoleRunner, started from clients.config.
|
||||||
|
</p><p>
|
||||||
|
Most jsp pages in the console use a "Helper" or a "Renderer" class to
|
||||||
|
assist in generating the HTML.
|
||||||
|
For configuration pages that accept changes via POST, there
|
||||||
|
is additionally a "Handler" class to process the POST data.
|
||||||
|
Helpers usually extend <a href="HelperBase.html">HelperBase</a>,
|
||||||
|
and Handlers usually extend <a href="FormHandler.html">FormHandler</a>.
|
||||||
|
The base classes are in this package, but most Helpers, Handlers, and Renderers are in
|
||||||
|
<a href="helpers/package-summary.html">the helpers package</a>.
|
||||||
|
</p><p>
|
||||||
|
This package was split in release 0.9.33, with most of the helpers and handlers
|
||||||
|
moved to net.i2p.router.web.console,
|
||||||
|
and moving them from routerconsole.war to routerconsole.jar.
|
||||||
|
</p><p>
|
||||||
|
No classes contained here are part of a public API.
|
||||||
|
Subject to change.
|
||||||
|
Not for public use.
|
||||||
</p>
|
</p>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
</head><body onload="initAjax()">
|
</head><body onload="initAjax()">
|
||||||
<%@include file="summary.jsi" %><h1><%=intl._t("Certificates")%></h1>
|
<%@include file="summary.jsi" %><h1><%=intl._t("Certificates")%></h1>
|
||||||
<div class="main" id="certs">
|
<div class="main" id="certs">
|
||||||
<jsp:useBean class="net.i2p.router.web.CertHelper" id="certhelper" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.CertHelper" id="certhelper" scope="request" />
|
||||||
<jsp:setProperty name="certhelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
<jsp:setProperty name="certhelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
||||||
<% certhelper.storeWriter(out); %>
|
<% certhelper.storeWriter(out); %>
|
||||||
<jsp:getProperty name="certhelper" property="summary" />
|
<jsp:getProperty name="certhelper" property="summary" />
|
||||||
|
@ -12,13 +12,13 @@
|
|||||||
|
|
||||||
<%@include file="summary.jsi" %>
|
<%@include file="summary.jsi" %>
|
||||||
|
|
||||||
<jsp:useBean class="net.i2p.router.web.ConfigNetHelper" id="nethelper" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.ConfigNetHelper" id="nethelper" scope="request" />
|
||||||
<jsp:setProperty name="nethelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
<jsp:setProperty name="nethelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
||||||
<h1><%=intl._t("I2P Bandwidth Configuration")%></h1>
|
<h1><%=intl._t("I2P Bandwidth Configuration")%></h1>
|
||||||
<div class="main" id="config_bandwidth">
|
<div class="main" id="config_bandwidth">
|
||||||
<%@include file="confignav.jsi" %>
|
<%@include file="confignav.jsi" %>
|
||||||
|
|
||||||
<jsp:useBean class="net.i2p.router.web.ConfigNetHandler" id="formhandler" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.ConfigNetHandler" id="formhandler" scope="request" />
|
||||||
<%@include file="formhandler.jsi" %>
|
<%@include file="formhandler.jsi" %>
|
||||||
<form action="" method="POST">
|
<form action="" method="POST">
|
||||||
<input type="hidden" name="nonce" value="<%=pageNonce%>">
|
<input type="hidden" name="nonce" value="<%=pageNonce%>">
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
<%@include file="summary.jsi" %>
|
<%@include file="summary.jsi" %>
|
||||||
|
|
||||||
<jsp:useBean class="net.i2p.router.web.ConfigAdvancedHelper" id="advancedhelper" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.ConfigAdvancedHelper" id="advancedhelper" scope="request" />
|
||||||
<jsp:setProperty name="advancedhelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
<jsp:setProperty name="advancedhelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
||||||
|
|
||||||
<h1><%=intl._t("I2P Advanced Configuration")%></h1>
|
<h1><%=intl._t("I2P Advanced Configuration")%></h1>
|
||||||
@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
<%@include file="confignav.jsi" %>
|
<%@include file="confignav.jsi" %>
|
||||||
|
|
||||||
<jsp:useBean class="net.i2p.router.web.ConfigAdvancedHandler" id="formhandler" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.ConfigAdvancedHandler" id="formhandler" scope="request" />
|
||||||
<%@include file="formhandler.jsi" %>
|
<%@include file="formhandler.jsi" %>
|
||||||
<div class="configure">
|
<div class="configure">
|
||||||
<div class="wideload">
|
<div class="wideload">
|
||||||
|
@ -17,14 +17,14 @@ input.default { width: 1px; height: 1px; visibility: hidden; }
|
|||||||
|
|
||||||
<%@include file="summary.jsi" %>
|
<%@include file="summary.jsi" %>
|
||||||
|
|
||||||
<jsp:useBean class="net.i2p.router.web.ConfigClientsHelper" id="clientshelper" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.ConfigClientsHelper" id="clientshelper" scope="request" />
|
||||||
<jsp:setProperty name="clientshelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
<jsp:setProperty name="clientshelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
||||||
<jsp:setProperty name="clientshelper" property="edit" value="<%=request.getParameter(\"edit\")%>" />
|
<jsp:setProperty name="clientshelper" property="edit" value="<%=request.getParameter(\"edit\")%>" />
|
||||||
<h1><%=intl._t("I2P Client Configuration")%></h1>
|
<h1><%=intl._t("I2P Client Configuration")%></h1>
|
||||||
<div class="main" id="config_clients">
|
<div class="main" id="config_clients">
|
||||||
<%@include file="confignav.jsi" %>
|
<%@include file="confignav.jsi" %>
|
||||||
|
|
||||||
<jsp:useBean class="net.i2p.router.web.ConfigClientsHandler" id="formhandler" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.ConfigClientsHandler" id="formhandler" scope="request" />
|
||||||
<%@include file="formhandler.jsi" %>
|
<%@include file="formhandler.jsi" %>
|
||||||
<div class="configure">
|
<div class="configure">
|
||||||
<h3 id="i2pclientconfig"><%=intl._t("Client Configuration")%>
|
<h3 id="i2pclientconfig"><%=intl._t("Client Configuration")%>
|
||||||
|
@ -11,13 +11,13 @@
|
|||||||
|
|
||||||
<%@include file="summary.jsi" %>
|
<%@include file="summary.jsi" %>
|
||||||
|
|
||||||
<jsp:useBean class="net.i2p.router.web.ConfigFamilyHelper" id="familyHelper" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.ConfigFamilyHelper" id="familyHelper" scope="request" />
|
||||||
<jsp:setProperty name="familyHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
<jsp:setProperty name="familyHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
||||||
<h1><%=intl._t("I2P Router Family Configuration")%></h1>
|
<h1><%=intl._t("I2P Router Family Configuration")%></h1>
|
||||||
<div class="main" id="config_family">
|
<div class="main" id="config_family">
|
||||||
<%@include file="confignav.jsi" %>
|
<%@include file="confignav.jsi" %>
|
||||||
|
|
||||||
<jsp:useBean class="net.i2p.router.web.ConfigFamilyHandler" id="formhandler" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.ConfigFamilyHandler" id="formhandler" scope="request" />
|
||||||
<%@include file="formhandler.jsi" %>
|
<%@include file="formhandler.jsi" %>
|
||||||
|
|
||||||
<p class="infohelp"><%=intl._t("Routers in the same family share a family key.")%>
|
<p class="infohelp"><%=intl._t("Routers in the same family share a family key.")%>
|
||||||
|
@ -21,9 +21,9 @@ input.default {
|
|||||||
<div class="main" id="config_homepage">
|
<div class="main" id="config_homepage">
|
||||||
<%@include file="confignav.jsi" %>
|
<%@include file="confignav.jsi" %>
|
||||||
|
|
||||||
<jsp:useBean class="net.i2p.router.web.ConfigHomeHandler" id="formhandler" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.ConfigHomeHandler" id="formhandler" scope="request" />
|
||||||
<%@include file="formhandler.jsi" %>
|
<%@include file="formhandler.jsi" %>
|
||||||
<jsp:useBean class="net.i2p.router.web.HomeHelper" id="homehelper" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.HomeHelper" id="homehelper" scope="request" />
|
||||||
<jsp:setProperty name="homehelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
<jsp:setProperty name="homehelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
||||||
|
|
||||||
<h3 class="tabletitle"><%=intl._t("Default Home Page")%></h3>
|
<h3 class="tabletitle"><%=intl._t("Default Home Page")%></h3>
|
||||||
|
@ -17,14 +17,14 @@ input.default { width: 1px; height: 1px; visibility: hidden; }
|
|||||||
|
|
||||||
<%@include file="summary.jsi" %>
|
<%@include file="summary.jsi" %>
|
||||||
|
|
||||||
<jsp:useBean class="net.i2p.router.web.ConfigClientsHelper" id="clientshelper" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.ConfigClientsHelper" id="clientshelper" scope="request" />
|
||||||
<jsp:setProperty name="clientshelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
<jsp:setProperty name="clientshelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
||||||
<jsp:setProperty name="clientshelper" property="edit" value="<%=request.getParameter(\"edit\")%>" />
|
<jsp:setProperty name="clientshelper" property="edit" value="<%=request.getParameter(\"edit\")%>" />
|
||||||
<h1><%=intl._t("I2P Client Configuration")%></h1>
|
<h1><%=intl._t("I2P Client Configuration")%></h1>
|
||||||
<div class="main" id="config_i2cp">
|
<div class="main" id="config_i2cp">
|
||||||
<%@include file="confignav.jsi" %>
|
<%@include file="confignav.jsi" %>
|
||||||
|
|
||||||
<jsp:useBean class="net.i2p.router.web.ConfigClientsHandler" id="formhandler" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.ConfigClientsHandler" id="formhandler" scope="request" />
|
||||||
<%@include file="formhandler.jsi" %>
|
<%@include file="formhandler.jsi" %>
|
||||||
<div class="configure">
|
<div class="configure">
|
||||||
<h3 id="advancedclientconfig"><a name="i2cp"></a><%=intl._t("Advanced Client Interface Configuration")%></h3>
|
<h3 id="advancedclientconfig"><a name="i2cp"></a><%=intl._t("Advanced Client Interface Configuration")%></h3>
|
||||||
|
@ -14,9 +14,9 @@
|
|||||||
<div class="main" id="config_keyring">
|
<div class="main" id="config_keyring">
|
||||||
<%@include file="confignav.jsi" %>
|
<%@include file="confignav.jsi" %>
|
||||||
|
|
||||||
<jsp:useBean class="net.i2p.router.web.ConfigKeyringHandler" id="formhandler" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.ConfigKeyringHandler" id="formhandler" scope="request" />
|
||||||
<%@include file="formhandler.jsi" %>
|
<%@include file="formhandler.jsi" %>
|
||||||
<jsp:useBean class="net.i2p.router.web.ConfigKeyringHelper" id="keyringhelper" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.ConfigKeyringHelper" id="keyringhelper" scope="request" />
|
||||||
<jsp:setProperty name="keyringhelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
<jsp:setProperty name="keyringhelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
||||||
<p id="keyringhelp" class="infohelp">
|
<p id="keyringhelp" class="infohelp">
|
||||||
<%=intl._t("The router keyring is used to decrypt encrypted leaseSets.")%>
|
<%=intl._t("The router keyring is used to decrypt encrypted leaseSets.")%>
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
<script src="/js/ajax.js" type="text/javascript"></script>
|
<script src="/js/ajax.js" type="text/javascript"></script>
|
||||||
<%@include file="summaryajax.jsi" %>
|
<%@include file="summaryajax.jsi" %>
|
||||||
</head><body onload="initAjax()">
|
</head><body onload="initAjax()">
|
||||||
<jsp:useBean class="net.i2p.router.web.ConfigLoggingHelper" id="logginghelper" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.ConfigLoggingHelper" id="logginghelper" scope="request" />
|
||||||
<jsp:setProperty name="logginghelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
<jsp:setProperty name="logginghelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
||||||
|
|
||||||
<%@include file="summary.jsi" %>
|
<%@include file="summary.jsi" %>
|
||||||
@ -17,7 +17,7 @@
|
|||||||
<div class="main" id="config_logging">
|
<div class="main" id="config_logging">
|
||||||
<%@include file="confignav.jsi" %>
|
<%@include file="confignav.jsi" %>
|
||||||
|
|
||||||
<jsp:useBean class="net.i2p.router.web.ConfigLoggingHandler" id="formhandler" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.ConfigLoggingHandler" id="formhandler" scope="request" />
|
||||||
<%@include file="formhandler.jsi" %>
|
<%@include file="formhandler.jsi" %>
|
||||||
<form action="" method="POST">
|
<form action="" method="POST">
|
||||||
<input type="hidden" name="nonce" value="<%=pageNonce%>" >
|
<input type="hidden" name="nonce" value="<%=pageNonce%>" >
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
* Included ~10 times, keep whitespace to a minimum
|
* Included ~10 times, keep whitespace to a minimum
|
||||||
*/
|
*/
|
||||||
%>
|
%>
|
||||||
<jsp:useBean class="net.i2p.router.web.ConfigNavHelper" id="navHelper" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.ConfigNavHelper" id="navHelper" scope="request" />
|
||||||
<jsp:setProperty name="navHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
<jsp:setProperty name="navHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
||||||
<% navHelper.storeWriter(out); %>
|
<% navHelper.storeWriter(out); %>
|
||||||
<div class="confignav" id="confignav">
|
<div class="confignav" id="confignav">
|
||||||
|
@ -11,13 +11,13 @@
|
|||||||
|
|
||||||
<%@include file="summary.jsi" %>
|
<%@include file="summary.jsi" %>
|
||||||
|
|
||||||
<jsp:useBean class="net.i2p.router.web.ConfigNetHelper" id="nethelper" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.ConfigNetHelper" id="nethelper" scope="request" />
|
||||||
<jsp:setProperty name="nethelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
<jsp:setProperty name="nethelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
||||||
<h1><%=intl._t("I2P Network Configuration")%></h1>
|
<h1><%=intl._t("I2P Network Configuration")%></h1>
|
||||||
<div class="main" id="config_network">
|
<div class="main" id="config_network">
|
||||||
<%@include file="confignav.jsi" %>
|
<%@include file="confignav.jsi" %>
|
||||||
|
|
||||||
<jsp:useBean class="net.i2p.router.web.ConfigNetHandler" id="formhandler" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.ConfigNetHandler" id="formhandler" scope="request" />
|
||||||
<%@include file="formhandler.jsi" %>
|
<%@include file="formhandler.jsi" %>
|
||||||
<form action="" method="POST">
|
<form action="" method="POST">
|
||||||
<input type="hidden" name="nonce" value="<%=pageNonce%>" >
|
<input type="hidden" name="nonce" value="<%=pageNonce%>" >
|
||||||
|
@ -11,9 +11,9 @@
|
|||||||
<h1><%=intl._t("I2P Peer Configuration")%></h1>
|
<h1><%=intl._t("I2P Peer Configuration")%></h1>
|
||||||
<div class="main" id="config_peers">
|
<div class="main" id="config_peers">
|
||||||
<%@include file="confignav.jsi" %>
|
<%@include file="confignav.jsi" %>
|
||||||
<jsp:useBean class="net.i2p.router.web.ConfigPeerHandler" id="formhandler" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.ConfigPeerHandler" id="formhandler" scope="request" />
|
||||||
<%@include file="formhandler.jsi" %>
|
<%@include file="formhandler.jsi" %>
|
||||||
<jsp:useBean class="net.i2p.router.web.ConfigPeerHelper" id="peerhelper" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.ConfigPeerHelper" id="peerhelper" scope="request" />
|
||||||
<jsp:setProperty name="peerhelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
<jsp:setProperty name="peerhelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
||||||
<% String peer = "";
|
<% String peer = "";
|
||||||
if (request.getParameter("peer") != null)
|
if (request.getParameter("peer") != null)
|
||||||
@ -62,7 +62,7 @@
|
|||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
<a name="banlist"> </a><h3 id="bannedpeers"><%=intl._t("Banned Peers")%></h3>
|
<a name="banlist"> </a><h3 id="bannedpeers"><%=intl._t("Banned Peers")%></h3>
|
||||||
<jsp:useBean class="net.i2p.router.web.ProfilesHelper" id="profilesHelper" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.ProfilesHelper" id="profilesHelper" scope="request" />
|
||||||
<jsp:setProperty name="profilesHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
<jsp:setProperty name="profilesHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
||||||
<% profilesHelper.storeWriter(out); %>
|
<% profilesHelper.storeWriter(out); %>
|
||||||
<jsp:getProperty name="profilesHelper" property="banlistSummary" />
|
<jsp:getProperty name="profilesHelper" property="banlistSummary" />
|
||||||
|
@ -17,14 +17,14 @@ input.default { width: 1px; height: 1px; visibility: hidden; }
|
|||||||
|
|
||||||
<%@include file="summary.jsi" %>
|
<%@include file="summary.jsi" %>
|
||||||
|
|
||||||
<jsp:useBean class="net.i2p.router.web.ConfigClientsHelper" id="clientshelper" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.ConfigClientsHelper" id="clientshelper" scope="request" />
|
||||||
<jsp:setProperty name="clientshelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
<jsp:setProperty name="clientshelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
||||||
<jsp:setProperty name="clientshelper" property="edit" value="<%=request.getParameter(\"edit\")%>" />
|
<jsp:setProperty name="clientshelper" property="edit" value="<%=request.getParameter(\"edit\")%>" />
|
||||||
<h1><%=intl._t("Plugin Configuration")%></h1>
|
<h1><%=intl._t("Plugin Configuration")%></h1>
|
||||||
<div class="main" id="config_plugins">
|
<div class="main" id="config_plugins">
|
||||||
<%@include file="confignav.jsi" %>
|
<%@include file="confignav.jsi" %>
|
||||||
|
|
||||||
<jsp:useBean class="net.i2p.router.web.ConfigClientsHandler" id="formhandler" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.ConfigClientsHandler" id="formhandler" scope="request" />
|
||||||
<%@include file="formhandler.jsi" %>
|
<%@include file="formhandler.jsi" %>
|
||||||
<div class="configure">
|
<div class="configure">
|
||||||
<%
|
<%
|
||||||
|
@ -11,13 +11,13 @@
|
|||||||
|
|
||||||
<%@include file="summary.jsi" %>
|
<%@include file="summary.jsi" %>
|
||||||
|
|
||||||
<jsp:useBean class="net.i2p.router.web.ConfigReseedHelper" id="reseedHelper" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.ConfigReseedHelper" id="reseedHelper" scope="request" />
|
||||||
<jsp:setProperty name="reseedHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
<jsp:setProperty name="reseedHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
||||||
<h1><%=intl._t("I2P Reseeding Configuration")%></h1>
|
<h1><%=intl._t("I2P Reseeding Configuration")%></h1>
|
||||||
<div class="main" id="config_reseed">
|
<div class="main" id="config_reseed">
|
||||||
<%@include file="confignav.jsi" %>
|
<%@include file="confignav.jsi" %>
|
||||||
|
|
||||||
<jsp:useBean class="net.i2p.router.web.ConfigReseedHandler" id="formhandler" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.ConfigReseedHandler" id="formhandler" scope="request" />
|
||||||
<%@include file="formhandler.jsi" %>
|
<%@include file="formhandler.jsi" %>
|
||||||
|
|
||||||
<p class="infohelp">
|
<p class="infohelp">
|
||||||
|
@ -83,7 +83,7 @@
|
|||||||
|
|
||||||
<h3 class="ptitle" id="browseronstart"><%=intl._t("Launch browser on router startup?")%></h3>
|
<h3 class="ptitle" id="browseronstart"><%=intl._t("Launch browser on router startup?")%></h3>
|
||||||
<p class="infohelp">
|
<p class="infohelp">
|
||||||
<%=intl._t("I2P's main configuration interface is this web console, so for your convenience I2P can launch a web browser on startup pointing at")%>
|
<%=intl._t("I2P's main configuration interface is this web.helpers, so for your convenience I2P can launch a web browser on startup pointing at")%>
|
||||||
<a href="http://127.0.0.1:7657/">http://127.0.0.1:7657/</a> .</p>
|
<a href="http://127.0.0.1:7657/">http://127.0.0.1:7657/</a> .</p>
|
||||||
<hr><div class="formaction" id="browserstart">
|
<hr><div class="formaction" id="browserstart">
|
||||||
<input type="submit" class="check" name="action" value="<%=intl._t("View console on startup")%>" >
|
<input type="submit" class="check" name="action" value="<%=intl._t("View console on startup")%>" >
|
||||||
|
@ -21,12 +21,12 @@ input.default {
|
|||||||
<div class="main" id="config_summarybar">
|
<div class="main" id="config_summarybar">
|
||||||
<%@include file="confignav.jsi" %>
|
<%@include file="confignav.jsi" %>
|
||||||
|
|
||||||
<jsp:useBean class="net.i2p.router.web.ConfigSummaryHandler" id="formhandler" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.ConfigSummaryHandler" id="formhandler" scope="request" />
|
||||||
<%@include file="formhandler.jsi" %>
|
<%@include file="formhandler.jsi" %>
|
||||||
<%
|
<%
|
||||||
formhandler.setMovingAction();
|
formhandler.setMovingAction();
|
||||||
%>
|
%>
|
||||||
<jsp:useBean class="net.i2p.router.web.SummaryHelper" id="summaryhelper" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.SummaryHelper" id="summaryhelper" scope="request" />
|
||||||
<jsp:setProperty name="summaryhelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
<jsp:setProperty name="summaryhelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
||||||
|
|
||||||
<h3 class="tabletitle"><%=intl._t("Refresh Interval")%></h3>
|
<h3 class="tabletitle"><%=intl._t("Refresh Interval")%></h3>
|
||||||
|
@ -66,9 +66,9 @@ function toggleAll(category)
|
|||||||
<div class="main" id="config_stats">
|
<div class="main" id="config_stats">
|
||||||
<%@include file="confignav.jsi" %>
|
<%@include file="confignav.jsi" %>
|
||||||
|
|
||||||
<jsp:useBean class="net.i2p.router.web.ConfigStatsHandler" id="formhandler" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.ConfigStatsHandler" id="formhandler" scope="request" />
|
||||||
<%@include file="formhandler.jsi" %>
|
<%@include file="formhandler.jsi" %>
|
||||||
<jsp:useBean class="net.i2p.router.web.ConfigStatsHelper" id="statshelper" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.ConfigStatsHelper" id="statshelper" scope="request" />
|
||||||
<jsp:setProperty name="statshelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
<jsp:setProperty name="statshelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
||||||
<div class="configure">
|
<div class="configure">
|
||||||
<form id="statsForm" name="statsForm" action="" method="POST">
|
<form id="statsForm" name="statsForm" action="" method="POST">
|
||||||
|
@ -11,12 +11,12 @@
|
|||||||
|
|
||||||
<%@include file="summary.jsi" %>
|
<%@include file="summary.jsi" %>
|
||||||
|
|
||||||
<jsp:useBean class="net.i2p.router.web.ConfigTunnelsHelper" id="tunnelshelper" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.ConfigTunnelsHelper" id="tunnelshelper" scope="request" />
|
||||||
<jsp:setProperty name="tunnelshelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
<jsp:setProperty name="tunnelshelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
||||||
<h1><%=intl._t("I2P Tunnel Configuration")%></h1>
|
<h1><%=intl._t("I2P Tunnel Configuration")%></h1>
|
||||||
<div class="main" id="config_tunnels">
|
<div class="main" id="config_tunnels">
|
||||||
<%@include file="confignav.jsi" %>
|
<%@include file="confignav.jsi" %>
|
||||||
<jsp:useBean class="net.i2p.router.web.ConfigTunnelsHandler" id="formhandler" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.ConfigTunnelsHandler" id="formhandler" scope="request" />
|
||||||
<%@include file="formhandler.jsi" %>
|
<%@include file="formhandler.jsi" %>
|
||||||
<p id="tunnelconfig" class="infowarn">
|
<p id="tunnelconfig" class="infowarn">
|
||||||
<%=intl._t("The default settings work for most people.")%>
|
<%=intl._t("The default settings work for most people.")%>
|
||||||
|
@ -19,7 +19,7 @@ input.default {
|
|||||||
|
|
||||||
<%@include file="summary.jsi" %>
|
<%@include file="summary.jsi" %>
|
||||||
|
|
||||||
<jsp:useBean class="net.i2p.router.web.ConfigUIHelper" id="uihelper" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.ConfigUIHelper" id="uihelper" scope="request" />
|
||||||
<jsp:setProperty name="uihelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
<jsp:setProperty name="uihelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
||||||
|
|
||||||
<h1><%=uihelper._t("I2P UI Configuration")%></h1>
|
<h1><%=uihelper._t("I2P UI Configuration")%></h1>
|
||||||
@ -27,7 +27,7 @@ input.default {
|
|||||||
|
|
||||||
<%@include file="confignav.jsi" %>
|
<%@include file="confignav.jsi" %>
|
||||||
|
|
||||||
<jsp:useBean class="net.i2p.router.web.ConfigUIHandler" id="formhandler" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.ConfigUIHandler" id="formhandler" scope="request" />
|
||||||
<%@include file="formhandler.jsi" %>
|
<%@include file="formhandler.jsi" %>
|
||||||
<h3 id="themeheading"><%=uihelper._t("Router Console Theme")%></h3>
|
<h3 id="themeheading"><%=uihelper._t("Router Console Theme")%></h3>
|
||||||
<form action="" method="POST">
|
<form action="" method="POST">
|
||||||
|
@ -17,14 +17,14 @@ input.default { width: 1px; height: 1px; visibility: hidden; }
|
|||||||
|
|
||||||
<%@include file="summary.jsi" %>
|
<%@include file="summary.jsi" %>
|
||||||
|
|
||||||
<jsp:useBean class="net.i2p.router.web.ConfigClientsHelper" id="clientshelper" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.ConfigClientsHelper" id="clientshelper" scope="request" />
|
||||||
<jsp:setProperty name="clientshelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
<jsp:setProperty name="clientshelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
||||||
<jsp:setProperty name="clientshelper" property="edit" value="<%=request.getParameter(\"edit\")%>" />
|
<jsp:setProperty name="clientshelper" property="edit" value="<%=request.getParameter(\"edit\")%>" />
|
||||||
<h1><%=intl._t("WebApp Configuration")%></h1>
|
<h1><%=intl._t("WebApp Configuration")%></h1>
|
||||||
<div class="main" id="config_webapps">
|
<div class="main" id="config_webapps">
|
||||||
<%@include file="confignav.jsi" %>
|
<%@include file="confignav.jsi" %>
|
||||||
|
|
||||||
<jsp:useBean class="net.i2p.router.web.ConfigClientsHandler" id="formhandler" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.ConfigClientsHandler" id="formhandler" scope="request" />
|
||||||
<%@include file="formhandler.jsi" %>
|
<%@include file="formhandler.jsi" %>
|
||||||
<div class="configure">
|
<div class="configure">
|
||||||
<h3 id="webappconfig"><a name="webapp"></a><%=intl._t("WebApp Configuration")%></h3><p>
|
<h3 id="webappconfig"><a name="webapp"></a><%=intl._t("WebApp Configuration")%></h3><p>
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<jsp:useBean class="net.i2p.router.web.ReseedGenerator" id="gen" scope="request" /><jsp:setProperty name="gen" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" /><%
|
<jsp:useBean class="net.i2p.router.web.helpers.ReseedGenerator" id="gen" scope="request" /><jsp:setProperty name="gen" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" /><%
|
||||||
/*
|
/*
|
||||||
* USE CAUTION WHEN EDITING
|
* USE CAUTION WHEN EDITING
|
||||||
* Trailing whitespace OR NEWLINE on the last line will cause
|
* Trailing whitespace OR NEWLINE on the last line will cause
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<%@page contentType="text/plain"
|
<%@page contentType="text/plain"
|
||||||
%><jsp:useBean id="helper" class="net.i2p.router.web.StatHelper"
|
%><jsp:useBean id="helper" class="net.i2p.router.web.helpers.StatHelper"
|
||||||
/><jsp:setProperty name="helper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>"
|
/><jsp:setProperty name="helper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>"
|
||||||
/><jsp:setProperty name="helper" property="peer" value="<%=net.i2p.data.DataHelper.stripHTML(request.getParameter(\"peer\"))%>"
|
/><jsp:setProperty name="helper" property="peer" value="<%=net.i2p.data.DataHelper.stripHTML(request.getParameter(\"peer\"))%>"
|
||||||
/><% helper.storeWriter(out);
|
/><% helper.storeWriter(out);
|
||||||
|
@ -61,7 +61,7 @@
|
|||||||
<p>
|
<p>
|
||||||
<b>I2P version:</b> <%=net.i2p.router.RouterVersion.FULL_VERSION%><br>
|
<b>I2P version:</b> <%=net.i2p.router.RouterVersion.FULL_VERSION%><br>
|
||||||
<b>Java version:</b> <%=System.getProperty("java.vendor")%> <%=System.getProperty("java.version")%> (<%=System.getProperty("java.runtime.name")%> <%=System.getProperty("java.runtime.version")%>)<br>
|
<b>Java version:</b> <%=System.getProperty("java.vendor")%> <%=System.getProperty("java.version")%> (<%=System.getProperty("java.runtime.name")%> <%=System.getProperty("java.runtime.version")%>)<br>
|
||||||
<jsp:useBean class="net.i2p.router.web.LogsHelper" id="logsHelper" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.LogsHelper" id="logsHelper" scope="request" />
|
||||||
<jsp:setProperty name="logsHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
<jsp:setProperty name="logsHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
||||||
<jsp:getProperty name="logsHelper" property="unavailableCrypto" />
|
<jsp:getProperty name="logsHelper" property="unavailableCrypto" />
|
||||||
<b>Wrapper version:</b> <%=System.getProperty("wrapper.version", "none")%><br>
|
<b>Wrapper version:</b> <%=System.getProperty("wrapper.version", "none")%><br>
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
<html><head>
|
<html><head>
|
||||||
<%@include file="css.jsi" %>
|
<%@include file="css.jsi" %>
|
||||||
<%=intl.title("events")%>
|
<%=intl.title("events")%>
|
||||||
<jsp:useBean class="net.i2p.router.web.EventLogHelper" id="eventHelper" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.EventLogHelper" id="eventHelper" scope="request" />
|
||||||
<jsp:setProperty name="eventHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
<jsp:setProperty name="eventHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
||||||
<% /* GraphHelper sets the defaults in setContextId, so setting the properties must be after the context */ %>
|
<% /* GraphHelper sets the defaults in setContextId, so setting the properties must be after the context */ %>
|
||||||
<jsp:setProperty name="eventHelper" property="*" />
|
<jsp:setProperty name="eventHelper" property="*" />
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
* Included ~15 times, keep whitespace to a minimum
|
* Included ~15 times, keep whitespace to a minimum
|
||||||
*
|
*
|
||||||
* Include this directly after the line:
|
* Include this directly after the line:
|
||||||
* <jsp:useBean class="net.i2p.router.web.xxxHandler" id="formhandler" scope="request" />
|
* <jsp:useBean class="net.i2p.router.web.helpers.xxxHandler" id="formhandler" scope="request" />
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// This initializes the RouterContext - must be the first thing
|
// This initializes the RouterContext - must be the first thing
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<html><head>
|
<html><head>
|
||||||
<%@include file="css.jsi" %>
|
<%@include file="css.jsi" %>
|
||||||
<%=intl.title("graphs")%>
|
<%=intl.title("graphs")%>
|
||||||
<jsp:useBean class="net.i2p.router.web.GraphHelper" id="graphHelper" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.GraphHelper" id="graphHelper" scope="request" />
|
||||||
<jsp:setProperty name="graphHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
<jsp:setProperty name="graphHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
||||||
<% /* GraphHelper sets the defaults in setContextId, so setting the properties must be after the context */ %>
|
<% /* GraphHelper sets the defaults in setContextId, so setting the properties must be after the context */ %>
|
||||||
<jsp:setProperty name="graphHelper" property="*" />
|
<jsp:setProperty name="graphHelper" property="*" />
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
<html><head>
|
<html><head>
|
||||||
<%@include file="css.jsi" %>
|
<%@include file="css.jsi" %>
|
||||||
<%=intl.title("graphs")%>
|
<%=intl.title("graphs")%>
|
||||||
<jsp:useBean class="net.i2p.router.web.GraphHelper" id="graphHelper" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.GraphHelper" id="graphHelper" scope="request" />
|
||||||
<jsp:setProperty name="graphHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
<jsp:setProperty name="graphHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
|
||||||
<% /* GraphHelper sets the defaults in setContextId, so setting the properties must be after the context */ %>
|
<% /* GraphHelper sets the defaults in setContextId, so setting the properties must be after the context */ %>
|
||||||
<jsp:setProperty name="graphHelper" property="*" />
|
<jsp:setProperty name="graphHelper" property="*" />
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user