Repository: wicket
Updated Branches:
  refs/heads/master 18f692357 -> 7cd5a9573


minor improvements: writing meta-refresh via header contribution, makes it 
easier to use cutsom markup in subclass; redirect to home page if no page was 
intercepted


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

Branch: refs/heads/master
Commit: 7cd5a9573d9cdb696d4c7b527c23b9be03cce576
Parents: 18f6923
Author: Sven Meier <[email protected]>
Authored: Sun Apr 26 11:59:26 2015 +0200
Committer: Sven Meier <[email protected]>
Committed: Sun Apr 26 11:59:26 2015 +0200

----------------------------------------------------------------------
 .../markup/html/pages/BrowserInfoPage.html      |  5 +--
 .../markup/html/pages/BrowserInfoPage.java      | 43 ++++++++++++--------
 2 files changed, 27 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/7cd5a957/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.html
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.html
 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.html
index 81019d4..81b6d96 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.html
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.html
@@ -17,11 +17,8 @@
 -->
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
 <html xmlns:wicket="http://wicket.apache.org";>
-       <head>
-               <meta wicket:id="meta" http-equiv="refresh" />
-       </head>
        <body>
-               If you see this, it means that both javascript and meta-refresh 
are not support by
+               If you see this, it means that both JavaScript and meta-refresh 
are not support by
                your browser configuration. Please click <a wicket:id="link" 
href="#">this link</a> to
                continue to the original destination.
                <div wicket:id="postback"></div>

http://git-wip-us.apache.org/repos/asf/wicket/blob/7cd5a957/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java
index e86c536..5856015 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java
@@ -16,16 +16,18 @@
  */
 package org.apache.wicket.markup.html.pages;
 
-import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.markup.head.IHeaderResponse;
+import org.apache.wicket.markup.head.MetaDataHeaderItem;
 import org.apache.wicket.markup.head.OnLoadHeaderItem;
-import org.apache.wicket.markup.html.WebComponent;
+import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.WebPage;
 import org.apache.wicket.markup.html.link.Link;
 import org.apache.wicket.model.AbstractReadOnlyModel;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.protocol.http.ClientProperties;
 import org.apache.wicket.protocol.http.WebSession;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * This page uses a form post right after the page has loaded in the browser, 
using JavaScript or
@@ -47,6 +49,8 @@ public class BrowserInfoPage extends WebPage
 {
        private static final long serialVersionUID = 1L;
 
+       private static final Logger log = 
LoggerFactory.getLogger(BrowserInfoPage.class);
+
        private BrowserInfoForm browserInfoForm;
 
        /**
@@ -86,21 +90,17 @@ public class BrowserInfoPage extends WebPage
                        }
                };
 
-               final ContinueLink link = new ContinueLink("link", properties);
-               add(link);
-
-               WebComponent meta = new WebComponent("meta");
-               meta.add(AttributeModifier.replace("content", new 
AbstractReadOnlyModel<String>()
-               {
-                       private static final long serialVersionUID = 1L;
+               // hide the formerly used meta-tag from markup
+               // TODO remove in Wicket 8
+               add(new WebMarkupContainer("meta") {
+                       protected void onAfterRender() {
+                               super.onAfterRender();
 
-                       @Override
-                       public String getObject()
-                       {
-                               return "0; url=" + link.getURL();
+                               log.warn("remove the meta tag with 
wicket:id=\"meta\" from the markup of your BrowserInfoPage subclass");
                        }
-               }));
-               add(meta);
+               }.setVisible(false));
+
+               add(new ContinueLink("link", properties));
 
                browserInfoForm = new BrowserInfoForm("postback", properties)
                {
@@ -112,21 +112,27 @@ public class BrowserInfoPage extends WebPage
                                getModelObject().setJavaScriptEnabled(true);
 
                                continueToOriginalDestination();
+
+                               // switch to home page if no original 
destination was intercepted
+                               setResponsePage(getApplication().getHomePage());
                        }
                };
                add(browserInfoForm);
        }
        
        private static class ContinueLink extends Link<ClientProperties> {
+
                public ContinueLink(String id, IModel<ClientProperties> 
properties)
                {
                        super(id, properties);
                }
 
                @Override
-               public CharSequence getURL()
+               public void renderHead(IHeaderResponse response)
                {
-                       return super.getURL();
+                       String content = "0; url=" + getURL();
+
+                       response.render(new 
MetaDataHeaderItem(MetaDataHeaderItem.META_TAG).addTagAttribute("http-equiv", 
"refresh").addTagAttribute("content", content));
                }
                
                @Override
@@ -135,6 +141,9 @@ public class BrowserInfoPage extends WebPage
                        getModelObject().setJavaScriptEnabled(false);
 
                        continueToOriginalDestination();
+
+                       // switch to home page if no original destination was 
intercepted
+                       setResponsePage(getApplication().getHomePage());
                }
        };
 }

Reply via email to