I have a script that pulls in a bunch of data to my page and parses it out into the following format: <div id="container"> <div id="myID1" class="new">stuff</div> <div id="myID2" class="new">stuff</div> <div id="myID3" class="read">stuff</div> <div id="myID4" class="read">stuff</div> . . . </div the divs of class new and read are all mixed up when the come into the page. How can I use scriptaculous/protype to automatically sort the div within the container so that divs of class new come first and divs of class ''read'' fill in underneath? Scriptaculous wiki is down at the moment so I couldn''t check that.. THANKS! --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---
Just let Element#insert do the dirty work for you: $$(''#container .read'').each(function(element) { $(''container'').insert(element); }) --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---
On Jan 24, 2008 4:10 PM, polomasta <bjoyce-PGNGAmqIy5icqzYg7KEe8g@public.gmane.org> wrote:> > I have a script that pulls in a bunch of data to my page and parses itIs this data being pulled in through an Ajax request? Why can''t the data be sorted on the server? -justin --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---
I guess they can the first time. However, a button in the div can be clicked to change its status (class) from "new" to "read" or vice versa... when this happens I want to resort the divs without having to reload everything from the server again. Does that make sense? On Jan 24, 7:07 pm, "Justin Perkins" <justinperk...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> On Jan 24, 2008 4:10 PM, polomasta <bjo...-PGNGAmqIy5icqzYg7KEe8g@public.gmane.org> wrote: > > > > > I have a script that pulls in a bunch of data to my page and parses it > > Is this data being pulled in through an Ajax request? Why can''t the > data be sorted on the server? > > -justin--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---
On 31 jan, 21:47, polomasta <bjo...-PGNGAmqIy5icqzYg7KEe8g@public.gmane.org> wrote:> I guess they can the first time. However, a button in the div can be > clicked to change its status (class) from "new" to "read" or vice > versa... when this happens I want to resort the divs without having to > reload everything from the server again. > > Does that make sense? > > On Jan 24, 7:07 pm, "Justin Perkins" <justinperk...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > > On Jan 24, 2008 4:10 PM, polomasta <bjo...-PGNGAmqIy5icqzYg7KEe8g@public.gmane.org> wrote: > > > > I have a script that pulls in a bunch of data to my page and parses it > > > Is this data being pulled in through an Ajax request? Why can''t the > > data be sorted on the server? > > > -justinI would suggest making 2 arrays with the ''new'' divs and the ''read'' divs and merging the afterwards. sortMessages($(''container'')); function sortMessages(container) { var read = container.select(''div.read''); var new = container.select(''div.new''); var result = $A([]); return result.concat(new, read); } Haven''t tested it though... but this is the general idea Greetz, Wizz --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---
so this is what i''ve done.. function sortLeads(leads) { var read = $(''leads'').select(''[class="read"]''); var newLead = $(''leads'').select(''[class="new"]''); var result = $A([]); result = result.concat(newLead, read); return result; } it seems that result is getting populated correctly, but it never actually changes anything on the page. I tried doing: leads.innerHTML = result; and it just inserted a bunch of [htmlObject] text into the page. Any further ideas? THANKS!! On Feb 1, 8:04 am, Wizz <woutaw...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> On 31 jan, 21:47, polomasta <bjo...-PGNGAmqIy5icqzYg7KEe8g@public.gmane.org> wrote: > > > I guess they can the first time. However, a button in the div can be > > clicked to change its status (class) from "new" to "read" or vice > > versa... when this happens I want to resort the divs without having to > > reload everything from the server again. > > > Does that make sense? > > > On Jan 24, 7:07 pm, "Justin Perkins" <justinperk...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > > > On Jan 24, 2008 4:10 PM, polomasta <bjo...-PGNGAmqIy5icqzYg7KEe8g@public.gmane.org> wrote: > > > > > I have a script that pulls in a bunch of data to my page and parses it > > > > Is this data being pulled in through an Ajax request? Why can''t the > > > data be sorted on the server? > > > > -justin > > I would suggest making 2 arrays with the ''new'' divs and the ''read'' > divs and merging the afterwards. > > sortMessages($(''container'')); > > function sortMessages(container) { > var read = container.select(''div.read''); > var new = container.select(''div.new''); > var result = $A([]); > return result.concat(new, read); > > } > > Haven''t tested it though... but this is the general idea > > Greetz, > > Wizz--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---
if it were me, I would send a new request to the server. two benefits - make the server do the work - not the browser, get the most up to date information. On Feb 7, 2008 11:32 AM, polomasta <bjoyce-PGNGAmqIy5icqzYg7KEe8g@public.gmane.org> wrote:> > so this is what i''ve done.. > > function sortLeads(leads) > { > var read = $(''leads'').select(''[class="read"]''); > var newLead = $(''leads'').select(''[class="new"]''); > var result = $A([]); > result = result.concat(newLead, read); > return result; > } > > it seems that result is getting populated correctly, but it never > actually changes anything on the page. I tried doing: leads.innerHTML > = result; and it just inserted a bunch of [htmlObject] text into the > page. > > Any further ideas? THANKS!! > > > > > On Feb 1, 8:04 am, Wizz <woutaw...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > On 31 jan, 21:47, polomasta <bjo...-PGNGAmqIy5icqzYg7KEe8g@public.gmane.org> wrote: > > > > > I guess they can the first time. However, a button in the div can be > > > clicked to change its status (class) from "new" to "read" or vice > > > versa... when this happens I want to resort the divs without having to > > > reload everything from the server again. > > > > > Does that make sense? > > > > > On Jan 24, 7:07 pm, "Justin Perkins" <justinperk...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > > > > > On Jan 24, 2008 4:10 PM, polomasta <bjo...-PGNGAmqIy5icqzYg7KEe8g@public.gmane.org> wrote: > > > > > > > I have a script that pulls in a bunch of data to my page and > parses it > > > > > > Is this data being pulled in through an Ajax request? Why can''t the > > > > data be sorted on the server? > > > > > > -justin > > > > I would suggest making 2 arrays with the ''new'' divs and the ''read'' > > divs and merging the afterwards. > > > > sortMessages($(''container'')); > > > > function sortMessages(container) { > > var read = container.select(''div.read''); > > var new = container.select(''div.new''); > > var result = $A([]); > > return result.concat(new, read); > > > > } > > > > Haven''t tested it though... but this is the general idea > > > > Greetz, > > > > Wizz > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---
If you can do it in the server, do it there :) If not (maybe the data is created in js and it''s still not available in the server, for example), a possibility is to use Enumerable#partition: $$(".new, .read").partition(function(d) { return d.className.match(/new/) }).flatten(); http://prototypejs.org/api/enumerable/partition Best, -Nicolas (ps: wow, first time I find an actual use for Enumerable#partition) On Feb 1, 2008 12:04 PM, Wizz <woutawizz-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> > On 31 jan, 21:47, polomasta <bjo...-PGNGAmqIy5icqzYg7KEe8g@public.gmane.org> wrote: > > I guess they can the first time. However, a button in the div can be > > clicked to change its status (class) from "new" to "read" or vice > > versa... when this happens I want to resort the divs without having to > > reload everything from the server again. > > > > Does that make sense? > > > > On Jan 24, 7:07 pm, "Justin Perkins" <justinperk...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > > > > On Jan 24, 2008 4:10 PM, polomasta <bjo...-PGNGAmqIy5icqzYg7KEe8g@public.gmane.org> wrote: > > > > > > I have a script that pulls in a bunch of data to my page and parses it > > > > > Is this data being pulled in through an Ajax request? Why can''t the > > > data be sorted on the server? > > > > > -justin > I would suggest making 2 arrays with the ''new'' divs and the ''read'' > divs and merging the afterwards. > > sortMessages($(''container'')); > > function sortMessages(container) { > var read = container.select(''div.read''); > var new = container.select(''div.new''); > var result = $A([]); > return result.concat(new, read); > } > > Haven''t tested it though... but this is the general idea > > Greetz, > > Wizz > > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---
Forgot Element#hasClassName elements = elements.partition(function(d) { return d.hasClassName("new") }).flatten(); (the ''partition'' solution works only for two classes, more than that and you need something else) polomasta wrote:> it seems that result is getting populated correctly, but it never > actually changes anything on the page. I tried doing: leads.innerHTML > = result; and it just inserted a bunch of [htmlObject] text into the > page.Both the method I suggest and the code you pasted will sort *the array* of elements, not the elements in the DOM. If you want that to reflect that on the DOM, Element#insert is your friend. elements.each(Element.insert.curry("container")) // this will insert them in the order they are in the array Best, -Nicolas On Feb 7, 2008 2:43 PM, Nicolás Sanguinetti <godfoca-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> If you can do it in the server, do it there :) If not (maybe the data > is created in js and it''s still not available in the server, for > example), a possibility is to use Enumerable#partition: > > $$(".new, .read").partition(function(d) { return > d.className.match(/new/) }).flatten(); > > http://prototypejs.org/api/enumerable/partition > > Best, > -Nicolas > > (ps: wow, first time I find an actual use for Enumerable#partition) > > > On Feb 1, 2008 12:04 PM, Wizz <woutawizz-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > > > On 31 jan, 21:47, polomasta <bjo...-PGNGAmqIy5icqzYg7KEe8g@public.gmane.org> wrote: > > > I guess they can the first time. However, a button in the div can be > > > clicked to change its status (class) from "new" to "read" or vice > > > versa... when this happens I want to resort the divs without having to > > > reload everything from the server again. > > > > > > Does that make sense? > > > > > > On Jan 24, 7:07 pm, "Justin Perkins" <justinperk...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > > > > > > On Jan 24, 2008 4:10 PM, polomasta <bjo...-PGNGAmqIy5icqzYg7KEe8g@public.gmane.org> wrote: > > > > > > > > I have a script that pulls in a bunch of data to my page and parses it > > > > > > > Is this data being pulled in through an Ajax request? Why can''t the > > > > data be sorted on the server? > > > > > > > -justin > > I would suggest making 2 arrays with the ''new'' divs and the ''read'' > > divs and merging the afterwards. > > > > sortMessages($(''container'')); > > > > function sortMessages(container) { > > var read = container.select(''div.read''); > > var new = container.select(''div.new''); > > var result = $A([]); > > return result.concat(new, read); > > } > > > > Haven''t tested it though... but this is the general idea > > > > Greetz, > > > > Wizz > > > > > > > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---
Nic, my "insertion" beats your "partition" : ) $$(''#container .read'').each( function(element) { $(''container'').insert(element); } ) --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---
On Feb 7, 2008 5:53 PM, kangax <kangax-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> > Nic, > > my "insertion" beats your "partition" : ) > > > $$(''#container .read'').each( function(element) { > $(''container'').insert(element); > } )Hm, good point, I hadn''t read your post :-\ Ok, it''s official now, Enumerable#partition is useless ;-) -Nicolas --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---
Reasonably Related Threads
- Ajax.Request - nothing in responseText, I need it!!
- Ajax.InPlaceEditor via PHP via prototype widows class = HELP :-)
- Nested Droppable divs -- drag & drop
- Prototype.js event.stop(event) FF2 not working
- prototype 1.6 Ajax.PeriodicalUpdater executing old scripts??