Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Changeset 3757

Show
Ignore:
Timestamp:
03/04/06 17:12:03 (3 years ago)
Author:
david
Message:

Fixed Effect.Appear in effects.js to work with floats in Safari (closes #3524, #3813, #3044) [Thomas Fuchs]

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/actionpack/CHANGELOG

    r3740 r3757  
    11*SVN* 
     2 
     3* Fixed Effect.Appear in effects.js to work with floats in Safari #3524, #3813, #3044 [Thomas Fuchs] 
    24 
    35* Fixed that default image extension was not appended when using a full URL with AssetTagHelper#image_tag #4032, #3728 [rubyonrails@beautifulpixel.com] 
  • trunk/actionpack/lib/action_view/helpers/javascripts/effects.js

    r3634 r3757  
    8484  return $A($(element).getElementsByTagName('*')).select( 
    8585    function(c) { return Element.hasClassName(c, className) }); 
     86} 
     87 
     88Element.forceRerendering = function(element) { 
     89  var n = document.createTextNode(' '); 
     90  $(element).appendChild(n); 
     91  Element.remove(n); 
    8692} 
    8793 
     
    546552  from: (Element.getStyle(element, 'display') == 'none' ? 0.0 : Element.getOpacity(element) || 0.0), 
    547553  to:   1.0, 
     554  // force Safari to render floated elements properly 
     555  afterFinishInternal: function(effect) { 
     556    Element.forceRerendering(effect.element); 
     557  }, 
    548558  beforeSetup: function(effect) { with(Element) { 
    549559    setOpacity(effect.element, effect.options.from); 
  • trunk/actionpack/Rakefile

    r3656 r3757  
    116116 
    117117task :update_scriptaculous do 
    118   system("svn export --force http://dev.rubyonrails.org/svn/rails/spinoffs/scriptaculous/src/ #{File.dirname(__FILE__)}/lib/action_view/helpers/javascripts/") 
     118  for js in %w( controls dragdrop effects ) 
     119    system("svn export --force http://dev.rubyonrails.org/svn/rails/spinoffs/scriptaculous/src/#{js} #{File.dirname(__FILE__)}/lib/action_view/helpers/javascripts/") 
     120  end 
    119121end 
    120122 
    121123desc "Updates actionpack to the latest version of the javascript spinoffs" 
    122 task :update_js => [:update_scriptaculous
     124task :update_js => [ :update_scriptaculous
    123125 
    124126# Publishing ------------------------------------------------------ 
  • trunk/railties/html/javascripts/effects.js

    r3634 r3757  
    8484  return $A($(element).getElementsByTagName('*')).select( 
    8585    function(c) { return Element.hasClassName(c, className) }); 
     86} 
     87 
     88Element.forceRerendering = function(element) { 
     89  var n = document.createTextNode(' '); 
     90  $(element).appendChild(n); 
     91  Element.remove(n); 
    8692} 
    8793 
     
    546552  from: (Element.getStyle(element, 'display') == 'none' ? 0.0 : Element.getOpacity(element) || 0.0), 
    547553  to:   1.0, 
     554  // force Safari to render floated elements properly 
     555  afterFinishInternal: function(effect) { 
     556    Element.forceRerendering(effect.element); 
     557  }, 
    548558  beforeSetup: function(effect) { with(Element) { 
    549559    setOpacity(effect.element, effect.options.from); 
  • trunk/railties/html/javascripts/prototype.js

    r3579 r3757  
    943943  }, 
    944944 
    945   replace: function(element, html) { 
    946     element = $(element); 
    947     if (element.outerHTML) { 
    948       element.outerHTML = html.stripScripts(); 
    949     } else { 
    950       var range = element.ownerDocument.createRange(); 
    951       range.selectNodeContents(element); 
    952       element.parentNode.replaceChild( 
    953         range.createContextualFragment(html.stripScripts()), element); 
    954     } 
    955     setTimeout(function() {html.evalScripts()}, 10); 
     945  replace: function(element, html) {  
     946    element = $(element);  
     947    if (element.outerHTML) {  
     948      element.outerHTML = html.stripScripts();  
     949    } else {  
     950      var range = element.ownerDocument.createRange();  
     951      range.selectNodeContents(element);  
     952      element.parentNode.replaceChild(  
     953        range.createContextualFragment(html.stripScripts()), element);  
     954    }  
     955    setTimeout(function() {html.evalScripts()}, 10);  
    956956  }, 
    957957 
     
    13181318  }, 
    13191319 
    1320   focus: function(element) { 
     1320  focus: function(element) {  
    13211321    $(element).focus(); 
    13221322  }, 
     
    15521552Abstract.EventObserver = function() {} 
    15531553Abstract.EventObserver.prototype = { 
    1554   initialize: function(element, callback) { 
    1555     this.element  = $(element); 
    1556     this.callback = callback; 
     1554  initialize: function() { 
     1555    this.element  = $(arguments[0]); 
     1556    this.callback = arguments[1]; 
     1557    this.trigger  = arguments[2]; 
    15571558 
    15581559    this.lastValue = this.getValue(); 
     
    15601561      this.registerFormCallbacks(); 
    15611562    else 
    1562       this.registerCallback(this.element); 
     1563      this.registerCallback(this.element, this.trigger); 
    15631564  }, 
    15641565 
     
    15741575    var elements = Form.getElements(this.element); 
    15751576    for (var i = 0; i < elements.length; i++) 
    1576       this.registerCallback(elements[i]); 
    1577   }, 
    1578  
    1579   registerCallback: function(element) { 
    1580     if (element.type) { 
     1577      this.registerCallback(elements[i], this.trigger); 
     1578  }, 
     1579 
     1580  registerCallback: function(element, trigger) { 
     1581    if (trigger && element.type) { 
     1582      Event.observe(element, trigger, this.onElementEvent.bind(this)); 
     1583    } else if (element.type) { 
    15811584      switch (element.type.toLowerCase()) { 
    15821585        case 'checkbox': 
  • trunk/railties/Rakefile

    r3692 r3757  
    7676desc "Updates railties to the latest version of the javascript spinoffs" 
    7777task :update_js do 
    78   for js in %w( prototype controls dragdrop effects slider
     78  for js in %w( prototype controls dragdrop effects
    7979    rm "html/javascripts/#{js}.js" 
    8080    cp "./../actionpack/lib/action_view/helpers/javascripts/#{js}.js", "html/javascripts"