[ 
https://issues.apache.org/jira/browse/WICKET-2401?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12903857#action_12903857
 ] 

Hudson commented on WICKET-2401:
--------------------------------

Integrated in Apache Wicket 1.4.x #129 (See 
[https://hudson.apache.org/hudson/job/Apache%20Wicket%201.4.x/129/])
    

> AJAX indicator turns off when calls overlap
> -------------------------------------------
>
>                 Key: WICKET-2401
>                 URL: https://issues.apache.org/jira/browse/WICKET-2401
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.4.0
>            Reporter: John Patterson
>            Assignee: Igor Vaynberg
>             Fix For: 1.4.11, 1.5-M2
>
>
> As discussed here 
> http://www.nabble.com/Ajax-indicator-turning-off-td24655744.html
> Overlapping AJAX calls result in the indicator being turned off when the 
> first call returns.  This patch keeps a count property directly on the 
> HTMLElement so when the element goes out of scope the count does not need to 
> be removed.  Each AJAX call increments the counter and each return decrements 
> the counter.
> Index: src/main/java/org/apache/wicket/ajax/wicket-ajax.js
> ===================================================================
> --- src/main/java/org/apache/wicket/ajax/wicket-ajax.js       (revision 
> 797714)
> +++ src/main/java/org/apache/wicket/ajax/wicket-ajax.js       (working copy)
> @@ -2214,3 +2214,31 @@
>           e.style.display = "none";
>       }
>  }
> +
> +function wicketIncrementDisplay(id) {
> +    var e=wicketGet(id);
> +    if (typeof(e.wicketDisplayCount) =="undefined") {
> +     e.wicketDisplayCount = 1;
> +    } else {
> +     e.wicketDisplayCount++;
> +    }
> +    
> +     if (e.wicketDisplayCount > 0) {
> +         e.style.display = "";
> +     }
> +}
> +
> +function wicketDecrementDisplay(id) {
> +    var e=wicketGet(id);
> +    if (typeof(e.wicketDisplayCount) =="undefined") {
> +     e.wicketDisplayCount = 0;
> +    } else {
> +     e.wicketDisplayCount--;
> +    }
> +    
> +     if (e.wicketDisplayCount <= 0) {
> +         e.style.display = "none";
> +     }
> +}
> +
> +
> Index: src/main/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehavior.java
> ===================================================================
> --- src/main/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehavior.java     
> (revision 797714)
> +++ src/main/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehavior.java     
> (working copy)
> @@ -183,7 +183,7 @@
>  
>               if (!Strings.isEmpty(indicatorId))
>               {
> -                     String hide = ";wicketHide('" + indicatorId + "');";
> +                     String hide = ";wicketDecrementDisplay('" + indicatorId 
> + "');";
>                       success = success + hide;
>                       failure = failure + hide;
>               }
> @@ -240,7 +240,7 @@
>  
>               if (!Strings.isEmpty(indicatorId))
>               {
> -                     call = new 
> AppendingStringBuffer("wicketShow('").append(indicatorId)
> +                     call = new 
> AppendingStringBuffer("wicketIncrementDisplay('").append(indicatorId)
>                               .append("');")
>                               .append(call);
>               }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to