[Seaside] checkbox callbacks

Alexander Lazarević laza at blobworks.com
Tue Oct 18 12:13:53 UTC 2011


Thanks, I've decided to go along with [1].

Alex

[1] http://www.tonyfleig.com/smallthoughts/blog/avoidingsessiontimeouts
2011/10/18 Lukas Renggli <renggli at gmail.com>

> Yes, see what JQAllFunctionalTests>>#renderTimeoutOn: is doing.
>
> Or search this mailing list, many solutions have been posted and discussed.
>
> Lukas
>
> On 18 October 2011 12:59, Alexander Lazarević <laza at blobworks.com> wrote:
> > 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
> >> >
> >
> >
> > _______________________________________________
> > 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/seaside/attachments/20111018/b51bd10c/attachment-0001.htm


More information about the seaside mailing list