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