[Seaside] How to Save a sorted list in Scriptaculous

Rajeev Lochan lochan94 at gmail.com
Fri Aug 31 21:47:12 UTC 2007


Hi Lukas,

The code mentioned in the earlier mail works fine with FireFox 2.0, When you
sort the "ordered List" , the numbers to the left are also updated
accordingly. Today I tried to do the same thing in IE 6.0.2900, the sorting
of items is done, but the number associated with respective listItem remains
with it even after sorting it., Only after a browser refresh, the numbers
are updated. Is this a bug or I have some problem in my code.

How exactly do I use userAgent ?? Do distinguish between different browser
and render the code accordingly (If at all it is done this way)

Thanks in advance,

Rajeev

On 8/29/07, Rajeev Lochan <lochan94 at gmail.com> wrote:
>
> Thanks for updating, I tried the following stuff and it worked. :)
>
> html unorderedList id: 'sortItems';
>                 script: (html sortable
>
>                     onUpdate: (html request
>                     triggerSortable: 'sortItems'
>                     callback: [:col | self model items: col]));
>                 with: [
>                     self model items
>                         do: [ :each |
>                 html listItem
>                     passenger: each;
>                     with: each title]].
>
> html submitButton callback: [self answer: self model}
>
>
> As a matter of fact, I also tried the following things (Just in case
> anyone like me wants more out of sorting list), you can also edit using
> textInput ...
>
>
> html orderedList id: 'sortItems';
>                 script: (html sortable
>
>                     onUpdate: (html request
>                     triggerSortable: 'sortItems'
>                     callback: [:col | self model items: col]));
>                 with: [
>                     self model items
>                         do: [ :each |
>                 html listItem
>                     passenger: each;
>                     with: [self renderItemEditOn: each on: html]]].
> html submitButton....
>
>
> ListView >> renderItenEditOn: each on: html
>
> renderItemFalse: anItem on: html
>         html textInput value: anItem title;
>                           callback: [:value | anItem title: value]
>
> Thanks a lot Lukas for the wonderful work of porting scriptaculous to
> Seaside and helping the whole seaside community.
>
> Regards,
>
> Rajeev
>
>
>
> On 8/29/07, Lukas Renggli <renggli at gmail.com> wrote:
> >
> > I just added to the Scriptaculous package a new example SUSortableTest
> > (the old one is renamed to SUSortableDoubleTest).
> >
> > Name: Scriptaculous-lr.216
> > Author: lr
> > Time: 28 August 2007, 11:55:19 pm
> > UUID: 74f452a8-083b-4155-bf82-aa83ff8ace0d
> > Ancestors: Scriptaculous-lr.215
> >
> > - added a trivial example of sortable lists
> >
> > The code is as simple as:
> >
> > initialize
> >         super initialize.
> >         collection := #( 'San Salvatore' 'Monte Bre' 'Calvagione' )
> >
> > renderContentOn: html
> >         | id |
> >         html unorderedList
> >                 id: (id := html nextId);
> >                 script: (html sortable
> >                         onUpdate: (html request
> >                                 triggerSortable: id
> >                                 callback: [ :value | collection := value
> > ]));
> >                 with: [ self renderListItemsOn: html ]
> >
> > renderListItemsOn: html
> >         collection do: [ :each |
> >                 html listItem
> >                         passenger: each;
> >                         with: each ]
> >
> > On 8/28/07, Rajeev Lochan <lochan94 at gmail.com> wrote:
> > > Hi,
> > >
> > > I had tried to imitate what you(Lukas) had posted on
> > >
> > > http://www.lukas-renggli.ch/smalltalk/seaside/web20.txt
> > >
> > > I also changed the renderItemOn: code after crosschecking from your
> > site to
> > >
> > > html div
> > >                         passenger: anItem;
> > >                         with: [
> > >                              html render: anItem title]
> > >
> > >
> > > Still I am not able to figure out the solution.
> > >
> > > Regards,
> > >
> > > Rajeev
> > >
> > >
> > > On 8/29/07, Rajeev Lochan <lochan94 at gmail.com> wrote:
> > > > Hi Lukas,
> > > >
> > > > As suggested by you, I made the following changes.
> > > >
> > > > ListView>> renderContentOn:html
> > > > html form: [
> > > > html render: self model title.
> > > > html div class: 'items';
> > > >                 script: (html sortable tag: 'div';
> > > >
> > > >                     onUpdate: (html request
> > > >                     triggerSortable: 'items'
> > > >                     callback: [:col | self model items: col]));
> > > >                 with: [
> > > >                     self model items do: [:eachItem| self
> > > renderItemOn:eachItem].
> > > > html submitButton callback: [self answer: self model]; text:'Update'
> > > >
> > > >
> > > > ListView>> renderItemOn: html
> > > >
> > > > html div id: 'myListEditItems';
> > > >                         passenger: anItem;
> > > >                         with: [
> > > >                             html render: anItem title]
> > > >
> > > > When I try to update it, its not being done. The self halt
> > introduced
> > > earlier in
> > > >
> > > > onUpdate: (html request
> > > >                     triggerSortable: 'items'
> > > >                     callback: [:col |self halt. self model items:
> > col]));
> > > >
> > > > is also not stopped for debugging.
> > > >
> > > > I Followed through the SUSortableTest to catch up a few hints. But
> > that
> > > seemed to be very complex compared to the situation we have here.
> > > >
> > > > I also tried html div class: 'myListEditItems'; But no progress
> > either.
> > > >
> > > > Where i am i falling down ??
> > > >
> > > > Rajeev
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > On 8/29/07, Rajeev Lochan < lochan94 at gmail.com> wrote:
> > > > > Thanks Lukas,
> > > > > I shall incorporate changes and come back
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > On 8/29/07, Lukas Renggli < renggli at gmail.com > wrote:
> > > > > > There are many different problems with your approach:
> > > > > >
> > > > > > > ListView>> renderContentOn: html
> > > > > > > html form: [
> > > > > > > html render: self model title.
> > > > > > > html div class: 'items';
> > > > > > >                  script: (html sortable tag: 'div';
> > > > > > >                     onUpdate: (html request
> > > > > > >                     triggerSortable: 'items'
> > > > > > >                     callback: [:col | self model items:
> > col]));
> > > > > >
> > > > > > If you say the sortable should use 'div' tags, then all elements
> > > > > > inside your container should be of that kind. Check out the
> > method
> > > > > > comment of #tag:
> > > > > >
> > > > > > >                 with: [
> > > > > > >                     self model items do: [:eachItem| self
> > > > > > > renderItemOn:eachItem].
> > > > > > >                      html submitButton callback: [self answer:
> > self
> > > model]]]
> > > > > >
> > > > > > Uhh, the button should be outside the container.
> > > > > >
> > > > > > > ListView>> renderItemOn: anItem
> > > > > > > html
> > > > > > >         table: [html
> > > > > > >                 tableRow: [html tableData id: 'checkBoxItem';
> > > > > > >
> > > > > > >                         with: [html checkbox value: anItem
> > done;
> > > > > > >
> > > > > > >                                 callback: [:value |
> > > anItem done: value]].
> > > > > > >                     html tableData id: 'myListEditItems';
> > > > > > >                         passenger: anItem;
> > > > > > >                         with: [
> > > > > > >                             html render: anItem title]]]
> > > > > >
> > > > > > The sortable elements should be DIV-tags, if you declare them to
> > be
> > > > > > DIVs. Tables in general don't work together with drag&drop, so
> > avoid
> > > > > > them altogether (see documentation of script.aculo.us).
> > > > > >
> > > > > > Furthermore you need to assign the #passenger: to the direct
> > child of
> > > > > > the container (the DIV). Again see the documentation of
> > > > > > script.aculo.us.
> > > > > >
> > > > > > > The page is rendered and the items can be sorted. The sorting
> > is
> > > only done
> > > > > > > on the client end. If I submit the button, the new order of
> > the
> > > items isn't
> > > > > > > updated. Am I missing anything ?
> > > > > >
> > > > > > That's because you tell Scriptaculous to only consider div-tags,
> > but
> > > > > > you add table-tags as children.
> > > > > >
> > > > > > Have a look at SUSortableTest for a working example.
> > > > > >
> > > > > > HTH,
> > > > > > Lukas
> > > > > >
> > > > > > --
> > > > > > Lukas Renggli
> > > > > > http://www.lukas-renggli.ch
> > > > > > _______________________________________________
> > > > > > Seaside mailing list
> > > > > > Seaside at lists.squeakfoundation.org
> > > > > >
> > > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
> > >
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Rajeev Lochan
> > > > >
> > > > > Co-founder, AR-CAD.com
> > > > >
> > > > > http://www.ar-cad.com
> > > > > +91 9243468076 (Bangalore)
> > > > > 080 65355873
> > > >
> > > >
> > > >
> > > > --
> > > > Rajeev Lochan
> > > >
> > > > Co-founder, AR-CAD.com
> > > >
> > > > http://www.ar-cad.com
> > > > +91 9243468076 (Bangalore)
> > > > 080 65355873
> > >
> > >
> > >
> > > --
> > > Rajeev Lochan
> > >
> > > Co-founder, AR-CAD.com
> > >
> > > http://www.ar-cad.com
> > > +91 9243468076 (Bangalore)
> > > 080 65355873
> > > _______________________________________________
> > > Seaside mailing list
> > > Seaside at lists.squeakfoundation.org
> > > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
> > >
> > >
> >
> >
> > --
> > Lukas Renggli
> > http://www.lukas-renggli.ch
> > _______________________________________________
> > Seaside mailing list
> > Seaside at lists.squeakfoundation.org
> > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
> >
>
>
>
> --
> Rajeev Lochan
>
> Co-founder, AR-CAD.com
>
> http://www.ar-cad.com
> +91 9243468076 (Bangalore)
> 080 65355873
>



-- 
Rajeev Lochan

Co-founder, AR-CAD.com

http://www.ar-cad.com
+91 9243468076 (Bangalore)
080 65355873
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/seaside/attachments/20070901/cdf7ae3d/attachment-0001.htm


More information about the seaside mailing list