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

Changeset 4882

Show
Ignore:
Timestamp:
08/30/06 18:17:56 (2 years ago)
Author:
sam
Message:

prototype: Make destructive Element, Form, and Form.Element methods return their first argument, so that multiple calls can be chained together

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • spinoffs/prototype/CHANGELOG

    r4881 r4882  
    11*SVN* 
    22 
    3 * For consistency, Element.toggle, Element.show, and Element.hide no longer take an arbitrary number of arguments. [sam] 
     3* Make destructive Element, Form, and Form.Element methods return their first argument, so that multiple calls can be chained together. [sam] 
     4 
     5  ex. $("sidebar").addClassName("selected").show(); 
     6 
     7  The following methods now return their first argument: Element.toggle, Element.hide, Element.show, Element.remove, Element.update, Element.replace, Element.addClassName, Element.removeClassName, Element.observe, Element.stopObserving, Element.cleanWhitespace, Element.scrollTo, Element.setStyle, Element.makePositioned, Element.undoPositioned, Element.makeClipping, Element.undoClipping, Form.reset, Form.disable, Form.enable, Form.focusFirstElement, Form.Element.focus, Form.Element.select, Form.Element.clear, Form.Element.activate, Form.Element.disable, Form.Element.enable. 
     8 
     9* For consistency, Element.toggle, Element.show, Element.hide, Field.clear, and Field.present no longer take an arbitrary number of arguments. [sam] 
    410   
    511  !! BACKWARDS COMPATIBILITY CHANGE !! 
  • spinoffs/prototype/src/dom.js

    r4881 r4882  
    6363    element = $(element); 
    6464    Element[Element.visible(element) ? 'hide' : 'show'](element); 
     65    return element; 
    6566  }, 
    6667 
    6768  hide: function() { 
    6869    $(element).style.display = 'none'; 
     70    return element; 
    6971  }, 
    7072   
    7173  show: function() { 
    7274    $(element).style.display = ''; 
     75    return element; 
    7376  }, 
    7477 
     
    7679    element = $(element); 
    7780    element.parentNode.removeChild(element); 
     81    return element; 
    7882  }, 
    7983 
     
    8185    $(element).innerHTML = html.stripScripts(); 
    8286    setTimeout(function() {html.evalScripts()}, 10); 
     87    return element; 
    8388  }, 
    8489   
     
    9499    } 
    95100    setTimeout(function() {html.evalScripts()}, 10); 
     101    return element; 
    96102  }, 
    97103   
     
    124130  addClassName: function(element, className) { 
    125131    if (!(element = $(element))) return; 
    126     return Element.classNames(element).add(className); 
     132    Element.classNames(element).add(className); 
     133    return element; 
    127134  }, 
    128135 
    129136  removeClassName: function(element, className) { 
    130137    if (!(element = $(element))) return; 
    131     return Element.classNames(element).remove(className); 
     138    Element.classNames(element).remove(className); 
     139    return element; 
    132140  }, 
    133141   
    134142  observe: function() { 
    135     return Event.observe.apply(Event, arguments); 
     143    Event.observe.apply(Event, arguments); 
     144    return $A(arguments).first(); 
    136145  }, 
    137146   
    138147  stopObserving: function() { 
    139     return Event.stopObserving.apply(Event, arguments); 
     148    Event.stopObserving.apply(Event, arguments); 
     149    return $A(arguments).first(); 
    140150  }, 
    141151   
     
    148158        Element.remove(node); 
    149159    } 
     160    return element; 
    150161  }, 
    151162   
     
    166177        y = element.y ? element.y : element.offsetTop; 
    167178    window.scrollTo(x, y); 
     179    return element; 
    168180  }, 
    169181   
     
    190202    for (var name in style)  
    191203      element.style[name.camelize()] = style[name]; 
     204    return element; 
    192205  }, 
    193206   
     
    226239      }   
    227240    } 
     241    return element; 
    228242  }, 
    229243 
     
    238252        element.style.right = '';    
    239253    } 
     254    return element; 
    240255  }, 
    241256 
     
    246261    if ((Element.getStyle(element, 'overflow') || 'visible') != 'hidden') 
    247262      element.style.overflow = 'hidden'; 
     263    return element; 
    248264  }, 
    249265 
     
    253269    element.style.overflow = element._overflow; 
    254270    element._overflow = undefined; 
     271    return element; 
    255272  } 
    256273} 
     
    288305    } 
    289306    setTimeout(function() {html.evalScripts()}, 10); 
     307    return element; 
    290308  } 
    291309} 
  • spinoffs/prototype/src/form.js

    r4880 r4882  
    22  reset: function(form) { 
    33    $(form).reset(); 
     4    return form; 
    45  } 
    56}; 
     
    5152 
    5253  disable: function(form) { 
     54    form = $(form); 
    5355    var elements = Form.getElements(form); 
    5456    for (var i = 0; i < elements.length; i++) { 
     
    5759      element.disabled = 'true'; 
    5860    } 
     61    return form; 
    5962  }, 
    6063 
    6164  enable: function(form) { 
     65    form = $(form); 
    6266    var elements = Form.getElements(form); 
    6367    for (var i = 0; i < elements.length; i++) { 
     
    6569      element.disabled = ''; 
    6670    } 
     71    return form; 
    6772  }, 
    6873 
     
    7580 
    7681  focusFirstElement: function(form) { 
     82    form = $(form); 
    7783    Field.activate(Form.findFirstElement(form)); 
     84    return form; 
    7885  } 
    7986} 
     
    8693  focus: function(element) { 
    8794    $(element).focus(); 
     95    return element; 
    8896  }, 
    8997 
    9098  select: function(element) { 
    9199    $(element).select(); 
     100    return element; 
    92101  } 
    93102} 
     
    121130  }, 
    122131 
    123   clear: function() { 
    124     for (var i = 0; i < arguments.length; i++) 
    125       $(arguments[i]).value = ''; 
    126   }, 
    127  
    128   present: function() { 
    129     for (var i = 0; i < arguments.length; i++) 
    130       if ($(arguments[i]).value == '') return false; 
    131     return true; 
     132  clear: function(element) { 
     133    $(element).value = ''; 
     134    return element; 
     135  }, 
     136 
     137  present: function(element) { 
     138    return $(element).value != ''; 
    132139  }, 
    133140   
     
    137144    if (element.select) 
    138145      element.select(); 
     146    return element; 
    139147  }, 
    140148   
     
    142150    element = $(element); 
    143151    element.disabled = ''; 
     152    return element; 
    144153  }, 
    145154   
     
    148157    element.blur(); 
    149158    element.disabled = 'true'; 
     159    return element; 
    150160  } 
    151161}