mirror of
https://github.com/github/rails.git
synced 2026-04-26 03:00:59 -04:00
Added :highlight effect to do YFT automatically
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1004 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
@@ -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]
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user