In our app we display a veil after any button click that goes to the server
to prevent users double-submitting.  Which they do.  Alot.  Double-submits
cause a variety of mischief for us ranging from StaleObjectExceptions in
hibernate to wicket exceptions about buttons not being enabled and others.

So we add the veil, and then (for ajax) close it thusly:

        Wicket.Event.subscribe('/ajax/call/done', 
            function(jqEvent, attributes, jqXHR, errorThrown, textStatus) {
//                      console.log("done");
                        if(attributes) {
                                if(attributes.event) {
                                        
if(isVeiled(attributes.event.currentTarget)) {
                                                closeVeil();
                                        }
                                }
                        }               
                }
        );

The problem is that this /ajax/call/done doesn't seem to fire when the
request is REALLY done, but rather a bit BEFORE it's done.  We're getting
the same behavior, especially when an ajax event transitions from one page
to the next.  The veil unloads, and there's a pause just before the redirect
kicks in during which the user assumes the same page is being seen and their
click was ignored...so they click again.  

Is there a better/later event during which i can unload the veil?  A
/ajax/call/really_done?

--
Sent from: http://apache-wicket.1842946.n4.nabble.com/Users-forum-f1842947.html

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to