Updated Branches: refs/heads/wicket-6.x 2468536a3 -> 432310bda
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/432310bd Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/432310bd Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/432310bd Branch: refs/heads/wicket-6.x Commit: 432310bdae50498419ff84031430d02ba36d346d Parents: 2468536 Author: Martin Tzvetanov Grigorov <mgrigo...@apache.org> Authored: Fri Jun 14 16:33:17 2013 +0300 Committer: Martin Tzvetanov Grigorov <mgrigo...@apache.org> Committed: Fri Jun 14 16:35:09 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/432310bd/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/432310bd/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/432310bd/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/432310bd/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) {