HI Mark
No Problem, thought I better contribute something that actually works on
here since I'm always asking questions and my project is a little 'closed
off' right now, (i dont want to open it to the world while it's got this
many bugs/missing features), and I can't direct people to the site to see
the fruits.

The changes in scripty were easy to identify as they are all commented, they
are only in dragdrop.js but I can't generate a patch- I think I need
someone's help to figure out how to generate a patch/diff file under
windows...

If someone sorts this out, I will submit it to trac as I think it is
something that is possibly quite useful.

Gareth



On 6/10/07, Mark Holton <[EMAIL PROTECTED]> wrote:
>
> Gareth,
> ...many thanks for the informative thread.  If you nail down the
> difference between the versions of 
> Script.aculo.us<http://script.aculo.us/>and modified Script.aculo.us
> <http://script.aculo.us/>you were using, would be interested to know what
> they were.
> -Mark
>
>
> On 6/9/07, Gareth Evans <[EMAIL PROTECTED] > wrote:
> >
> > Updated javascript for onload, this one is set up to identify the new
> > sort order and save it to the database, as well as a second ajax call to
> > send the actual move operation.
> > Forget the serverside and database code, that's for your own
> > implementation guys :)
> >
> > The line commented previously,
> > //i think this is probably my most awesome line of prototype code
> > ever...
> > Broke when I actually started testing different scenarios so I had to
> > break it into multiple lines ;(
> > It was meant to take 2 arrays, and return the only item not in the
> > smaller of the two, look that up in the dom, pluck an attribute off it...
> >
> > var ZoneColumns = $('Zones').getElementsBySelector( ' div.ZoneColumn'
> > ).pluck('id');
> > $('Zones').getElementsBySelector( 'div.ZoneColumn').each(function(column) {
> > if ($F('UserId') != 0)
> > {
> > Sortable.create(column,{
> > tag:'div',
> > onChange:function(a,b,c) { },
> > onUpdate:function(a,b,c) {
> > //new Insertion.Top('debug','new childNodeLength: ' + String(
> > a.childNodes.length) + '<br/>');
> > //new Insertion.Top('debug', a.id + ' event<br/>');
> > //new Insertion.Top('debug','sequenced length of droppable: ' + String(
> > Sortable.sequence(a).length) + '<br/>');
> > //new Insertion.Top('debug','stored length of droppable: ' + String(
> > a.readAttribute('currentOrder')).split(',').without('').length +
> > '<br/>');
> > var currentSequence = Sortable.sequence(a).invoke('toString');
> > var c = $A(String(a.readAttribute('currentOrder')).split(',').without(
> > '').invoke('toString'));
> > if (currentSequence.length > c.size())
> > {
> > //new Insertion.Top('debug',String( a.id) + ' is the destination
> > div<br/>');
> > var n = $A(currentSequence).invoke('toString');
> > var e = n.clone();
> > c.each(function (value,index) { e = e.without(value); });
> > var element = $( 'Zone_'+e.reduce()).readAttribute('zonedataid');
> > //new Insertion.Top('debug',element + ' is the draggable div<br/>');
> > //alert($A(currentSequence));
> > new Ajax.Request('Ajax.aspx', {method:'post', parameters: 'ZoneDataId='
> > +element+'&action=UpdateUserZoneItemColumn&Column='+String( a.id
> > ).replace('ZoneColumn_',''), onFailure:errFunc });
> > a.setAttribute( 'currentOrder',Sortable.sequence(a));
> > }
> > var newOrder = $($A(currentSequence).inject([], function(array,value) {
> > array.push($('Zone_'+value).readAttribute('zonedataid' )); return array;
> > }));
> > new Ajax.Request(" Ajax.aspx", {method:'post', postBody:
> > 'Action=OrderZoneItems&newArray=' + newOrder, onFailure: 
> > function(transport) { alert('There
> > was an error setting the new order.' ); } });
> > //new Insertion.Top('debug',String(a.id) + 's new order is: ' + newOrder
> > + '<br/>');
> > },
> > dropOnEmpty:'true',
> > containment:ZoneColumns,
> > constraint:false,
> > ghosting: false
> > });
> > column.setAttribute('currentOrder',Sortable.sequence(column));
> > }
> > column.getElementsBySelector ('div.zone').each(function(node){
> > if (node.id != null){
> > if (node.getAttribute( 'ZoneDataId') != null)
> > {
> > var url = 'RenderZone.aspx';
> > var pars = 'ZoneDataId=' + node.getAttribute ('ZoneDataId');
> > var myAjax = new Ajax.Updater(node.id, url, {method: 'post', parameters:
> > pars, onComplete:processCollapse });
> > }
> > }
> > });
> > });
> >
> >
> > Enjoy, hopefully this is of some use to someone else as well, coming up
> > to 6 hours of dev :P
> >
> > Gareth
> >
> >
> > On 6/10/07, Gareth Evans <[EMAIL PROTECTED]> wrote:
> > >
> > > As for the changes made,
> > > I can see the changes in visual compare but it doesn't have the option
> > > to generate a patch file.
> > > I installed tortisesvn (i use win xp) and grabbed the latest trunk,
> > > copied the changed file in and then used "create patch" but the resulting
> > > patch has - for every line of dragdrop.js and then a + for every line
> > > of the new dragdrop.js so I don't know what's going on...
> > > How should I go about creating a patch under XP?
> > > It doesn't seem like this patch exists in the trac, though it looks
> > > fairly comprehensive.
> > >
> > > Gareth
> > >
> > >
> > >  On 6/10/07, Gareth Evans <[EMAIL PROTECTED]> wrote:
> > > >
> > > > *Christophe: re; Pixel, percent heights.*
> > > >
> > > > Element.style.height returns in percentages.
> > > > If you use the prototype element method to getHeight, it returns in
> > > > pixels, without the px.
> > > >
> > > > Test case is below.
> > > >
> > > > <html>
> > > > <head>
> > > >   <script src="javascript/prototype.js"
> > > > type="text/javascript"></script>
> > > >   <script type="text/javascript">
> > > >  function Begin()
> > > >  {
> > > >   var h = $('percenttest').style.height
> > > >   new Insertion.Top('debug','div Percentage height: ' + h +
> > > > '<br/>');
> > > >   var ch = $('percenttest').getHeight();
> > > >   new Insertion.Top ('debug','div Calculated height: ' + ch +
> > > > '<br/>');
> > > >
> > > >  }
> > > >   </script>
> > > > </head>
> > > > <body style="height:1000px;" onload="Begin();">
> > > >  <div id='percenttest' style="height:70%;background-color:#efefef;">
> > > >  </div>
> > > >  <div id='debug'>
> > > >  </div>
> > > > </body>
> > > > </html>
> > > >
> > > >
> > > >
> > > >  On 6/10/07, Gareth Evans <[EMAIL PROTECTED]> wrote:
> > > > >
> > > > > Okay, continuing on from my previous post which details my
> > > > > solution...
> > > > >
> > > > > here is the new onload
> > > > >
> > > > >
> > > > > var ZoneColumns = $('Zones').getElementsBySelector( '
> > > > > div.ZoneColumn').pluck('id');
> > > > > $('Zones').getElementsBySelector( 
> > > > > 'div.ZoneColumn').each(function(column) {
> > > > > if ($F('UserId') != 0)
> > > > > {
> > > > > Sortable.create(column,{
> > > > > tag:'div',
> > > > > onChange:function(a,b,c) { },
> > > > > onUpdate:function(a,b,c) {
> > > > > //new Insertion.Top('debug','new childNodeLength: ' + String(
> > > > > a.childNodes.length) + '<br/>');
> > > > > //new Insertion.Top('debug', a.id + ' event<br/>');
> > > > > //new Insertion.Top('debug','sequenced length of droppable: ' +
> > > > > String(Sortable.sequence(a).length) + '<br/>');
> > > > > //new Insertion.Top('debug','stored length of droppable: ' +
> > > > > String(a.readAttribute('currentOrder')).split(',').without('').length
> > > > > + '<br/>');
> > > > > if (Sortable.sequence(a).length > String(a.readAttribute(
> > > > > 'currentOrder')).split( ',').without('').length)
> > > > > {
> > > > > //new Insertion.Top ('debug',String( a.id) + ' is the destination
> > > > > div<br/>');
> > > > > //i think this is probably my most awesome line of prototype code
> > > > > ever...
> > > > > var element = $('Zone_'+Sortable.sequence(a).without(String(
> > > > > a.readAttribute('currentOrder' )).split(',').without( 
> > > > > '')).flatten().toString()).readAttribute(
> > > > > 'zonedataid');
> > > > > //new Insertion.Top('debug',element + ' is the draggable
> > > > > div<br/>');
> > > > > new Ajax.Request('Ajax.aspx', {method:'post' , parameters:
> > > > > 'ZoneDataId='+element+'&action=UpdateUserZoneItemColumn&Column='
> > > > > +String(a.id).replace('ZoneColumn_' ,''), onFailure:errFunc });
> > > > > a.setAttribute('currentOrder',Sortable.sequence(a));
> > > > > }
> > > > > },
> > > > > dropOnEmpty:'true' ,
> > > > > containment:ZoneColumns,
> > > > > constraint:false,
> > > > > ghosting: false
> > > > > });
> > > > > //alert(String(Sortable.sequence
> > > > > (column)).split(',').flatten().length);
> > > > > column.setAttribute ('currentOrder',Sortable.sequence (column));
> > > > > }
> > > > > column.getElementsBySelector('div.zone' ).each(function(node){
> > > > > if ( node.id != null){
> > > > > if (node.getAttribute( 'ZoneDataId' ) != null)
> > > > > {
> > > > > var url = 'RenderZone.aspx ';
> > > > > var pars = 'ZoneDataId=' + node.getAttribute( 'ZoneDataId');
> > > > > var myAjax = new Ajax.Updater( node.id, url, {method: 'post',
> > > > > parameters: pars, onComplete:processCollapse });
> > > > > }
> > > > > }
> > > > > });
> > > > > });
> > > > >
> > > > >
> > > > >
> > > > > *Christophe, *I will check that pixel/percent thing in a sec and
> > > > > get back to you.
> > > > >
> > > > > I will also check this diff between scripty and the version I had
> > > > > to use.
> > > > >
> > > > >
> > > > > Gareth
> > > > >
> > > > >
> > > > > On 6/10/07, Christophe Porteneuve < [EMAIL PROTECTED] > wrote:
> > > > > >
> > > > > >
> > > > > > Hey,
> > > > > >
> > > > > > Gareth Evans a écrit :
> > > > > > > I think the computed values remain as pixels if you use
> > > > > > percentages in css?
> > > > > >
> > > > > > You can check that by using getStyle on the properties you
> > > > > > specified as
> > > > > > percents, and see what you get.  I do believe all length-related
> > > > > > props
> > > > > > get computed to pixels, which seems to fit the CSS spec.
> > > > > >
> > > > > > --
> > > > > > Christophe Porteneuve aka TDD
> > > > > > [EMAIL PROTECTED]
> > > > > >
> > > > > >
> > > >
> > > >
> > > >
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
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 [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-spinoffs?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to