You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2013/06/14 15:35:10 UTC

git commit: WICKET-5071 404 Error on Nested ModalWindows in IE7 and IE8

Updated Branches:
  refs/heads/master 4b37aaf88 -> b5cb9887f


WICKET-5071 404 Error on Nested ModalWindows in IE7 and IE8

PageInstanceMapper now will match if the baseUrl is 'page?..' and the request url is 'page?...'
An explicit mount of a page at 'page' will have higher priority because it is added later in CompoundRequestMapper


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/b5cb9887
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/b5cb9887
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/b5cb9887

Branch: refs/heads/master
Commit: b5cb9887fecad4815849eca22441521ee35669e1
Parents: 4b37aaf
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Fri Jun 14 16:33:17 2013 +0300
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Fri Jun 14 16:33:17 2013 +0300

----------------------------------------------------------------------
 .../core/request/mapper/PageInstanceMapper.java |  4 ++
 .../request/mapper/PageInstanceMapperTest.java  | 49 +++++++++++++++++++-
 .../ajax/markup/html/modal/ModalWindow.java     |  7 +--
 .../ajax/markup/html/modal/res/modal.js         |  6 +--
 4 files changed, 54 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/b5cb9887/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/PageInstanceMapper.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/PageInstanceMapper.java b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/PageInstanceMapper.java
index 9f75813..3789a9f 100644
--- a/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/PageInstanceMapper.java
+++ b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/PageInstanceMapper.java
@@ -185,6 +185,10 @@ public class PageInstanceMapper extends AbstractComponentMapper
 		{
 			matches = true;
 		}
+		else if (urlStartsWith(request.getClientUrl(), pageIdentifier) && urlStartsWith(url, pageIdentifier))
+		{
+			matches = true;
+		}
 
 		return matches;
 	}

http://git-wip-us.apache.org/repos/asf/wicket/blob/b5cb9887/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/PageInstanceMapperTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/PageInstanceMapperTest.java b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/PageInstanceMapperTest.java
index a112640..d1fa307 100644
--- a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/PageInstanceMapperTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/PageInstanceMapperTest.java
@@ -31,6 +31,7 @@ import org.apache.wicket.request.IRequestHandler;
 import org.apache.wicket.request.Request;
 import org.apache.wicket.request.Url;
 import org.apache.wicket.request.component.IRequestableComponent;
+import org.apache.wicket.request.component.IRequestablePage;
 import org.junit.Test;
 
 /**
@@ -211,7 +212,53 @@ public class PageInstanceMapperTest extends AbstractMapperTest
 
 		IRequestHandler handler = encoder.mapRequest(request);
 
-		((IPageRequestHandler)handler).getPage();
+		IRequestablePage page = ((IPageRequestHandler) handler).getPage();
+		checkPage(page, 4);
+	}
+
+
+	@Test
+	public void decode10()
+	{
+		final Url url = Url.parse("page?4");
+
+		Request request = new Request()
+		{
+			@Override
+			public Url getUrl()
+			{
+				return url;
+			}
+
+			@Override
+			public Locale getLocale()
+			{
+				return null;
+			}
+
+			@Override
+			public Charset getCharset()
+			{
+				return Charset.forName("UTF-8");
+			}
+
+			@Override
+			public Url getClientUrl()
+			{
+				return Url.parse("page");
+			}
+
+			@Override
+			public Object getContainerRequest()
+			{
+				return null;
+			}
+		};
+
+		IRequestHandler handler = encoder.mapRequest(request);
+
+		IRequestablePage page = ((IPageRequestHandler) handler).getPage();
+		checkPage(page, 4);
 	}
 
 	/**

http://git-wip-us.apache.org/repos/asf/wicket/blob/b5cb9887/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 a7f1f76..317a5b5 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
@@ -1080,22 +1080,17 @@ public class ModalWindow extends Panel
 			{
 				throw new WicketRuntimeException("Error creating page for modal dialog.");
 			}
-			CharSequence pageUrl = null;
+			CharSequence pageUrl;
 			RequestCycle requestCycle = RequestCycle.get();
 
 			if (page.isPageStateless())
 			{
 				pageUrl = requestCycle.urlFor(page.getClass(), page.getPageParameters());
-				appendAssignment(buffer, "settings.ie8_src", pageUrl);
 			}
 			else
 			{
 				IRequestHandler handler = new RenderPageRequestHandler(new PageProvider(page));
-
 				pageUrl = requestCycle.urlFor(handler);
-				String ie8_pageUrl = requestCycle.getUrlRenderer().renderRelativeUrl(
-					requestCycle.mapUrlFor(handler));
-				appendAssignment(buffer, "settings.ie8_src", ie8_pageUrl);
 			}
 
 			appendAssignment(buffer, "settings.src", pageUrl);

http://git-wip-us.apache.org/repos/asf/wicket/blob/b5cb9887/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/res/modal.js
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/res/modal.js b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/res/modal.js
index b693e63..9e3e85a 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/res/modal.js
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/res/modal.js
@@ -632,11 +632,7 @@
 
 			try
 			{
-				if(Wicket.Browser.isIELessThan9()){
-					this.content.contentWindow.location.replace(this.settings.ie8_src);
-				}else{
-					this.content.contentWindow.location.replace(this.settings.src);
-				}
+				this.content.contentWindow.location.replace(this.settings.src);
 			}
 			catch(ignore)
 			{