You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by hl...@apache.org on 2012/08/15 03:49:04 UTC

[2/2] git commit: Convert Tapestry.waitForPage() into a no-op, and change existing components to not make use of it

Convert Tapestry.waitForPage() into a no-op, and change existing components to not make use of it


Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/6792fcf9
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/6792fcf9
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/6792fcf9

Branch: refs/heads/5.4-js-rewrite
Commit: 6792fcf9b4cf7babb75e1532410e243aaa4b16ec
Parents: 2ae9d0a
Author: Howard M. Lewis Ship <hl...@apache.org>
Authored: Tue Aug 14 18:24:25 2012 -0700
Committer: Howard M. Lewis Ship <hl...@apache.org>
Committed: Tue Aug 14 18:24:25 2012 -0700

----------------------------------------------------------------------
 54_RELEASE_NOTES.txt                               |    7 ++-
 .../java/org/apache/tapestry5/MarkupConstants.java |    5 +-
 .../corelib/base/AbstractComponentEventLink.java   |    6 +-
 .../apache/tapestry5/corelib/components/Form.java  |    5 -
 .../corelib/components/ProgressiveDisplay.tml      |    3 +-
 .../resources/org/apache/tapestry5/default.css     |   24 -----
 .../org/apache/tapestry5/dialog-background.gif     |  Bin 1526 -> 0 bytes
 .../resources/org/apache/tapestry5/tapestry.js     |   59 +------------
 tapestry-core/src/test/app1/SlowAjaxDemo.tml       |   29 ------
 .../tapestry5/integration/app1/AjaxTests.java      |   33 -------
 .../tapestry5/integration/app1/ZoneTests.java      |   22 -----
 .../tapestry5/integration/app1/pages/Index.java    |    5 +-
 .../integration/app1/pages/SlowAjaxDemo.java       |   69 ---------------
 13 files changed, 16 insertions(+), 251 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/6792fcf9/54_RELEASE_NOTES.txt
----------------------------------------------------------------------
diff --git a/54_RELEASE_NOTES.txt b/54_RELEASE_NOTES.txt
index 2b648dd..bbd7ab5 100644
--- a/54_RELEASE_NOTES.txt
+++ b/54_RELEASE_NOTES.txt
@@ -73,4 +73,9 @@ was introduced in Tapestry 5.2, and has now been removed.
 
 Tapestry.FormEventManager has been entirely removed, along with supporting function Element.getFormEventManager().
 
-Tapestry.FieldEventManager.getIcon() now always returns null.
\ No newline at end of file
+Tapestry.FieldEventManager.getIcon() now always returns null.
+
+Tapestry 5.3 contained code that attempted to prevent Ajax requests until after the page had loaded; this was based
+on the function Tapestry.waitForPage().  Server components no longer make use of this function, and the function
+itself now does nothing. A replacement approach to preventing the user from interacting with links and forms before
+the page initialization has completed may be implemented in the future.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/6792fcf9/tapestry-core/src/main/java/org/apache/tapestry5/MarkupConstants.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/MarkupConstants.java b/tapestry-core/src/main/java/org/apache/tapestry5/MarkupConstants.java
index b4f3a0b..b011783 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/MarkupConstants.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/MarkupConstants.java
@@ -1,4 +1,4 @@
-// Copyright 2011 The Apache Software Foundation
+// Copyright 2009, 2011, 2012 The Apache Software Foundation
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -26,6 +26,8 @@ public class MarkupConstants
      * Handler for the onclick event (for links) or other events (such as forms) to ensure the page is loaded before
      * allowing the click event to occur. References a client-side JavaScript function that displays a standard "wait for
      * page to load" modal dialog.
+     *
+     * @deprecated Deprecated in Tapestry 5.4 with no replacement. Do not use.
      */
     public static final String WAIT_FOR_PAGE = "javascript:return Tapestry.waitForPage(event);";
 
@@ -33,6 +35,7 @@ public class MarkupConstants
      * Name of attribute for intercepting the user clicking a link.
      *
      * @see #WAIT_FOR_PAGE
