From 08967ead78d888ff058da014569932ccf04dceda Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 6 Mar 2006 19:45:02 +0000 Subject: Allow method chaining in RJS elements [Rick Olson] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3801 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- actionpack/Rakefile | 2 +- actionpack/lib/action_view/helpers/javascripts/dragdrop.js | 3 ++- actionpack/lib/action_view/helpers/javascripts/effects.js | 9 +++++++++ railties/html/javascripts/effects.js | 9 +++++++++ 4 files changed, 21 insertions(+), 2 deletions(-) diff --git a/actionpack/Rakefile b/actionpack/Rakefile index 211c52f46d..2557360985 100755 --- a/actionpack/Rakefile +++ b/actionpack/Rakefile @@ -116,7 +116,7 @@ end task :update_scriptaculous do for js in %w( controls dragdrop effects ) - system("svn export --force http://dev.rubyonrails.org/svn/rails/spinoffs/scriptaculous/src/#{js} #{File.dirname(__FILE__)}/lib/action_view/helpers/javascripts/") + system("svn export --force http://dev.rubyonrails.org/svn/rails/spinoffs/scriptaculous/src/#{js}.js #{File.dirname(__FILE__)}/lib/action_view/helpers/javascripts/#{js}.js") end end diff --git a/actionpack/lib/action_view/helpers/javascripts/dragdrop.js b/actionpack/lib/action_view/helpers/javascripts/dragdrop.js index b44afe4881..2b68ee30e4 100644 --- a/actionpack/lib/action_view/helpers/javascripts/dragdrop.js +++ b/actionpack/lib/action_view/helpers/javascripts/dragdrop.js @@ -558,9 +558,10 @@ var Sortable = { findElements: function(element, options) { if(!element.hasChildNodes()) return null; var elements = []; + var only = options.only ? [options.only].flatten() : null; $A(element.childNodes).each( function(e) { if(e.tagName && e.tagName.toUpperCase()==options.tag.toUpperCase() && - (!options.only || (Element.hasClassName(e, options.only)))) + (!only || (Element.classNames(e).detect(function(v) { return only.include(v) })))) elements.push(e); if(options.tree) { var grandchildren = this.findElements(e, options); diff --git a/actionpack/lib/action_view/helpers/javascripts/effects.js b/actionpack/lib/action_view/helpers/javascripts/effects.js index c5183092fd..3abb0eed04 100644 --- a/actionpack/lib/action_view/helpers/javascripts/effects.js +++ b/actionpack/lib/action_view/helpers/javascripts/effects.js @@ -918,3 +918,12 @@ Effect.Fold = function(element) { }} }); }}, arguments[1] || {})); } + +if(Element.Methods) { + Element.Methods.visualEffect = function(element, effect, options) { + s = effect.gsub(/_/, '-').camelize(); + effect_class = s.charAt(0).toUpperCase() + s.substring(1); + new Effect[effect_class](element, options); + return $(element); + } +} diff --git a/railties/html/javascripts/effects.js b/railties/html/javascripts/effects.js index c5183092fd..3abb0eed04 100644 --- a/railties/html/javascripts/effects.js +++ b/railties/html/javascripts/effects.js @@ -918,3 +918,12 @@ Effect.Fold = function(element) { }} }); }}, arguments[1] || {})); } + +if(Element.Methods) { + Element.Methods.visualEffect = function(element, effect, options) { + s = effect.gsub(/_/, '-').camelize(); + effect_class = s.charAt(0).toUpperCase() + s.substring(1); + new Effect[effect_class](element, options); + return $(element); + } +} -- cgit v1.2.3