diff options
author | Thomas Fuchs <thomas@fesch.at> | 2006-10-28 16:55:06 +0000 |
---|---|---|
committer | Thomas Fuchs <thomas@fesch.at> | 2006-10-28 16:55:06 +0000 |
commit | fe39ac7e56c5efaa3995353cdabb432a23229633 (patch) | |
tree | 3e04225c4f581ec3d583ceb52e669ea3b561f15e /actionpack/lib/action_view/helpers | |
parent | e808315725d7dad1745572c8ef9ae7e4f6ff0b48 (diff) | |
download | rails-fe39ac7e56c5efaa3995353cdabb432a23229633.tar.gz rails-fe39ac7e56c5efaa3995353cdabb432a23229633.tar.bz2 rails-fe39ac7e56c5efaa3995353cdabb432a23229633.zip |
Update to latest Prototype, which doesnt serialize disabled form elements, adds clone() to arrays, empty/non-string Element.update() and adds a fixes excessive error reporting in WebKit beta versions [Thomas Fuchs]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5371 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'actionpack/lib/action_view/helpers')
-rw-r--r-- | actionpack/lib/action_view/helpers/javascripts/prototype.js | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/actionpack/lib/action_view/helpers/javascripts/prototype.js b/actionpack/lib/action_view/helpers/javascripts/prototype.js index 831eb184d0..8ceb046995 100644 --- a/actionpack/lib/action_view/helpers/javascripts/prototype.js +++ b/actionpack/lib/action_view/helpers/javascripts/prototype.js @@ -560,6 +560,10 @@ Object.extend(Array.prototype, { }); }, + clone: function() { + return [].concat(this); + }, + inspect: function() { return '[' + this.map(Object.inspect).join(', ') + ']'; } @@ -1040,6 +1044,7 @@ Element.Methods = { }, update: function(element, html) { + html = typeof html == 'undefined' ? '' : html.toString(); $(element).innerHTML = html.stripScripts(); setTimeout(function() {html.evalScripts()}, 10); return element; @@ -1299,6 +1304,7 @@ Element.Methods = { if(document.all){ Element.Methods.update = function(element, html) { element = $(element); + html = typeof html == 'undefined' ? '' : html.toString(); var tagName = element.tagName.toUpperCase(); if (['THEAD','TBODY','TR','TD'].indexOf(tagName) > -1) { var div = document.createElement('div'); @@ -1335,14 +1341,13 @@ Object.extend(Element, Element.Methods); var _nativeExtensions = false; -if (!window.HTMLElement && /Konqueror|Safari|KHTML/.test(navigator.userAgent)) { - /* Emulate HTMLElement, HTMLFormElement, HTMLInputElement, HTMLTextAreaElement, - and HTMLSelectElement in Safari */ +if(/Konqueror|Safari|KHTML/.test(navigator.userAgent)) ['', 'Form', 'Input', 'TextArea', 'Select'].each(function(tag) { - var klass = window['HTML' + tag + 'Element'] = {}; + var className = 'HTML' + tag + 'Element'; + if(window[className]) return; + var klass = window[className] = {}; klass.prototype = document.createElement(tag ? tag.toLowerCase() : 'div').__proto__; }); -} Element.addMethods = function(methods) { Object.extend(Element.Methods, methods || {}); @@ -1732,6 +1737,7 @@ Form.Element = { Form.Element.Methods = { serialize: function(element) { element = $(element); + if (element.disabled) return ''; var method = element.tagName.toLowerCase(); var parameter = Form.Element.Serializers[method](element); |