You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by jchappelle <jc...@4redi.com> on 2009/03/11 18:30:25 UTC
Re: Switch tab only if user doesn't want to save changes.
Could you post how you are detecting unsaved changes? I am trying to
implement something similar.
Thanks,
Josh
Fabio Fioretti wrote:
>
> Thank you Maurice,
>
> what you suggested matched the way I was trying to solve the problem,
> but I had to add a bit of client-side logic to decide whether to
> display the confirm dialog or not, basing the decision on the
> enabled/disabled status of the save button inside the first tab, which
> already implemented the logic to detect unsaved changes.
>
> I paste the relevant bits to share my solution with you all. Probably
> it's not optimal at all, so please do feel free to
> comment/correct/laugh. :)
>
> @Override
> protected IAjaxCallDecorator getAjaxCallDecorator() {
> // Add custom decorator for tabs other than the one containing
> detailsPanel
> if ( index != 0 ) {
> return new AjaxCallDecorator() {
> @Override
> public CharSequence decorateScript( CharSequence script ) {
> // Ask for user confirmation, as tab-switching discards unsaved
> changes.
> final String saveButton = detailsPanel != null ?
> detailsPanel.getSaveButtonMarkupId() : "";
> final StringBuffer decoration = new StringBuffer();
> return decoration.append(String.format("if(
> document.getElementById('%s')!= null ", saveButton))
> .append(String.format("&&
> !document.getElementById('%s').disabled ", saveButton))
> .append("&& !confirm('Please note that unsaved changes will be
> lost.\\n\\nDo you want to switch tab?')) ")
> .append("{ return false; }")
> .append(script);
> }
> };
> }
> return super.getAjaxCallDecorator();
> }
>
>
> Cheers,
>
> Fabio Fioretti - WindoM
>
>
> On Sun, Jul 13, 2008 at 9:43 PM, Maurice Marrink <ma...@gmail.com>
> wrote:
>> Override newLink to return an ajaxfallbacklink where you have
>> overridden the getAjaxCallDecorator method to return a custom
>> IAjaxCallDecorator.
>> Use that to insert a javascript confirm dialog.
>>
>> Maurice
>>
>> On Fri, Jul 11, 2008 at 7:28 PM, Fabio Fioretti
>> <wi...@gmail.com> wrote:
>>> Hi all,
>>>
>>> thanks in advance for your precious support.
>>>
>>> I have an AjaxTabbedPanel with two tabs. In the first tab there is a
>>> panel with a form, some input fields and a save button; the content of
>>> the second tab is irrelevant.
>>>
>>> Use-case:
>>>
>>> 1 - user selects first tab;
>>> 2 - user makes some changes in the input fields but doesn't click the
>>> save button;
>>> 3 - user selects second tab.
>>>
>>> On step 3, users loses all his updates without being warned.
>>>
>>> I would like to add a javascript confirm dialog to be triggered only
>>> when some changes have been performed but not saved (no ModalWindow,
>>> just javascript). I mean something like: "There are some unsaved
>>> changes that will be lost, do you really want to switch tab?" <OK>
>>> <Cancel>. OK brings the user to the second tab, Cancel makes him stay
>>> in the first tab.
>>>
>>> The panel inside the first tab has a handy boolean hasUnsavedChanges()
>>> method, but I don't know where I could call it and how to inject an
>>> "if (!confirm('...')) return false;".
>>>
>>> Maybe in the onClick(AjaxRequestTarget target) method of the
>>> AjaxFallbackLink returned by AjaxTabbedPanel's newLink() method?
>>>
>>> What's the best way to do it?
>>>
>>>
>>> Thank you very much,
>>>
>>> Fabio Fioretti - WindoM
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>
>
--
View this message in context: http://www.nabble.com/Switch-tab-only-if-user-doesn%27t-want-to-save-changes.-tp18408885p22460250.html
Sent from the Wicket - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org
Re: Switch tab only if user doesn't want to save changes.
Posted by Fabio Fioretti <wi...@gmail.com>.
On Wed, Mar 11, 2009 at 6:30 PM, jchappelle <jc...@4redi.com> wrote:
>
> Could you post how you are detecting unsaved changes? I am trying to
> implement something similar.
Hi Josh,
it depends on the kind of data you are dealing with, but basically it
is just a matter of keeping the initial model object values somewhere
and comparing them with the new ones resulting from form updating by
the user.
Regards,
Fabio Fioretti - WindoM
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org