+     * @deprecated Deprecated in Tapestry 5.4 with no replacement. Do not use.
      */
     public static final String ONCLICK = "onclick";
 }

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/6792fcf9/tapestry-core/src/main/java/org/apache/tapestry5/corelib/base/AbstractComponentEventLink.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/corelib/base/AbstractComponentEventLink.java b/tapestry-core/src/main/java/org/apache/tapestry5/corelib/base/AbstractComponentEventLink.java
index 1752cc5..97fcd34 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/corelib/base/AbstractComponentEventLink.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/corelib/base/AbstractComponentEventLink.java
@@ -1,4 +1,4 @@
-// Copyright 2008, 2009 The Apache Software Foundation
+// Copyright 2008, 2009, 2011 The Apache Software Foundation
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -16,7 +16,6 @@ package org.apache.tapestry5.corelib.base;
 
 import org.apache.tapestry5.BindingConstants;
 import org.apache.tapestry5.Link;
-import org.apache.tapestry5.MarkupConstants;
 import org.apache.tapestry5.MarkupWriter;
 import org.apache.tapestry5.annotations.Environmental;
 import org.apache.tapestry5.annotations.Parameter;
@@ -60,9 +59,6 @@ public abstract class AbstractComponentEventLink extends AbstractLink
 
         if (zone != null)
         {
-            if (!request.isXHR())
-                writer.getElement().forceAttributes(MarkupConstants.ONCLICK, MarkupConstants.WAIT_FOR_PAGE);
-
             clientBehaviorSupport.linkZone(getClientId(), zone, link);
         }
     }

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/6792fcf9/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Form.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Form.java b/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Form.java
index d8e0f4d..9ea3b63 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Form.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Form.java
@@ -355,11 +355,6 @@ public class Form implements ClientElement, FormValidationControl
 
         form = writer.element("form", "id", clientId, "method", "post", "action", actionURL);
 
