Try with bigger scope: window.Flag On Wed, Sep 5, 2012 at 5:25 PM, Marco Di Sabatino Di Diodoro <[email protected]> wrote: > > On Sep 5, 2012, at 3:49 PM, Martin Grigorov wrote: > >> Hi, >> >> You already wrap the call to wicketAjaxXXX() method in if statement. >> Just raise a flag that you entered in this code and set it back to >> false in the success/failure handler. > > Do you mean this? > > private static final String PRE_JS = > "var flag = false;" > + "$(window).ready(function() {\n" > + "$(window).bind('keyup', function(evt) {\n" > + " if (!flag && evt.keyCode == 27){\n" > + " flag = true;"; > ... > ... > > always the same error. > > Regards > Marco > >> >> On Wed, Sep 5, 2012 at 3:40 PM, Marco Di Sabatino Di Diodoro >> <[email protected]> wrote: >>> Hi Martin, >>> >>> On Sep 5, 2012, at 12:20 PM, Martin Grigorov wrote: >>> >>>> Hi Marco, >>>> >>>> I see a quite simple solution with Wicket 6 for this. I think you just >>>> start with your project (or even this is just a prototype?) so you >>>> better use "the latest and greatest" :-) >>> >>> We can not upgrade to Wicket 6 in this moment. >>> >>>> >>>> What I mean is to use the new AjaxChannel.Type.Active. The active type >>>> prevents a second Ajax call in the same channel while there is a still >>>> running Ajax call in this channel. >>>> >>>> The code is as simple as: >>>> >>>> @Override >>>> protected void updateAjaxAttributes(AjaxRequestAttributes attrs) { >>>> super.updateAjaxAttributes(attrs); >>>> >>>> attrs.setAjaxChannel(new AjaxChannel("modalClose", Type.Active)); >>>> } >>>> >>>> For more about the goodies in Wicket 6 read: >>>> http://wicketinaction.com/2012/07/wicket-6-javascript-improvements/ >>>> >>>> In Wicket 1.5 you will have to add some custom JavaScript to prevent >>>> the second request. You can unbind the event, or add a flag for >>>> example. >>> >>> I tried to use unbind() and flag but always return me the same error. How >>> can I prevent the second request? >>> >>> Thanks >>> Marco >>> >>>> >>>> On Wed, Sep 5, 2012 at 12:04 PM, Marco Di Sabatino Di Diodoro >>>> <[email protected]> wrote: >>>>> Hi all, >>>>> >>>>> I configure into Apache Syncope the possibility to close ModalWindow with >>>>> ESC key press event. >>>>> >>>>> public class CloseOnESCBehavior extends AbstractDefaultAjaxBehavior { >>>>> >>>>> private static final long serialVersionUID = 5826308247642534260L; >>>>> private ModalWindow modalWindow; >>>>> >>>>> public CloseOnESCBehavior(ModalWindow modalWindow) { >>>>> this.modalWindow = modalWindow; >>>>> } >>>>> >>>>> private static final String PRE_JS = "$(document).ready(function() {\n" >>>>> + "$(document).bind('keyup', function(evt) {\n" >>>>> + " if (evt.keyCode == 27){\n"; >>>>> >>>>> private static final String POST_JS = "\n evt.preventDefault();\n" >>>>> + "evt.stopImmediatePropagation();\n" >>>>> + " }\n" >>>>> + " });\n" >>>>> + "});"; >>>>> >>>>> @Override >>>>> protected void respond(final AjaxRequestTarget target) { >>>>> modalWindow.close(target); >>>>> } >>>>> >>>>> @Override >>>>> protected String findIndicatorId() { >>>>> return null; >>>>> } >>>>> >>>>> @Override >>>>> public void renderHead(final Component component, final IHeaderResponse >>>>> response) { >>>>> response.renderJavaScript(new >>>>> StringBuilder(PRE_JS).append(getCallbackScript()) >>>>> .append(POST_JS).toString(), >>>>> "closeModalOnEsc"); >>>>> } >>>>> >>>>> In the modal page: >>>>> >>>>> add(new CloseOnESCBehavior(window)); >>>>> >>>>> It work correctly with Chrome and Safari. With Firefox, if I press the >>>>> ESC key twice quickly before the window closes the console return an >>>>> error: >>>>> >>>>> ERROR: Wicket.Ajax.Call.failure: Error while parsing response: Could not >>>>> find root <ajax-response> element >>>>> >>>>> Regards >>>>> Marco >>>>> >>>>> >>>>> -- >>>>> >>>>> Dott. Marco Di Sabatino Di Diodoro >>>>> Tel. +39 3939065570 >>>>> >>>>> Tirasa S.r.l. >>>>> Viale D'Annunzio 267 - 65127 Pescara >>>>> Tel +39 0859116307 / FAX +39 0859111173 >>>>> http://www.tirasa.net >>>>> >>>>> Apache Syncope PPMC Member >>>>> http://people.apache.org/~mdisabatino >>>>> >>>>> >>>>> >>>>> >>>> >>>> >>>> >>>> -- >>>> Martin Grigorov >>>> jWeekend >>>> Training, Consulting, Development >>>> http://jWeekend.com >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: [email protected] >>>> For additional commands, e-mail: [email protected] >>>> >>> >>> -- >>> >>> Dott. Marco Di Sabatino Di Diodoro >>> Tel. +39 3939065570 >>> >>> Tirasa S.r.l. >>> Viale D'Annunzio 267 - 65127 Pescara >>> Tel +39 0859116307 / FAX +39 0859111173 >>> http://www.tirasa.net >>> >>> Apache Syncope PPMC Member >>> http://people.apache.org/~mdisabatino >>> >>> >>> >>> >> >> >> >> -- >> Martin Grigorov >> jWeekend >> Training, Consulting, Development >> http://jWeekend.com >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> > > -- > > Dott. Marco Di Sabatino Di Diodoro > Tel. +39 3939065570 > > Tirasa S.r.l. > Viale D'Annunzio 267 - 65127 Pescara > Tel +39 0859116307 / FAX +39 0859111173 > http://www.tirasa.net > > Apache Syncope PPMC Member > http://people.apache.org/~mdisabatino > > > >
-- Martin Grigorov jWeekend Training, Consulting, Development http://jWeekend.com --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
