You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Marco Di Sabatino Di Diodoro <ma...@tirasa.net> on 2012/09/05 12:04:03 UTC
Error ESC key press event
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
Re: Error ESC key press event
Posted by Martin Grigorov <mg...@apache.org>.
Try with bigger scope: window.Flag
On Wed, Sep 5, 2012 at 5:25 PM, Marco Di Sabatino Di Diodoro
<ma...@tirasa.net> 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
>> <ma...@tirasa.net> 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
>>>> <ma...@tirasa.net> 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: users-unsubscribe@wicket.apache.org
>>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>>
>>>
>>> --
>>>
>>> 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: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>
> --
>
> 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: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org
Re: Error ESC key press event
Posted by Marco Di Sabatino Di Diodoro <ma...@tirasa.net>.
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
> <ma...@tirasa.net> 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
>>> <ma...@tirasa.net> 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: users-unsubscribe@wicket.apache.org
>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>
>>
>> --
>>
>> 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: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
--
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
Re: Error ESC key press event
Posted by Martin Grigorov <mg...@apache.org>.
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.
On Wed, Sep 5, 2012 at 3:40 PM, Marco Di Sabatino Di Diodoro
<ma...@tirasa.net> 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
>> <ma...@tirasa.net> 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: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>
> --
>
> 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: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org
Re: Error ESC key press event
Posted by Marco Di Sabatino Di Diodoro <ma...@tirasa.net>.
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
> <ma...@tirasa.net> 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: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
--
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
Re: Error ESC key press event
Posted by Martin Grigorov <mg...@apache.org>.
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" :-)
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.
On Wed, Sep 5, 2012 at 12:04 PM, Marco Di Sabatino Di Diodoro
<ma...@tirasa.net> 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: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org