aboutsummaryrefslogtreecommitdiffstats
path: root/railties
diff options
context:
space:
mode:
authorThomas Fuchs <thomas@fesch.at>2006-10-28 16:55:06 +0000
committerThomas Fuchs <thomas@fesch.at>2006-10-28 16:55:06 +0000
commitfe39ac7e56c5efaa3995353cdabb432a23229633 (patch)
tree3e04225c4f581ec3d583ceb52e669ea3b561f15e /railties
parente808315725d7dad1745572c8ef9ae7e4f6ff0b48 (diff)
downloadrails-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 'railties')
-rw-r--r--railties/CHANGELOG2
-rw-r--r--railties/html/javascripts/prototype.js16
2 files changed, 13 insertions, 5 deletions
diff --git a/railties/CHANGELOG b/railties/CHANGELOG
index 6e029db550..a59177aa4d 100644
--- a/railties/CHANGELOG
+++ b/railties/CHANGELOG
@@ -1,5 +1,7 @@
*SVN*
+* Update to latest Prototype, which doesn't 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]
+
* Clean up the output of rake stats, de-emphasise components and apis, and remove the indents for tests [Koz]
* Added option to script/process/spawner of specifying the binding address #5133 [zsombor]
diff --git a/railties/html/javascripts/prototype.js b/railties/html/javascripts/prototype.js
index 831eb184d0..8ceb046995 100644
--- a/railties/html/javascripts/prototype.js
+++ b/railties/html/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);