From fe39ac7e56c5efaa3995353cdabb432a23229633 Mon Sep 17 00:00:00 2001 From: Thomas Fuchs Date: Sat, 28 Oct 2006 16:55:06 +0000 Subject: 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 --- .../lib/action_view/helpers/javascripts/prototype.js | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'actionpack/lib/action_view/helpers/javascripts') 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); -- cgit v1.2.3