diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2005-03-26 15:01:11 +0000 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2005-03-26 15:01:11 +0000 |
commit | ae5f3c74883ae2ea5c0d19151acc8fb33e5fd52c (patch) | |
tree | 325d1c15ec1265119aca071a5a07e624cc334e03 | |
parent | 9ca9f95aee3f44acd3a5ee1cb3e2b20df39ee92b (diff) | |
download | rails-ae5f3c74883ae2ea5c0d19151acc8fb33e5fd52c.tar.gz rails-ae5f3c74883ae2ea5c0d19151acc8fb33e5fd52c.tar.bz2 rails-ae5f3c74883ae2ea5c0d19151acc8fb33e5fd52c.zip |
Added :highlight effect to do YFT automatically
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1004 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
-rw-r--r-- | actionpack/lib/action_view/helpers/javascript_helper.rb | 3 | ||||
-rw-r--r-- | actionpack/lib/action_view/helpers/javascripts/prototype.js | 27 |
2 files changed, 29 insertions, 1 deletions
diff --git a/actionpack/lib/action_view/helpers/javascript_helper.rb b/actionpack/lib/action_view/helpers/javascript_helper.rb index 5a07ebdc6e..513074cddd 100644 --- a/actionpack/lib/action_view/helpers/javascript_helper.rb +++ b/actionpack/lib/action_view/helpers/javascript_helper.rb @@ -159,7 +159,8 @@ module ActionView js_options['asynchronous'] = options[:type] != :synchronous js_options['method'] = options[:method] if options[:method] - + js_options['effect'] = ("\'"+options[:effect].to_s+"\'") if options[:effect] + if options[:form] js_options['parameters'] = 'Form.serialize(this)' elsif options[:with] diff --git a/actionpack/lib/action_view/helpers/javascripts/prototype.js b/actionpack/lib/action_view/helpers/javascripts/prototype.js index 10e5f69cf6..fa1539fca4 100644 --- a/actionpack/lib/action_view/helpers/javascripts/prototype.js +++ b/actionpack/lib/action_view/helpers/javascripts/prototype.js @@ -203,6 +203,9 @@ Ajax.Updater.prototype = (new Ajax.Base()).extend({ updateContent: function() { this.container.innerHTML = this.request.transport.responseText; + switch(this.options.effect) { + case 'highlight': new YellowFader(this.container); break; + } if (this.onComplete) this.onComplete(this.request); } }); @@ -346,3 +349,27 @@ Form.Observer.prototype = (new Abstract.TimedObserver()).extend({ } }); +/*--------------------------------------------------------------------------*/ + +var YellowFader = Class.create(); +YellowFader.prototype = { + initialize: function(element) { + if (typeof element == 'string') element = $(element); + if (!element) return; + this.element = element; + this.start = 153; + this.finish = 255; + this.current = this.start; + this.fade(); + }, + fade: function() { + if (this.isFinished()) return; + if (this.timer) clearTimeout(this.timer); // prevent flicker + highlight_yellow(this.element, this.current); + this.current += 17; + this.timer = setTimeout(this.fade.bind(this), 250); + }, + isFinished: function() { + return this.current > this.finish; + } +}
\ No newline at end of file |