You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by sv...@apache.org on 2016/05/20 17:23:14 UTC
[1/2] wicket git commit: WICKET-6155 escape JavaScript object values
Repository: wicket
Updated Branches:
refs/heads/master 76096b7f9 -> e1157cb78
WICKET-6155 escape JavaScript object values
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/c3468068
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/c3468068
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/c3468068
Branch: refs/heads/master
Commit: c3468068b8e13c36438e07c8b8d73ec2419076a5
Parents: 76096b7
Author: Sven Meier <sv...@apache.org>
Authored: Fri May 20 17:26:01 2016 +0200
Committer: Sven Meier <sv...@apache.org>
Committed: Fri May 20 18:22:18 2016 +0200
----------------------------------------------------------------------
.../examples/ajax/builtin/modal/ModalWindowPage.java | 2 +-
.../extensions/ajax/markup/html/modal/ModalWindow.java | 11 +++++++++--
2 files changed, 10 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/c3468068/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/modal/ModalWindowPage.java
----------------------------------------------------------------------
diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/modal/ModalWindowPage.java b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/modal/ModalWindowPage.java
index ed40cb5..49b9440 100644
--- a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/modal/ModalWindowPage.java
+++ b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/modal/ModalWindowPage.java
@@ -91,7 +91,7 @@ public class ModalWindowPage extends BasePage
add(modal2 = new ModalWindow("modal2"));
modal2.setContent(new ModalPanel1(modal2.getContentId()));
- modal2.setTitle("This is modal window with panel content.");
+ modal2.setTitle("Modal window\n'panel\" content.");
modal2.setCookieName("modal-2");
modal2.setCloseButtonCallback(new ModalWindow.CloseButtonCallback()
http://git-wip-us.apache.org/repos/asf/wicket/blob/c3468068/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/ModalWindow.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/ModalWindow.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/ModalWindow.java
index f2f29ad..36e3d20 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/ModalWindow.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/ModalWindow.java
@@ -42,6 +42,7 @@ import org.apache.wicket.resource.CoreLibrariesContributor;
import org.apache.wicket.util.io.IClusterable;
import org.apache.wicket.util.lang.EnumeratedType;
import org.apache.wicket.util.string.AppendingStringBuffer;
+import org.apache.wicket.util.string.Strings;
/**
* Modal window component.
@@ -1158,10 +1159,16 @@ public class ModalWindow extends Panel
* @param key
* @param value
*/
- private void appendAssignment(final AppendingStringBuffer buffer, final CharSequence key,
- final CharSequence value)
+ private void appendAssignment(final AppendingStringBuffer buffer, final CharSequence key, CharSequence value)
{
buffer.append(key).append("=\"");
+
+ if (value != null)
+ {
+ value = Strings.replaceAll(value, "\"", "\\\"");
+ value = Strings.replaceAll(value, "\n", "\\n");
+ }
+
buffer.append(value);
buffer.append("\";\n");
}
[2/2] wicket git commit: WICKET-6155 use JSON for settings
Posted by sv...@apache.org.
WICKET-6155 use JSON for settings
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/e1157cb7
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/e1157cb7
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/e1157cb7
Branch: refs/heads/master
Commit: e1157cb783cb82d791bdf97869d4924bd369a1f0
Parents: c346806
Author: Sven Meier <sv...@apache.org>
Authored: Fri May 20 18:55:36 2016 +0200
Committer: Sven Meier <sv...@apache.org>
Committed: Fri May 20 18:55:36 2016 +0200
----------------------------------------------------------------------
.../ajax/markup/html/modal/ModalWindow.java | 119 +++++--------------
1 file changed, 31 insertions(+), 88 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/e1157cb7/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/ModalWindow.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/ModalWindow.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/ModalWindow.java
index 36e3d20..66ad3f0 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/ModalWindow.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/ModalWindow.java
@@ -21,6 +21,8 @@ import org.apache.wicket.Page;
import org.apache.wicket.WicketRuntimeException;
import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.json.JSONObject;
+import org.apache.wicket.ajax.json.JsonFunction;
import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
import org.apache.wicket.core.request.handler.PageProvider;
import org.apache.wicket.core.request.handler.RenderPageRequestHandler;
@@ -42,7 +44,6 @@ import org.apache.wicket.resource.CoreLibrariesContributor;
import org.apache.wicket.util.io.IClusterable;
import org.apache.wicket.util.lang.EnumeratedType;
import org.apache.wicket.util.string.AppendingStringBuffer;
-import org.apache.wicket.util.string.Strings;
/**
* Modal window component.
@@ -1008,37 +1009,28 @@ public class ModalWindow extends Panel
*/
protected final String getWindowOpenJavaScript()
{
- AppendingStringBuffer buffer = new AppendingStringBuffer(500);
-
- if (isCustomComponent())
- {
- buffer.append("var element = document.getElementById(\"");
- buffer.append(getContentMarkupId());
- buffer.append("\");\n");
- }
-
- buffer.append("var settings = new Object();\n");
+ JSONObject settings = new JSONObject();
- appendAssignment(buffer, "settings.minWidth", getMinimalWidth());
- appendAssignment(buffer, "settings.minHeight", getMinimalHeight());
- appendAssignment(buffer, "settings.className", getCssClassName());
- appendAssignment(buffer, "settings.width", getInitialWidth());
+ settings.put("minWidth", getMinimalWidth());
+ settings.put("minHeight", getMinimalHeight());
+ settings.put("className", getCssClassName());
+ settings.put("width", getInitialWidth());
if ((isUseInitialHeight() == true) || (isCustomComponent() == false))
{
- appendAssignment(buffer, "settings.height", getInitialHeight());
+ settings.put("height", getInitialHeight());
}
else
{
- buffer.append("settings.height=null;\n");
+ settings.put("height", (Object)null);
}
- appendAssignment(buffer, "settings.resizable", isResizable());
+ settings.put("resizable", isResizable());
if (isResizable() == false)
{
- appendAssignment(buffer, "settings.widthUnit", getWidthUnit());
- appendAssignment(buffer, "settings.heightUnit", getHeightUnit());
+ settings.put("widthUnit", getWidthUnit());
+ settings.put("heightUnit", getHeightUnit());
}
if (isCustomComponent() == false)
@@ -1062,37 +1054,36 @@ public class ModalWindow extends Panel
pageUrl = requestCycle.urlFor(handler);
}
- appendAssignment(buffer, "settings.src", pageUrl);
+ settings.put("src", pageUrl);
}
else
{
- buffer.append("settings.element=element;\n");
+ settings.put("element", new JsonFunction("document.getElementById(\"" + getContentMarkupId() + "\")"));
}
if (getCookieName() != null)
{
- appendAssignment(buffer, "settings.cookieId", getCookieName());
+ settings.put("cookieId", getCookieName());
}
String title = getTitle() != null ? getTitle().getObject() : null;
if (title != null)
{
- String escaped = getDefaultModelObjectAsString(title);
- appendAssignment(buffer, "settings.title", escaped);
+ settings.put("title", getDefaultModelObjectAsString(title));
}
if (getMaskType() == MaskType.TRANSPARENT)
{
- buffer.append("settings.mask=\"transparent\";\n");
+ settings.put("mask", "transparent");
}
else if (getMaskType() == MaskType.SEMI_TRANSPARENT)
{
- buffer.append("settings.mask=\"semi-transparent\";\n");
+ settings.put("mask", "semi-transparent");
}
- appendAssignment(buffer, "settings.autoSize", autoSize);
+ settings.put("autoSize", autoSize);
- appendAssignment(buffer, "settings.unloadConfirmation", showUnloadConfirmation());
+ settings.put("unloadConfirmation", showUnloadConfirmation());
// set true if we set a windowclosedcallback
boolean haveCloseCallback = false;
@@ -1102,9 +1093,7 @@ public class ModalWindow extends Panel
if (windowClosedCallback != null)
{
WindowClosedBehavior behavior = getBehaviors(WindowClosedBehavior.class).get(0);
- buffer.append("settings.onClose = function() { ");
- buffer.append(behavior.getCallbackScript());
- buffer.append(" };\n");
+ settings.put("onClose", new JsonFunction("function() { " + behavior.getCallbackScript() + " }"));
haveCloseCallback = true;
}
@@ -1114,74 +1103,28 @@ public class ModalWindow extends Panel
if ((closeButtonCallback != null) || (haveCloseCallback == false))
{
CloseButtonBehavior behavior = getBehaviors(CloseButtonBehavior.class).get(0);
- buffer.append("settings.onCloseButton = function() { ");
- buffer.append(behavior.getCallbackScript());
- buffer.append(";return false;};\n");
+ settings.put("onCloseButton", new JsonFunction("function() { " + behavior.getCallbackScript() + "; return false; }"));
}
- postProcessSettings(buffer);
-
- buffer.append(getShowJavaScript());
- return buffer.toString();
- }
-
- /**
- *
- * @param buffer
- * @param key
- * @param value
- */
- private void appendAssignment(final AppendingStringBuffer buffer, final CharSequence key,
- final int value)
- {
- buffer.append(key).append('=');
- buffer.append(value);
- buffer.append(";\n");
- }
-
- /**
- *
- * @param buffer
- * @param key
- * @param value
- */
- private void appendAssignment(final AppendingStringBuffer buffer, final CharSequence key,
- final boolean value)
- {
- buffer.append(key).append('=');
- buffer.append(Boolean.toString(value));
- buffer.append(";\n");
- }
-
- /**
- *
- * @param buffer
- * @param key
- * @param value
- */
- private void appendAssignment(final AppendingStringBuffer buffer, final CharSequence key, CharSequence value)
- {
- buffer.append(key).append("=\"");
+ postProcessSettings(settings);
- if (value != null)
- {
- value = Strings.replaceAll(value, "\"", "\\\"");
- value = Strings.replaceAll(value, "\n", "\\n");
- }
+ AppendingStringBuffer buffer = new AppendingStringBuffer(500);
+ buffer.append("var settings = ");
+ buffer.append(settings.toString());
+ buffer.append(";");
- buffer.append(value);
- buffer.append("\";\n");
+ buffer.append(getShowJavaScript());
+ return buffer.toString();
}
/**
* Method that allows tweaking the settings
*
* @param settings
- * @return settings javascript
+ * @return settings json
*/
- protected AppendingStringBuffer postProcessSettings(final AppendingStringBuffer settings)
+ protected void postProcessSettings(JSONObject settings)
{
- return settings;
}
/**