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 085973 http://www.tirasa.net Apache Syncope PPMC Member http://people.apache.org/~mdisabatino
Re: Error ESC key press event
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 marco.disabat...@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 085973 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-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: Error ESC key press event
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 marco.disabat...@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 085973 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-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@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 085973 http://www.tirasa.net Apache Syncope PPMC Member http://people.apache.org/~mdisabatino
Re: Error ESC key press event
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 marco.disabat...@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 marco.disabat...@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 085973 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-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@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 085973 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-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: Error ESC key press event
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 marco.disabat...@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 marco.disabat...@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 085973 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-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@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 085973 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-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@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 085973 http://www.tirasa.net Apache Syncope PPMC Member http://people.apache.org/~mdisabatino
Re: Error ESC key press event
Try with bigger scope: window.Flag On Wed, Sep 5, 2012 at 5:25 PM, Marco Di Sabatino Di Diodoro marco.disabat...@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 marco.disabat...@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 marco.disabat...@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 085973 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-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@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 085973 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-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@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 085973 http://www.tirasa.net Apache Syncope PPMC Member http://people.apache.org/~mdisabatino -- Martin Grigorov jWeekend Training, Consulting, Development http://jWeekend.com