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:
parent
035fd9b117
commit
19efa3adf7
2 changed files with 61 additions and 37 deletions
|
@ -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
|
||||||
|
|
97
modules/prototype/prototype.js
vendored
97
modules/prototype/prototype.js
vendored
|
@ -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 {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue