1
0
Fork 0
mirror of https://github.com/Yetangitu/ampache synced 2025-10-05 10:49:37 +02:00

Update prototype to git HEAD (4ce0b0f)

git://github.com/sstephenson/prototype.git
This commit is contained in:
Paul Arthur 2013-01-15 15:12:16 -05:00
parent 035fd9b117
commit 19efa3adf7
2 changed files with 61 additions and 37 deletions

View file

@ -4,6 +4,7 @@
-------------------------------------------------------------------------- --------------------------------------------------------------------------
v.3.6-FUTURE v.3.6-FUTURE
- Updated Prototype to git HEAD (4ce0b0f)
- Fixed bug that disclosed passwords for plugins to users that didn't - Fixed bug that disclosed passwords for plugins to users that didn't
have access to update the password (patch by Fred Thomsen) have access to update the password (patch by Fred Thomsen)
- Fixed streaming on Android devices and anything else that expects to - Fixed streaming on Android devices and anything else that expects to

View file

@ -399,7 +399,7 @@ Object.extend(Function.prototype, (function() {
var __method = this, args = slice.call(arguments, 1); var __method = this, args = slice.call(arguments, 1);
var bound = function() { var bound = function() {
var a = merge(args, arguments), c = context; var a = merge(args, arguments);
var c = this instanceof bound ? this : context; var c = this instanceof bound ? this : context;
return __method.apply(c, a); return __method.apply(c, a);
}; };
@ -577,7 +577,8 @@ Object.extend(String.prototype, (function() {
} }
while (source.length > 0) { 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 += source.slice(0, match.index);
result += String.interpret(replacement(match)); result += String.interpret(replacement(match));
source = source.slice(match.index + match[0].length); source = source.slice(match.index + match[0].length);
@ -921,8 +922,8 @@ var Enumerable = (function() {
} }
function include(object) { function include(object) {
if (Object.isFunction(this.indexOf)) if (Object.isFunction(this.indexOf) && this.indexOf(object) != -1)
if (this.indexOf(object) != -1) return true; return true;
var found = false; var found = false;
this.each(function(value) { this.each(function(value) {
@ -1406,11 +1407,13 @@ var Hash = Class.create(Enumerable, (function() {
function _each(iterator, context) { function _each(iterator, context) {
var i = 0;
for (var key in this._object) { for (var key in this._object) {
var value = this._object[key], pair = [key, value]; var value = this._object[key], pair = [key, value];
pair.key = key; pair.key = key;
pair.value = value; 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) { function toQueryPair(key, value) {
if (Object.isUndefined(value)) return key; if (Object.isUndefined(value)) return key;
var value = String.interpret(value); value = String.interpret(value);
value = value.gsub(/(\r)?\n/, '\r\n'); value = value.gsub(/(\r)?\n/, '\r\n');
value = encodeURIComponent(value); value = encodeURIComponent(value);
@ -1580,9 +1583,9 @@ var ObjectRange = Class.create(Enumerable, (function() {
} }
function _each(iterator, context) { function _each(iterator, context) {
var value = this.start; var value = this.start, i;
while (this.include(value)) { for (i = 0; this.include(value); i++) {
iterator.call(context, value); iterator.call(context, value, i);
value = value.succ(); value = value.succ();
} }
} }
@ -1777,7 +1780,8 @@ Ajax.Request = Class.create(Ajax.Base, {
} }
for (var name in headers) for (var name in headers)
this.transport.setRequestHeader(name, headers[name]); if (headers[name] != null)
this.transport.setRequestHeader(name, headers[name]);
}, },
success: function() { success: function() {
@ -2628,6 +2632,7 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, {
} }
function down(element, expression, index) { function down(element, expression, index) {
if (arguments.length === 1) return firstDescendant(element);
element = $(element), expression = expression || 0, index = index || 0; element = $(element), expression = expression || 0, index = index || 0;
if (Object.isNumber(expression)) if (Object.isNumber(expression))
@ -2783,7 +2788,7 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, {
name = table.names[attr] || attr; name = table.names[attr] || attr;
value = attributes[attr]; value = attributes[attr];
if (table.values[attr]) if (table.values[attr])
name = table.values[attr](element, value); name = table.values[attr](element, value) || name;
if (value === false || value === null) if (value === false || value === null)
element.removeAttribute(name); element.removeAttribute(name);
else if (value === true) else if (value === true)
@ -3104,7 +3109,7 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, {
} }
function hasLayout_IE(element) { function hasLayout_IE(element) {
if (!element.currentStyle.hasLayout) if (!element.currentStyle || !element.currentStyle.hasLayout)
element.style.zoom = 1; element.style.zoom = 1;
return element; return element;
} }
@ -3157,7 +3162,7 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, {
var filter = Element.getStyle(element, 'filter'); var filter = Element.getStyle(element, 'filter');
if (filter.length === 0) return 1.0; if (filter.length === 0) return 1.0;
var match = (filter || '').match(/alpha\(opacity=(.*)\)/); 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; return 1.0;
} }
@ -3432,6 +3437,14 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, {
Element.addMethods(methods); Element.addMethods(methods);
function destroyCache_IE() {
DIV = null;
ELEMENT_CACHE = null;
}
if (window.attachEvent)
window.attachEvent('onunload', destroyCache_IE);
})(this); })(this);
(function() { (function() {
@ -4066,7 +4079,8 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, {
function viewportOffset(forElement) { function viewportOffset(forElement) {
var valueT = 0, valueL = 0, docBody = document.body; var valueT = 0, valueL = 0, docBody = document.body;
var element = $(forElement); forElement = $(forElement);
var element = forElement;
do { do {
valueT += element.offsetTop || 0; valueT += element.offsetTop || 0;
valueL += element.offsetLeft || 0; valueL += element.offsetLeft || 0;
@ -4099,10 +4113,11 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, {
var layout = element.getLayout(); var layout = element.getLayout();
element.store('prototype_absolutize_original_styles', { element.store('prototype_absolutize_original_styles', {
left: element.getStyle('left'), position: element.getStyle('position'),
top: element.getStyle('top'), left: element.getStyle('left'),
width: element.getStyle('width'), top: element.getStyle('top'),
height: element.getStyle('height') width: element.getStyle('width'),
height: element.getStyle('height')
}); });
element.setStyle({ element.setStyle({
@ -5799,18 +5814,23 @@ var Form = {
accumulator = function(result, key, value) { accumulator = function(result, key, value) {
if (key in result) { if (key in result) {
if (!Object.isArray(result[key])) result[key] = [result[key]]; if (!Object.isArray(result[key])) result[key] = [result[key]];
result[key].push(value); result[key] = result[key].concat(value);
} else result[key] = value; } else result[key] = value;
return result; return result;
}; };
} else { } else {
initial = ''; initial = '';
accumulator = function(result, key, value) { accumulator = function(result, key, values) {
value = value.gsub(/(\r)?\n/, '\r\n'); if (!Object.isArray(values)) {values = [values];}
value = encodeURIComponent(value); if (!values.length) {return result;}
value = value.gsub(/%20/, '+'); var encodedKey = encodeURIComponent(key).gsub(/%20/, '+');
return result + (result ? '&' : '') + encodeURIComponent(key) + '=' + value; 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) { return elements.inject(initial, function(result, element) {
@ -6244,17 +6264,14 @@ Form.EventObserver = Class.create(Abstract.EventObserver, {
node = currentTarget; node = currentTarget;
} }
if (node.nodeType == Node.TEXT_NODE) return node.nodeType == Node.TEXT_NODE ? node.parentNode : node;
node = node.parentNode;
return Element.extend(node);
} }
function findElement(event, expression) { 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); if (!expression) return Element.extend(element);
while (element) { while (element) {
if (Object.isElement(element) && match(element, expression)) if (Object.isElement(element) && selector.match(element, expression))
return Element.extend(element); return Element.extend(element);
element = element.parentNode; element = element.parentNode;
} }
@ -6535,8 +6552,8 @@ Form.EventObserver = Class.create(Abstract.EventObserver, {
function stopObservingElement(element) { function stopObservingElement(element) {
var uid = getUniqueElementID(element), var uid = getUniqueElementID(element), registry = GLOBAL.Event.cache[uid];
registry = getRegistryForElement(element, uid); if (!registry) return;
destroyRegistryForElement(element, uid); destroyRegistryForElement(element, uid);
@ -6716,9 +6733,9 @@ Form.EventObserver = Class.create(Abstract.EventObserver, {
return createMouseEnterLeaveResponder(uid, eventName, handler); return createMouseEnterLeaveResponder(uid, eventName, handler);
return function(event) { return function(event) {
var cacheEntry = Event.cache[uid]; if (!Event.cache) return;
var element = cacheEntry.element;
var element = Event.cache[uid].element;
Event.extend(event, element); Event.extend(event, element);
handler.call(element, event); handler.call(element, event);
}; };
@ -6726,7 +6743,7 @@ Form.EventObserver = Class.create(Abstract.EventObserver, {
function createResponderForCustomEvent(uid, eventName, handler) { function createResponderForCustomEvent(uid, eventName, handler) {
return function(event) { return function(event) {
var cacheEntry = Event.cache[uid], element = cacheEntry.element; var element = Event.cache[uid].element;
if (Object.isUndefined(event.eventName)) if (Object.isUndefined(event.eventName))
return false; return false;
@ -6741,7 +6758,7 @@ Form.EventObserver = Class.create(Abstract.EventObserver, {
function createMouseEnterLeaveResponder(uid, eventName, handler) { function createMouseEnterLeaveResponder(uid, eventName, handler) {
return function(event) { return function(event) {
var cacheEntry = Event.cache[uid], element = cacheEntry.element; var element = Event.cache[uid].element;
Event.extend(event, element); Event.extend(event, element);
var parent = event.relatedTarget; var parent = event.relatedTarget;
@ -6791,6 +6808,12 @@ Form.EventObserver = Class.create(Abstract.EventObserver, {
fireContentLoadedEvent(); fireContentLoadedEvent();
} }
if (document.readyState === 'complete') {
fireContentLoadedEvent();
return;
}
if (document.addEventListener) { if (document.addEventListener) {
document.addEventListener('DOMContentLoaded', fireContentLoadedEvent, false); document.addEventListener('DOMContentLoaded', fireContentLoadedEvent, false);
} else { } else {