summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Arthur <flowerysong00@yahoo.com>2013-01-15 15:12:16 -0500
committerPaul Arthur <flowerysong00@yahoo.com>2013-01-15 15:12:16 -0500
commit19efa3adf757ef160d26aec1e6f15f6b10da1721 (patch)
treef7c90d196438e2ee71822c90f9d2a9e63a16eb55
parent035fd9b1179c2d5659050327c6669a976f81335e (diff)
downloadampache-19efa3adf757ef160d26aec1e6f15f6b10da1721.tar.gz
ampache-19efa3adf757ef160d26aec1e6f15f6b10da1721.tar.bz2
ampache-19efa3adf757ef160d26aec1e6f15f6b10da1721.zip
Update prototype to git HEAD (4ce0b0f)
git://github.com/sstephenson/prototype.git
-rwxr-xr-xdocs/CHANGELOG1
-rw-r--r--modules/prototype/prototype.js97
2 files changed, 61 insertions, 37 deletions
diff --git a/docs/CHANGELOG b/docs/CHANGELOG
index 202c307e..0d957a65 100755
--- a/docs/CHANGELOG
+++ b/docs/CHANGELOG
@@ -4,6 +4,7 @@
--------------------------------------------------------------------------
v.3.6-FUTURE
+ - Updated Prototype to git HEAD (4ce0b0f)
- Fixed bug that disclosed passwords for plugins to users that didn't
have access to update the password (patch by Fred Thomsen)
- Fixed streaming on Android devices and anything else that expects to
diff --git a/modules/prototype/prototype.js b/modules/prototype/prototype.js
index 37dd39ac..1b2efbcd 100644
--- a/modules/prototype/prototype.js
+++ b/modules/prototype/prototype.js
@@ -399,7 +399,7 @@ Object.extend(Function.prototype, (function() {
var __method = this, args = slice.call(arguments, 1);
var bound = function() {
- var a = merge(args, arguments), c = context;
+ var a = merge(args, arguments);
var c = this instanceof bound ? this : context;
return __method.apply(c, a);
};
@@ -577,7 +577,8 @@ Object.extend(String.prototype, (function() {
}
while (source.length > 0) {
- if (match = source.match(pattern)) {
+ match = source.match(pattern)
+ if (match && match[0].length > 0) {
result += source.slice(0, match.index);
result += String.interpret(replacement(match));
source = source.slice(match.index + match[0].length);
@@ -921,8 +922,8 @@ var Enumerable = (function() {
}
function include(object) {
- if (Object.isFunction(this.indexOf))
- if (this.indexOf(object) != -1) return true;
+ if (Object.isFunction(this.indexOf) && this.indexOf(object) != -1)
+ return true;
var found = false;
this.each(function(value) {
@@ -1406,11 +1407,13 @@ var Hash = Class.create(Enumerable, (function() {
function _each(iterator, context) {
+ var i = 0;
for (var key in this._object) {
var value = this._object[key], pair = [key, value];
pair.key = key;
pair.value = value;
- iterator.call(context, pair);
+ iterator.call(context, pair, i);
+ i++;
}
}
@@ -1464,7 +1467,7 @@ var Hash = Class.create(Enumerable, (function() {
function toQueryPair(key, value) {
if (Object.isUndefined(value)) return key;
- var value = String.interpret(value);
+ value = String.interpret(value);
value = value.gsub(/(\r)?\n/, '\r\n');
value = encodeURIComponent(value);
@@ -1580,9 +1583,9 @@ var ObjectRange = Class.create(Enumerable, (function() {
}
function _each(iterator, context) {
- var value = this.start;
- while (this.include(value)) {
- iterator.call(context, value);
+ var value = this.start, i;
+ for (i = 0; this.include(value); i++) {
+ iterator.call(context, value, i);
value = value.succ();
}
}
@@ -1777,7 +1780,8 @@ Ajax.Request = Class.create(Ajax.Base, {
}
for (var name in headers)
- this.transport.setRequestHeader(name, headers[name]);
+ if (headers[name] != null)
+ this.transport.setRequestHeader(name, headers[name]);
},
success: function() {
@@ -2628,6 +2632,7 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, {
}
function down(element, expression, index) {
+ if (arguments.length === 1) return firstDescendant(element);
element = $(element), expression = expression || 0, index = index || 0;
if (Object.isNumber(expression))
@@ -2783,7 +2788,7 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, {
name = table.names[attr] || attr;
value = attributes[attr];
if (table.values[attr])
- name = table.values[attr](element, value);
+ name = table.values[attr](element, value) || name;
if (value === false || value === null)
element.removeAttribute(name);
else if (value === true)
@@ -3104,7 +3109,7 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, {
}
function hasLayout_IE(element) {
- if (!element.currentStyle.hasLayout)
+ if (!element.currentStyle || !element.currentStyle.hasLayout)
element.style.zoom = 1;
return element;
}
@@ -3157,7 +3162,7 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, {
var filter = Element.getStyle(element, 'filter');
if (filter.length === 0) return 1.0;
var match = (filter || '').match(/alpha\(opacity=(.*)\)/);
- if (match[1]) return parseFloat(match[1]) / 100;
+ if (match && match[1]) return parseFloat(match[1]) / 100;
return 1.0;
}
@@ -3432,6 +3437,14 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, {
Element.addMethods(methods);
+ function destroyCache_IE() {
+ DIV = null;
+ ELEMENT_CACHE = null;
+ }
+
+ if (window.attachEvent)
+ window.attachEvent('onunload', destroyCache_IE);
+
})(this);
(function() {
@@ -4066,7 +4079,8 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, {
function viewportOffset(forElement) {
var valueT = 0, valueL = 0, docBody = document.body;
- var element = $(forElement);
+ forElement = $(forElement);
+ var element = forElement;
do {
valueT += element.offsetTop || 0;
valueL += element.offsetLeft || 0;
@@ -4099,10 +4113,11 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, {
var layout = element.getLayout();
element.store('prototype_absolutize_original_styles', {
- left: element.getStyle('left'),
- top: element.getStyle('top'),
- width: element.getStyle('width'),
- height: element.getStyle('height')
+ position: element.getStyle('position'),
+ left: element.getStyle('left'),
+ top: element.getStyle('top'),
+ width: element.getStyle('width'),
+ height: element.getStyle('height')
});
element.setStyle({
@@ -5799,18 +5814,23 @@ var Form = {
accumulator = function(result, key, value) {
if (key in result) {
if (!Object.isArray(result[key])) result[key] = [result[key]];
- result[key].push(value);
+ result[key] = result[key].concat(value);
} else result[key] = value;
return result;
};
} else {
initial = '';
- accumulator = function(result, key, value) {
- value = value.gsub(/(\r)?\n/, '\r\n');
- value = encodeURIComponent(value);
- value = value.gsub(/%20/, '+');
- return result + (result ? '&' : '') + encodeURIComponent(key) + '=' + value;
- }
+ accumulator = function(result, key, values) {
+ if (!Object.isArray(values)) {values = [values];}
+ if (!values.length) {return result;}
+ var encodedKey = encodeURIComponent(key).gsub(/%20/, '+');
+ return result + (result ? "&" : "") + values.map(function (value) {
+ value = value.gsub(/(\r)?\n/, '\r\n');
+ value = encodeURIComponent(value);
+ value = value.gsub(/%20/, '+');
+ return encodedKey + "=" + value;
+ }).join("&");
+ };
}
return elements.inject(initial, function(result, element) {
@@ -6244,17 +6264,14 @@ Form.EventObserver = Class.create(Abstract.EventObserver, {
node = currentTarget;
}
- if (node.nodeType == Node.TEXT_NODE)
- node = node.parentNode;
-
- return Element.extend(node);
+ return node.nodeType == Node.TEXT_NODE ? node.parentNode : node;
}
function findElement(event, expression) {
- var element = _element(event), match = Prototype.Selector.match;
+ var element = _element(event), selector = Prototype.Selector;
if (!expression) return Element.extend(element);
while (element) {
- if (Object.isElement(element) && match(element, expression))
+ if (Object.isElement(element) && selector.match(element, expression))
return Element.extend(element);
element = element.parentNode;
}
@@ -6535,8 +6552,8 @@ Form.EventObserver = Class.create(Abstract.EventObserver, {
function stopObservingElement(element) {
- var uid = getUniqueElementID(element),
- registry = getRegistryForElement(element, uid);
+ var uid = getUniqueElementID(element), registry = GLOBAL.Event.cache[uid];
+ if (!registry) return;
destroyRegistryForElement(element, uid);
@@ -6716,9 +6733,9 @@ Form.EventObserver = Class.create(Abstract.EventObserver, {
return createMouseEnterLeaveResponder(uid, eventName, handler);
return function(event) {
- var cacheEntry = Event.cache[uid];
- var element = cacheEntry.element;
+ if (!Event.cache) return;
+ var element = Event.cache[uid].element;
Event.extend(event, element);
handler.call(element, event);
};
@@ -6726,7 +6743,7 @@ Form.EventObserver = Class.create(Abstract.EventObserver, {
function createResponderForCustomEvent(uid, eventName, handler) {
return function(event) {
- var cacheEntry = Event.cache[uid], element = cacheEntry.element;
+ var element = Event.cache[uid].element;
if (Object.isUndefined(event.eventName))
return false;
@@ -6741,7 +6758,7 @@ Form.EventObserver = Class.create(Abstract.EventObserver, {
function createMouseEnterLeaveResponder(uid, eventName, handler) {
return function(event) {
- var cacheEntry = Event.cache[uid], element = cacheEntry.element;
+ var element = Event.cache[uid].element;
Event.extend(event, element);
var parent = event.relatedTarget;
@@ -6791,6 +6808,12 @@ Form.EventObserver = Class.create(Abstract.EventObserver, {
fireContentLoadedEvent();
}
+
+ if (document.readyState === 'complete') {
+ fireContentLoadedEvent();
+ return;
+ }
+
if (document.addEventListener) {
document.addEventListener('DOMContentLoaded', fireContentLoadedEvent, false);
} else {