mirror of
https://github.com/Yetangitu/ampache
synced 2025-10-05 02:39:47 +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
|
||||
- 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
|
||||
|
|
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 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 {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue