You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltaspike.apache.org by ta...@apache.org on 2015/07/15 23:37:12 UTC

deltaspike git commit: DELTASPIKE-928 Allow to disable storeWindowTree() on ClientWindow mode

Repository: deltaspike
Updated Branches:
  refs/heads/master 7823bf88a -> 035a77076


DELTASPIKE-928 Allow to disable storeWindowTree() on ClientWindow mode

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

Branch: refs/heads/master
Commit: 035a770767afa9908e18cd4a992d5639c13efc91
Parents: 7823bf8
Author: Thomas Andraschko <ta...@apache.org>
Authored: Wed Jul 15 23:37:03 2015 +0200
Committer: Thomas Andraschko <ta...@apache.org>
Committed: Wed Jul 15 23:37:03 2015 +0200

----------------------------------------------------------------------
 .../deltaspike/jsf/spi/scope/window/ClientWindowConfig.java  | 7 +++++++
 .../jsf/spi/scope/window/DefaultClientWindowConfig.java      | 6 ++++++
 .../jsf/impl/component/window/WindowIdHtmlRenderer.java      | 8 +++++---
 .../resources/META-INF/resources/deltaspike/windowhandler.js | 2 +-
 4 files changed, 19 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltaspike/blob/035a7707/deltaspike/modules/jsf/api/src/main/java/org/apache/deltaspike/jsf/spi/scope/window/ClientWindowConfig.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jsf/api/src/main/java/org/apache/deltaspike/jsf/spi/scope/window/ClientWindowConfig.java b/deltaspike/modules/jsf/api/src/main/java/org/apache/deltaspike/jsf/spi/scope/window/ClientWindowConfig.java
index b626eaf..74c960f 100644
--- a/deltaspike/modules/jsf/api/src/main/java/org/apache/deltaspike/jsf/spi/scope/window/ClientWindowConfig.java
+++ b/deltaspike/modules/jsf/api/src/main/java/org/apache/deltaspike/jsf/spi/scope/window/ClientWindowConfig.java
@@ -86,6 +86,13 @@ public interface ClientWindowConfig extends Serializable
      * @return the prepared html which gets sent out to the client as intermediate client window.
      */
     String getClientWindowHtml();
+    
+    /**
+     * @return whether localStorage is used in the browser to store the HTML content between client redirects.
+     *          Currently it's only used by {@link ClientWindowRenderMode#CLIENTWINDOW}.
+     * @see windowhandler.html
+     */
+    boolean isClientWindowStoreWindowTreeEnabled(); 
 
     /**
      * Restricts the number of active windows.

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/035a7707/deltaspike/modules/jsf/api/src/main/java/org/apache/deltaspike/jsf/spi/scope/window/DefaultClientWindowConfig.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jsf/api/src/main/java/org/apache/deltaspike/jsf/spi/scope/window/DefaultClientWindowConfig.java b/deltaspike/modules/jsf/api/src/main/java/org/apache/deltaspike/jsf/spi/scope/window/DefaultClientWindowConfig.java
index 3b95fff..63624ad 100644
--- a/deltaspike/modules/jsf/api/src/main/java/org/apache/deltaspike/jsf/spi/scope/window/DefaultClientWindowConfig.java
+++ b/deltaspike/modules/jsf/api/src/main/java/org/apache/deltaspike/jsf/spi/scope/window/DefaultClientWindowConfig.java
@@ -243,4 +243,10 @@ public class DefaultClientWindowConfig implements ClientWindowConfig
     {
         return this.maxWindowContextCount;
     }
+    
+    @Override
+    public boolean isClientWindowStoreWindowTreeEnabled()
+    {
+        return true;
+    }
 }

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/035a7707/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/component/window/WindowIdHtmlRenderer.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/component/window/WindowIdHtmlRenderer.java b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/component/window/WindowIdHtmlRenderer.java
index a952606..7db4de4 100644
--- a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/component/window/WindowIdHtmlRenderer.java
+++ b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/component/window/WindowIdHtmlRenderer.java
@@ -74,8 +74,10 @@ public class WindowIdHtmlRenderer extends Renderer
         writer.startElement("script", component);
         writer.writeAttribute("type", "text/javascript", null);
         writer.write("(function(){");
-        writer.write("dswh.init('" + windowId + "','" + clientWindowRenderMode + "'");
+        writer.write("dswh.init('" + windowId + "','" + clientWindowRenderMode + "',{");
 
+        writer.write("'storeWindowTree':'" + clientWindowConfig.isClientWindowStoreWindowTreeEnabled() + "'");
+        
         // see #729
         if (clientWindow.isInitialRedirectSupported(context))
         {
@@ -83,7 +85,7 @@ public class WindowIdHtmlRenderer extends Renderer
             if (cookie != null && cookie instanceof Cookie)
             {
                 Cookie servletCookie = (Cookie) cookie;
-                writer.write(",{'initialRedirectWindowId':'" + servletCookie.getValue() + "'}");
+                writer.write(",'initialRedirectWindowId':'" + servletCookie.getValue() + "'");
 
                 // expire/remove cookie
                 servletCookie.setMaxAge(0);
@@ -91,7 +93,7 @@ public class WindowIdHtmlRenderer extends Renderer
             }
         }
 
-        writer.write(");");
+        writer.write("});");
         writer.write("})();");
         writer.endElement("script");
     }

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/035a7707/deltaspike/modules/jsf/impl/src/main/resources/META-INF/resources/deltaspike/windowhandler.js
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jsf/impl/src/main/resources/META-INF/resources/deltaspike/windowhandler.js b/deltaspike/modules/jsf/impl/src/main/resources/META-INF/resources/deltaspike/windowhandler.js
index bc7b9d6..dc9bac1 100644
--- a/deltaspike/modules/jsf/impl/src/main/resources/META-INF/resources/deltaspike/windowhandler.js
+++ b/deltaspike/modules/jsf/impl/src/main/resources/META-INF/resources/deltaspike/windowhandler.js
@@ -91,7 +91,7 @@ window.dswh = window.dswh || {
             },
             
             overwriteOnClickEvents : function() {
-                if (dswh.utils.isHtml5()) {
+                if (dswh.utils.isHtml5() && dswh.cfg.storeWindowTree) {
                     var links = document.getElementsByTagName("a");
                     for (var i = 0; i < links.length; i++) {
                         if (!links[i].onclick) {