-        if ((zone != null || clientValidation != ClientValidation.NONE) && !request.isXHR())
-        {
-            writer.attributes("onsubmit", MarkupConstants.WAIT_FOR_PAGE);
-        }
-
         if (clientValidation != ClientValidation.NONE)
         {
             writer.attributes("data-t5-validate", "submit");

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/6792fcf9/tapestry-core/src/main/resources/org/apache/tapestry5/corelib/components/ProgressiveDisplay.tml
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/resources/org/apache/tapestry5/corelib/components/ProgressiveDisplay.tml b/tapestry-core/src/main/resources/org/apache/tapestry5/corelib/components/ProgressiveDisplay.tml
index 720290b..8a9ac91 100644
--- a/tapestry-core/src/main/resources/org/apache/tapestry5/corelib/components/ProgressiveDisplay.tml
+++ b/tapestry-core/src/main/resources/org/apache/tapestry5/corelib/components/ProgressiveDisplay.tml
@@ -1,5 +1,4 @@
-<t:container xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd"
-        >
+<t:container xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd">
     <t:block id="defaultInitial">
         <div class="t-loading">${message:core-progressive-display-loading}</div>
     </t:block>

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/6792fcf9/tapestry-core/src/main/resources/org/apache/tapestry5/default.css
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/resources/org/apache/tapestry5/default.css b/tapestry-core/src/main/resources/org/apache/tapestry5/default.css
index cbc4c76..92a3e37 100644
--- a/tapestry-core/src/main/resources/org/apache/tapestry5/default.css
+++ b/tapestry-core/src/main/resources/org/apache/tapestry5/default.css
@@ -453,30 +453,6 @@ DIV.t-loading {
     background: transparent url(ajax-loader.gif) no-repeat right top;
 }
 
-DIV.t-dialog-overlay {
-    position: fixed;
-    margin: auto;
-    top: 0px;
-    left: 0px;
-    z-index: 9990;
-    width: 100%;
-    height: 100%;
-    background: transparent url("dialog-background.gif");
-}
-
-DIV.t-page-loading-banner {
-    position: absolute;
-    top: 5px;
-    left: 5px;
-    width: auto;
-    font-weight: bold;
-    padding: 2px 4px 2px 24px;
-    color: black;
-    background: white url(ajax-loader.gif) no-repeat 4px center;
-    border-right: 2px solid black;
-    border-bottom: 2px solid black;
-}
-
 SPAN.t-render-object-error {
     font-weight: bold;
     font: italic;

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/6792fcf9/tapestry-core/src/main/resources/org/apache/tapestry5/dialog-background.gif
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/resources/org/apache/tapestry5/dialog-background.gif b/tapestry-core/src/main/resources/org/apache/tapestry5/dialog-background.gif
deleted file mode 100644
index ef98d9d..0000000
Binary files a/tapestry-core/src/main/resources/org/apache/tapestry5/dialog-background.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/6792fcf9/tapestry-core/src/main/resources/org/apache/tapestry5/tapestry.js
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/resources/org/apache/tapestry5/tapestry.js b/tapestry-core/src/main/resources/org/apache/tapestry5/tapestry.js
index 92ee51c..743da36 100644
--- a/tapestry-core/src/main/resources/org/apache/tapestry5/tapestry.js
+++ b/tapestry-core/src/main/resources/org/apache/tapestry5/tapestry.js
@@ -117,63 +117,10 @@ define("core/compat/tapestry", [
 
         /**
          * Invoked from onclick event handlers built into links and forms. Raises a
-         * dialog if the page is not yet fully loaded.
+         * dialog if the page is not yet fully loaded. Gutted in 5.4, does nothing ...
+         * the page loads fast enough :-).
          */
-        waitForPage: function (event) {
-            if (Tapestry.pageLoaded)
-                return true;
-
-            Event.extend(event || window.event).stop();
-
-            var body = $(document.body);
-
-            /*
-             * The overlay is stretched to cover the full screen (including
-             * scrolling areas) and is used to fade out the background ... and
-             * prevent keypresses (its z-order helps there).
-             */
-            var overlay = new Element("div", {
-                'class': 't-dialog-overlay'
-            });
-            overlay.setOpacity(0.0);
-
-            body.insert({
-                top: overlay
-            });
-
-            new Effect.Appear(overlay, {
-                duration: 0.2,
-                from: 0.0
-            });
-
-            var messageDiv = new Element("div", {
-                'class': 't-page-loading-banner'
-            }).update(Tapestry.Messages.pageIsLoading);
-            overlay.insert({
-                top: messageDiv
-            });
-
-            var hideDialog = function () {
-                new Effect.Fade(overlay, {
-                    duration: 0.2,
-                    afterFinish: function () {
-                        Tapestry.remove(overlay);
-                    }
-                });
-            };
-
-            document.observe("dom:loaded", hideDialog);
-
-            /* A rare race condition. */
-
-            if (Tapestry.pageLoaded) {
-                hideDialog.call(null);
-
-                return true;
-            } else {
-                return false;
-            }
-
+        waitForPage: function () {
         },
 
         /**

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/6792fcf9/tapestry-core/src/test/app1/SlowAjaxDemo.tml
----------------------------------------------------------------------
diff --git a/tapestry-core/src/test/app1/SlowAjaxDemo.tml b/tapestry-core/src/test/app1/SlowAjaxDemo.tml
deleted file mode 100644
index 1950eaf..0000000
--- a/tapestry-core/src/test/app1/SlowAjaxDemo.tml
+++ /dev/null
@@ -1,29 +0,0 @@
-<t:border title="Slow Ajax Demo" xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd"
-          xmlns:p="tapestry:parameter">
-
-
-    <t:zone t:id="zone">
-        <t:if test="zoneMessage">
-            <p id="zoneOutput">${zoneMessage}</p>
-        </t:if>
-    </t:zone>
-
-    <ul>
-        <li>
-            <t:pagelink page="slowajaxdemo">refresh</t:pagelink>
-        </li>
-        <li>
-            <t:actionlink t:id="link" zone="zone">action</t:actionlink>
-        </li>
-        <li>
-            <t:form zone="zone">
-                <t:linksubmit>link submit</t:linksubmit>
-                <input type="submit" value="Ordinary Submit"/>
-            </t:form>
-        </li>
-    </ul>
-
-
-    <script src="${slowScriptLink}"/>
-
-</t:border>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/6792fcf9/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/AjaxTests.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/AjaxTests.java b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/AjaxTests.java
index 748e586..b871a90 100644
--- a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/AjaxTests.java
+++ b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/AjaxTests.java
@@ -226,39 +226,6 @@ public class AjaxTests extends TapestryCoreTestCase
     }
 
     /**
-     * TAP5-544
-     */
-    @Test
-    public void slow_ajax_load_warning()
-    {
-        openLinks("Slow Ajax Demo");
-
-        // ActionLink
-
-        click("//a[@id='link']");
-
-        waitForElementToAppear("slow");
-
-        click("//a[@id='link']");
-
-        waitForElementToAppear("zoneOutput");
-
-        assertText("zoneOutput", "Updated via an ActionLink");
-
-        clickAndWait("link=refresh");
-
-        click(SUBMIT);
-
-        waitForElementToAppear("slow");
-
-        click(SUBMIT);
-
-        waitForElementToAppear("zoneOutput");
-
-        assertText("zoneOutput", "Updated via form submission.");
-    }
-
-    /**
      * TAP5-236
      */
     @Test

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/6792fcf9/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/ZoneTests.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/ZoneTests.java b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/ZoneTests.java
index 5fc545c..c4b490e 100644
--- a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/ZoneTests.java
+++ b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/ZoneTests.java
@@ -212,28 +212,6 @@ public class ZoneTests extends TapestryCoreTestCase
         assertTextPresent(Form.class.getName() + "[form--form]");
     }
 
-    /**
-     * TAP5-707
-     */
-    @Test
-    public void zone_fade_back_backgroundcolor()
-    {
-        openLinks("Form Zone Demo");
-
-        type("longValue", "12");
-
-        click(SUBMIT);
-
-        click(SUBMIT);
-
-        // wait some time to let the fade go away
-        sleep(4050);
-
-        // will only work in firefox.
-        String color = getEval("selenium.browserbot.getCurrentWindow().getComputedStyle(this.page().findElement(\"xpath=//div[@id='valueZone']\"),'').getPropertyValue('background-color').toLowerCase()");
-
-        assertEquals(color, "rgb(255, 255, 255)");
-    }
 
     /**
      * TAP5-1084

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/6792fcf9/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/Index.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/Index.java b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/Index.java
index 7de773f..3d37f8e 100644
--- a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/Index.java
+++ b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/Index.java
@@ -156,9 +156,6 @@ public class Index
                     new Item("LinkSubmitInZoneDemo", "LinkSubmit inside Zone",
                             "Ensure that a LinkSubmit works correctly when its containing Form updates a Zone"),
 
-                    new Item("SlowAjaxDemo", "Slow Ajax Demo",
-                            "Handling of client-side Ajax before the page is fully loaded"),
-
                     new Item("ProgressiveDemo", "ProgressiveDisplay Demo", "Progressive Enhancement via a component"),
 
                     new Item("ClientNumericValidationDemo", "Client-Side Numeric Validation",
@@ -368,7 +365,7 @@ public class Index
                             "Demo the autocomplete mixin for text fields"),
 
                     new Item("componentparameter", "ComponentParameter Demo",
-                            " Demo using a component type as a parameter type and succesfuly passing a component"),
+                            " Demo using a component type as a parameter type and succesfully passing a component"),
 
                     new Item("inheritinformalsdemo", "Inherit Informal Parameters Demo",
                             "Demo a component which inherits informal parameters from its container"),

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/6792fcf9/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/SlowAjaxDemo.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/SlowAjaxDemo.java b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/SlowAjaxDemo.java
deleted file mode 100644
index 1d55cf7..0000000
--- a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/SlowAjaxDemo.java
+++ /dev/null
@@ -1,69 +0,0 @@
-// Copyright 2009 The Apache Software Foundation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package org.apache.tapestry5.integration.app1.pages;
-
-import org.apache.tapestry5.ComponentResources;
-import org.apache.tapestry5.Link;
-import org.apache.tapestry5.annotations.InjectComponent;
-import org.apache.tapestry5.annotations.Property;
-import org.apache.tapestry5.corelib.components.Zone;
-import org.apache.tapestry5.ioc.annotations.Inject;
-import org.apache.tapestry5.util.TextStreamResponse;
-
-public class SlowAjaxDemo
-{
-    @Property
-    private String zoneMessage;
-
-    @InjectComponent
-    private Zone zone;
-
-    @Inject
-    private ComponentResources resources;
-
-    Object onActionFromLink()
-    {
-        zoneMessage = "Updated via an ActionLink";
-
-        return zone.getBody();
-    }
-
-    Object onSuccessFromForm()
-    {
-        zoneMessage = "Updated via form submission.";
-
-        return zone.getBody();
-    }
-
-    public Link getSlowScriptLink()
-    {
-        return resources.createEventLink("slowScript");
-    }
-
-    Object onSlowScript()
-    {
-        try
-        {
-            Thread.sleep(2 * 1000);
-        }
-        catch (Exception ex)
-        {
-        }
-
-        return new TextStreamResponse("text/javascript",
-                                      "document.write(\"<p id='slow'>Slow script loaded.</p>\");");
-
-    }
-}