From c9fc3f11a67cb319b7678f892bc9de34aed430d4 Mon Sep 17 00:00:00 2001 From: str4d <str4d@mail.i2p> Date: Mon, 9 Jul 2012 07:59:41 +0000 Subject: [PATCH] Replaced text fields for ordering summary bar with movement buttons (CSS styling needed) --- .../i2p/router/web/ConfigSummaryHandler.java | 33 ++++++++++++++++++- .../src/net/i2p/router/web/SummaryHelper.java | 29 ++++++++++++++-- 2 files changed, 59 insertions(+), 3 deletions(-) diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigSummaryHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/ConfigSummaryHandler.java index 7fbe10cbcd..3ad7c1c206 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigSummaryHandler.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigSummaryHandler.java @@ -26,6 +26,10 @@ public class ConfigSummaryHandler extends FormHandler { boolean deleting = _action.equals(_("Delete selected")); boolean adding = _action.equals(_("Add item")); boolean saving = _action.equals(_("Save order")); + boolean movingTop = _action.substring(_action.indexOf(' ') + 1).equals(_("Top")); + boolean movingUp = _action.substring(_action.indexOf(' ') + 1).equals(_("Up")); + boolean movingDown = _action.substring(_action.indexOf(' ') + 1).equals(_("Down")); + boolean movingBottom = _action.substring(_action.indexOf(' ') + 1).equals(_("Bottom")); if (_action.equals(_("Save")) && "0".equals(group)) { try { int refreshInterval = Integer.parseInt(getJettyString("refreshInterval")); @@ -46,7 +50,8 @@ public class ConfigSummaryHandler extends FormHandler { _context.router().saveConfig(SummaryHelper.PROP_SUMMARYBAR + "default", SummaryHelper.DEFAULT_MINIMAL); addFormNotice(_("Minimal summary bar default restored.") + " " + _("Summary bar will refresh shortly.")); - } else if (adding || deleting || saving) { + } else if (adding || deleting || saving || + movingTop || movingUp || movingDown || movingBottom) { Map<Integer, String> sections = new TreeMap<Integer, String>(); for (Object o : _settings.keySet()) { if (!(o instanceof String)) @@ -110,6 +115,32 @@ public class ConfigSummaryHandler extends FormHandler { addFormNotice(_("Removed") + ": " + removedName); } } + } else if (movingTop || movingUp || movingDown || movingBottom) { + int start = _action.indexOf('['); + int end = _action.indexOf(']'); + String fromStr = _action.substring(start + 1, end - start); + try { + int from = Integer.parseInt(fromStr); + int to = 0; + if (movingUp) + to = from - 1; + if (movingDown) + to = from + 1; + if (movingBottom) + to = sections.size() - 1; + int n = -1; + if (movingDown || movingBottom) + n = 1; + for (int i = from; n * i < n * to; i += n) { + String temp = sections.get(i + n); + sections.put(i + n, sections.get(i)); + sections.put(i, temp); + } + addFormNotice(_("Moved") + ": " + sections.get(to)); + } catch (java.lang.NumberFormatException e) { + addFormError(_("Order must be an integer")); + return; + } } SummaryHelper.saveSummaryBarSections(_context, "default", sections); addFormError(_("Saved order of sections.") + " " + diff --git a/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java index e2345e3bf6..08809cad47 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java @@ -811,11 +811,36 @@ public class SummaryHelper extends HelperBase { int i = sections.indexOf(section); buf.append("<tr><td align=\"center\"><input type=\"checkbox\" class=\"optbox\" name=\"delete_") .append(i) - .append("\"></td><td align=\"center\"><input type=\"text\" name=\"order_") + .append("\"></td><td align=\"center\"><input type=\"hidden\" name=\"order_") .append(i + "_" + section) .append("\" value=\"") .append(i) - .append("\"></td><td align=\"left\">") + .append("\">"); + if (i > 0) { + buf.append("<input type=\"submit\" class=\"buttonTop\" name=\"action\" value=\"[") + .append(i) + .append("] ") + .append(_("Top")) + .append("\">"); + buf.append("<input type=\"submit\" class=\"buttonUp\" name=\"action\" value=\"[") + .append(i) + .append("] ") + .append(_("Up")) + .append("\">"); + } + if (i < sections.size() - 1) { + buf.append("<input type=\"submit\" class=\"buttonDown\" name=\"action\" value=\"[") + .append(i) + .append("] ") + .append(_("Down")) + .append("\">"); + buf.append("<input type=\"submit\" class=\"buttonBottom\" name=\"action\" value=\"[") + .append(i) + .append("] ") + .append(_("Bottom")) + .append("\">"); + } + buf.append("</td><td align=\"left\">") .append(section) .append("</td></tr>\n"); } -- GitLab