[Seaside] checkbox callbacks

Alexander Lazarević laza at blobworks.com
Tue Oct 18 10:59:40 UTC 2011


Now I need to find a solution for session timeouts. If a session times out
and the user clicks on a checkbox nothing happens (obviously).
How can I redirect that request to act as an initial request for the root
component (so to say)?

Thanks,
 Alex

2011/9/26 Alexander Lazarević <laza at blobworks.com>

> Sweet! That works like a charm. Thanks
>
> Alex
>
> 2011/9/26 Lukas Renggli <renggli at gmail.com>:
> > On 26 September 2011 13:39, Lukas Renggli <renggli at gmail.com> wrote:
> >> It is probably the easiest if you just re-render that part of the
> >> page. I suggest a refactorings along the following lines:
> >>
> >>> renderContentOn: html
> >>
> >> | id |
> >> id := html nextId.
> >> html div id: id; with: [
> >>
> >>>        html form: [
> >>>                html checkbox
> >>>                        onChange: (html jQuery ajax
> serializeThisWithHidden);
> >>
> >> You do replace the above line with:
> >>
> >>    onChange: ((html jQuery id: id) load serializeThisWithHidden;
> >> html: [ :r | self renderContentOn: r ])
> >
> > Sorry, this is a bit buggy. You don't want to re-render the div here,
> > just what is inside. So better extract the inner part to a separate
> > method.
> >
> >>
> >>>                        value: self isChecked;
> >>>                        callback: [:value | self check: value. self
> check2: value].
> >>>                html text: 'Check me'.
> >>>                html checkbox
> >>>                        onChange: (html jQuery ajax
> serializeThisWithHidden);
> >>
> >> And do the same here. Maybe extract it to a separate method so that
> >> you can reuse it.
> >>
> >>>                        value: self isChecked2;
> >>>                        callback: [:value | self check2: value. self
> check: value not].
> >>>                html text: 'Check me 2'.
> >>>        ]
> >>>
> >>> So what's the best strategy to update the checkboxes reflecting the
> >>> internal state?
> >>
> >> ] "close the div here"
> >>
> >> Cheers,
> >> Lukas
> >>
> >>>
> >>> Alex
> >>>
> >>> 2011/9/26 Alexander Lazarević <laza at blobworks.com>:
> >>>> Robert and Lukas,
> >>>>
> >>>> I guess I still have some misconceptions when it comes to JS
> >>>> callbacks, but thanks for helping me along. I had the idea that the
> >>>> entire form gets serialized, but only the callbacks of changed
> >>>> elements would trigger a onChange: event and then trigger the
> >>>> callback.
> >>>>
> >>>> Alex
> >>>>
> >>>> 2011/9/24 Lukas Renggli <renggli at gmail.com>:
> >>>>> Yes, you serialize the form which means it involves both checkboxes.
> On your
> >>>>> scenario both callbacks should be triggered: the checked one with
> true, the
> >>>>> unchecked with false.
> >>>>>
> >>>>> Btw, you do not need the IDs. For the AJAX just use (html jQuery ajax
> >>>>> serializeForm). You don't want to load anything into the checkbox.
> >>>>>
> >>>>> Lukas
> >>>>>
> >>>>> On Saturday, 24 September 2011, Alexander Lazarević <
> laza at blobworks.com>
> >>>>> wrote:
> >>>>>> Hi!
> >>>>>>
> >>>>>> I'm using something like the following in my code:
> >>>>>>
> >>>>>> renderContentOn: html
> >>>>>>        | id |
> >>>>>>        html form: [
> >>>>>>                id := html nextId.
> >>>>>>                html checkbox
> >>>>>>                        id: id;
> >>>>>>                        onChange: (html jQuery id: id) load
> serializeForm;
> >>>>>>                        value: self isChecked;
> >>>>>>                        callback: [:value | value inspect].
> >>>>>>                html text: 'Check me'.
> >>>>>>                id := html nextId.
> >>>>>>                html checkbox
> >>>>>>                        id: id;
> >>>>>>                        onChange: (html jQuery id: id) load
> serializeForm;
> >>>>>>                        value: self isChecked2;
> >>>>>>                        callback: [:value | value inspect].
> >>>>>>                html text: 'Check me 2'.
> >>>>>>        ]
> >>>>>>
> >>>>>> I'm surprised to see that both callbacks get triggered even if I
> only
> >>>>>> check one checkbox. Is this on purpose and expected? According to
> >>>>>> Metacello I'm using Seaside 3.0.6
> >>>>>>
> >>>>>> Alex
> >>>>>> _______________________________________________
> >>>>>> seaside mailing list
> >>>>>> seaside at lists.squeakfoundation.org
> >>>>>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
> >>>>>>
> >>>>>
> >>>>> --
> >>>>> Lukas Renggli
> >>>>> www.lukas-renggli.ch
> >>>>>
> >>>>> _______________________________________________
> >>>>> seaside mailing list
> >>>>> seaside at lists.squeakfoundation.org
> >>>>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
> >>>>>
> >>>>>
> >>>>
> >>> _______________________________________________
> >>> seaside mailing list
> >>> seaside at lists.squeakfoundation.org
> >>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
> >>>
> >>
> >>
> >>
> >> --
> >> Lukas Renggli
> >> www.lukas-renggli.ch
> >>
> >
> >
> >
> > --
> > Lukas Renggli
> > www.lukas-renggli.ch
> > _______________________________________________
> > seaside mailing list
> > seaside at lists.squeakfoundation.org
> > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/seaside/attachments/20111018/ead5d8e5/attachment-0001.htm


More information about the seaside mailing list