diff options
author | Thomas Fuchs <thomas@fesch.at> | 2006-02-22 09:59:22 +0000 |
---|---|---|
committer | Thomas Fuchs <thomas@fesch.at> | 2006-02-22 09:59:22 +0000 |
commit | bb7408fd4ca0cfe41b4145fec088b36c185c969e (patch) | |
tree | 4dade814692acb18f4c15dc3bce408e21aa97527 /railties/html/javascripts/dragdrop.js | |
parent | 523d54b56d612a791f16468ae3776ac12fd71bb7 (diff) | |
download | rails-bb7408fd4ca0cfe41b4145fec088b36c185c969e.tar.gz rails-bb7408fd4ca0cfe41b4145fec088b36c185c969e.tar.bz2 rails-bb7408fd4ca0cfe41b4145fec088b36c185c969e.zip |
Update script.aculo.us to V1.5.3 [Thomas Fuchs]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3634 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'railties/html/javascripts/dragdrop.js')
-rw-r--r-- | railties/html/javascripts/dragdrop.js | 37 |
1 files changed, 27 insertions, 10 deletions
diff --git a/railties/html/javascripts/dragdrop.js b/railties/html/javascripts/dragdrop.js index 57dab290b2..b44afe4881 100644 --- a/railties/html/javascripts/dragdrop.js +++ b/railties/html/javascripts/dragdrop.js @@ -349,7 +349,7 @@ Draggable.prototype = { }, keyPress: function(event) { - if(!event.keyCode==Event.KEY_ESC) return; + if(event.keyCode!=Event.KEY_ESC) return; this.finishDrag(event, false); Event.stop(event); }, @@ -479,7 +479,7 @@ var Sortable = { hoverclass: null, ghosting: false, scroll: false, - format: null, + format: /^[^_]*_(.*)$/, onChange: Prototype.emptyFunction, onUpdate: Prototype.emptyFunction }, arguments[1] || {}); @@ -636,22 +636,39 @@ var Sortable = { sequence: function(element) { element = $(element); - var sortableOptions = this.options(element); - var options = Object.extend({ - tag: sortableOptions.tag, - only: sortableOptions.only, - name: element.id, - format: sortableOptions.format || /^[^_]*_(.*)$/ - }, arguments[1] || {}); + var options = Object.extend(this.options(element), arguments[1] || {}); + return $(this.findElements(element, options) || []).map( function(item) { return item.id.match(options.format) ? item.id.match(options.format)[1] : ''; }); }, + setSequence: function(element, new_sequence) { + element = $(element); + var options = Object.extend(this.options(element), arguments[2] || {}); + + var nodeMap = {}; + this.findElements(element, options).each( function(n) { + if (n.id.match(options.format)) + nodeMap[n.id.match(options.format)[1]] = [n, n.parentNode]; + n.parentNode.removeChild(n); + }); + + new_sequence.each(function(ident) { + var n = nodeMap[ident]; + if (n) { + n[1].appendChild(n[0]); + delete nodeMap[ident]; + } + }); + }, + serialize: function(element) { element = $(element); + var name = encodeURIComponent( + (arguments[1] && arguments[1].name) ? arguments[1].name : element.id); return Sortable.sequence(element, arguments[1]).map( function(item) { - return encodeURIComponent(element.id) + "[]=" + encodeURIComponent(item); + return name + "[]=" + encodeURIComponent(item); }).join('&'); } } |