1
0
mirror of http://git.whoc.org.uk/git/password-manager.git synced 2024-11-14 08:19:02 +01:00

Fixed frontend properties and updated MochiKit version

This commit is contained in:
Giulio Cesare Solaroli 2012-03-17 21:08:23 +00:00
parent bf7d8191a3
commit 928f3f3ed3
43 changed files with 626 additions and 529 deletions

View File

@ -3,6 +3,9 @@
"mochikit.repository": "http://svn.mochikit.com/mochikit/trunk/", "mochikit.repository": "http://svn.mochikit.com/mochikit/trunk/",
"mochikit.version": "1249" "mochikit.version": "1249"
}, },
"html.template": "index_template.html",
"js": [ "js": [
"MochiKit/Base.js", "MochiKit/Base.js",
"MochiKit/Iter.js", "MochiKit/Iter.js",

View File

@ -8,7 +8,7 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
***/ ***/
MochiKit.Base._module('Async', '1.5', ['Base']); MochiKit.Base.module(MochiKit, 'Async', '1.5', ['Base']);
/** @id MochiKit.Async.Deferred */ /** @id MochiKit.Async.Deferred */
MochiKit.Async.Deferred = function (/* optional */ canceller) { MochiKit.Async.Deferred = function (/* optional */ canceller) {
@ -20,28 +20,32 @@ MochiKit.Async.Deferred = function (/* optional */ canceller) {
this.canceller = canceller; this.canceller = canceller;
this.silentlyCancelled = false; this.silentlyCancelled = false;
this.chained = false; this.chained = false;
this.finalized = false;
}; };
MochiKit.Async.Deferred.prototype = { MochiKit.Async.Deferred.prototype = {
/** @id MochiKit.Async.Deferred.prototype.repr */ /** @id MochiKit.Async.Deferred.prototype.repr */
repr: function () { repr: function () {
var state; return 'Deferred(' + this.id + ', ' + this.state() + ')';
if (this.fired == -1) {
state = 'unfired';
} else if (this.fired === 0) {
state = 'success';
} else {
state = 'error';
}
return 'Deferred(' + this.id + ', ' + state + ')';
}, },
toString: MochiKit.Base.forwardCall("repr"), toString: MochiKit.Base.forwardCall("repr"),
_nextId: MochiKit.Base.counter(), _nextId: MochiKit.Base.counter(),
/** @id MochiKit.Async.Deferred.prototype.state */
state: function () {
if (this.fired == -1) {
return 'unfired';
} else if (this.fired === 0) {
return 'success';
} else {
return 'error';
}
},
/** @id MochiKit.Async.Deferred.prototype.cancel */ /** @id MochiKit.Async.Deferred.prototype.cancel */
cancel: function () { cancel: function (e) {
var self = MochiKit.Async; var self = MochiKit.Async;
if (this.fired == -1) { if (this.fired == -1) {
if (this.canceller) { if (this.canceller) {
@ -50,10 +54,15 @@ MochiKit.Async.Deferred.prototype = {
this.silentlyCancelled = true; this.silentlyCancelled = true;
} }
if (this.fired == -1) { if (this.fired == -1) {
this.errback(new self.CancelledError(this)); if (typeof(e) === 'string') {
e = new self.GenericError(e);
} else if (!(e instanceof Error)) {
e = new self.CancelledError(this);
}
this.errback(e);
} }
} else if ((this.fired === 0) && (this.results[0] instanceof self.Deferred)) { } else if ((this.fired === 0) && (this.results[0] instanceof self.Deferred)) {
this.results[0].cancel(); this.results[0].cancel(e);
} }
}, },
@ -65,7 +74,9 @@ MochiKit.Async.Deferred.prototype = {
***/ ***/
this.fired = ((res instanceof Error) ? 1 : 0); this.fired = ((res instanceof Error) ? 1 : 0);
this.results[this.fired] = res; this.results[this.fired] = res;
this._fire(); if (this.paused === 0) {
this._fire();
}
}, },
_check: function () { _check: function () {
@ -129,6 +140,9 @@ MochiKit.Async.Deferred.prototype = {
if (this.chained) { if (this.chained) {
throw new Error("Chained Deferreds can not be re-used"); throw new Error("Chained Deferreds can not be re-used");
} }
if (this.finalized) {
throw new Error("Finalized Deferreds can not be re-used");
}
this.chain.push([cb, eb]); this.chain.push([cb, eb]);
if (this.fired >= 0) { if (this.fired >= 0) {
this._fire(); this._fire();
@ -136,6 +150,24 @@ MochiKit.Async.Deferred.prototype = {
return this; return this;
}, },
/** @id MochiKit.Async.Deferred.prototype.setFinalizer */
setFinalizer: function (fn) {
if (this.chained) {
throw new Error("Chained Deferreds can not be re-used");
}
if (this.finalized) {
throw new Error("Finalized Deferreds can not be re-used");
}
if (arguments.length > 1) {
fn = MochiKit.Base.partial.apply(null, arguments);
}
this._finalizer = fn;
if (this.fired >= 0) {
this._fire();
}
return this;
},
_fire: function () { _fire: function () {
/*** /***
@ -160,11 +192,8 @@ MochiKit.Async.Deferred.prototype = {
fired = ((res instanceof Error) ? 1 : 0); fired = ((res instanceof Error) ? 1 : 0);
if (res instanceof MochiKit.Async.Deferred) { if (res instanceof MochiKit.Async.Deferred) {
cb = function (res) { cb = function (res) {
self._resback(res);
self.paused--; self.paused--;
if ((self.paused === 0) && (self.fired >= 0)) { self._resback(res);
self._fire();
}
}; };
this.paused++; this.paused++;
} }
@ -178,6 +207,10 @@ MochiKit.Async.Deferred.prototype = {
} }
this.fired = fired; this.fired = fired;
this.results[fired] = res; this.results[fired] = res;
if (this.chain.length == 0 && this.paused === 0 && this._finalizer) {
this.finalized = true;
this._finalizer(res);
}
if (cb && this.paused) { if (cb && this.paused) {
// this is for "tail recursion" in case the dependent deferred // this is for "tail recursion" in case the dependent deferred
// is already fired // is already fired
@ -249,7 +282,7 @@ MochiKit.Base.update(MochiKit.Async, {
var status = null; var status = null;
try { try {
status = this.status; status = this.status;
if (!status && m.isNotEmpty(this.responseText)) { if (!status && (this.response || m.isNotEmpty(this.responseText))) {
// 0 or undefined seems to mean cached or local // 0 or undefined seems to mean cached or local
status = 304; status = 304;
} }
@ -337,7 +370,8 @@ MochiKit.Base.update(MochiKit.Async, {
username: undefined, username: undefined,
password: undefined, password: undefined,
headers: undefined, headers: undefined,
mimeType: undefined mimeType: undefined,
responseType: undefined
*/ */
}, opts); }, opts);
var self = MochiKit.Async; var self = MochiKit.Async;
@ -371,6 +405,9 @@ MochiKit.Base.update(MochiKit.Async, {
req.setRequestHeader(name, value); req.setRequestHeader(name, value);
} }
} }
if ("responseType" in opts && "responseType" in req) {
req.responseType = opts.responseType;
}
return self.sendXMLHttpRequest(req, opts.sendContent); return self.sendXMLHttpRequest(req, opts.sendContent);
}, },
@ -404,16 +441,44 @@ MochiKit.Base.update(MochiKit.Async, {
return d; return d;
}, },
/** @id MochiKit.Async.loadScript */
loadScript: function (url) {
var d = new MochiKit.Async.Deferred();
var script = document.createElement("script");
script.type = "text/javascript";
script.src = url;
script.onload = function () {
script.onload = null;
script.onerror = null;
script.onreadystatechange = null;
script = null;
d.callback();
};
script.onerror = function (msg) {
script.onload = null;
script.onerror = null;
script.onreadystatechange = null;
script = null;
msg = "Failed to load script at " + url + ": " + msg;
d.errback(new URIError(msg, url));
}
script.onreadystatechange = function () {
if (script.readyState == "loaded" || script.readyState == "complete") {
script.onload();
} else {
// IE doesn't bother to report errors...
MochiKit.Async.callLater(10, script.onerror, "Script loading timed out")
}
};
document.getElementsByTagName("head")[0].appendChild(script);
return d;
},
/** @id MochiKit.Async.wait */ /** @id MochiKit.Async.wait */
wait: function (seconds, /* optional */value) { wait: function (seconds, /* optional */value) {
var d = new MochiKit.Async.Deferred(); var d = new MochiKit.Async.Deferred();
var m = MochiKit.Base; var cb = MochiKit.Base.bind("callback", d, value);
if (typeof(value) != 'undefined') { var timeout = setTimeout(cb, Math.floor(seconds * 1000));
d.addCallback(function () { return value; });
}
var timeout = setTimeout(
m.bind("callback", d),
Math.floor(seconds * 1000));
d.canceller = function () { d.canceller = function () {
try { try {
clearTimeout(timeout); clearTimeout(timeout);
@ -510,6 +575,7 @@ MochiKit.Async.DeferredList = function (list, /* optional */fireOnOneCallback, f
}; };
MochiKit.Async.DeferredList.prototype = new MochiKit.Async.Deferred(); MochiKit.Async.DeferredList.prototype = new MochiKit.Async.Deferred();
MochiKit.Async.DeferredList.prototype.constructor = MochiKit.Async.DeferredList;
MochiKit.Async.DeferredList.prototype._cbDeferred = function (index, succeeded, result) { MochiKit.Async.DeferredList.prototype._cbDeferred = function (index, succeeded, result) {
this.resultList[index] = [succeeded, result]; this.resultList[index] = [succeeded, result];

View File

@ -8,33 +8,43 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
***/ ***/
if (typeof(MochiKit) == 'undefined') {
MochiKit = {}; // MochiKit module (namespace)
} var MochiKit = MochiKit || {};
if (typeof(MochiKit.__export__) == "undefined") { if (typeof(MochiKit.__export__) == "undefined") {
MochiKit.__export__ = true; MochiKit.__export__ = true;
} }
if (typeof(MochiKit.Base) == 'undefined') { MochiKit.NAME = "MochiKit";
MochiKit.Base = {}; MochiKit.VERSION = "1.5";
} MochiKit.__repr__ = function () {
return "[" + this.NAME + " " + this.VERSION + "]";
};
MochiKit.toString = function () {
return this.__repr__();
};
// MochiKit.Base module
MochiKit.Base = MochiKit.Base || {};
/** /**
* Registers a new MochiKit module. This function will insert a new * Creates a new module in a parent namespace. This function will
* property into the "MochiKit" object, making sure that all * create a new empty module object with "NAME", "VERSION",
* dependency modules have already been inserted. It will also make * "toString" and "__repr__" properties. This object will be inserted into the parent object
* sure that the appropriate properties and default module functions * using the specified name (i.e. parent[name] = module). It will
* are defined. * also verify that all the dependency modules are defined in the
* parent, or an error will be thrown.
* *
* @param {Object} parent the parent module (use "this" or "window" for
* a global module)
* @param {String} name the module name, e.g. "Base" * @param {String} name the module name, e.g. "Base"
* @param {String} version the module version, e.g. "1.5" * @param {String} version the module version, e.g. "1.5"
* @param {Array} deps the array of module dependencies (as strings) * @param {Array} [deps] the array of module dependencies (as strings)
*/ */
MochiKit.Base._module = function (name, version, deps) { MochiKit.Base.module = function (parent, name, version, deps) {
if (!(name in MochiKit)) { var module = parent[name] = parent[name] || {};
MochiKit[name] = {}; var prefix = (parent.NAME ? parent.NAME + "." : "");
} module.NAME = prefix + name;
var module = MochiKit[name];
module.NAME = "MochiKit." + name;
module.VERSION = version; module.VERSION = version;
module.__repr__ = function () { module.__repr__ = function () {
return "[" + this.NAME + " " + this.VERSION + "]"; return "[" + this.NAME + " " + this.VERSION + "]";
@ -42,14 +52,15 @@ MochiKit.Base._module = function (name, version, deps) {
module.toString = function () { module.toString = function () {
return this.__repr__(); return this.__repr__();
}; };
for (var i = 0; i < deps.length; i++) { for (var i = 0; deps != null && i < deps.length; i++) {
if (!(deps[i] in MochiKit)) { if (!(deps[i] in parent)) {
throw 'MochiKit.' + name + ' depends on MochiKit.' + deps[i] + '!'; throw module.NAME + ' depends on ' + prefix + deps[i] + '!';
} }
} }
} return module;
};
MochiKit.Base._module("Base", "1.5", []); MochiKit.Base.module(MochiKit, "Base", "1.5", []);
/** @id MochiKit.Base.update */ /** @id MochiKit.Base.update */
MochiKit.Base.update = function (self, obj/*, ... */) { MochiKit.Base.update = function (self, obj/*, ... */) {
@ -240,6 +251,7 @@ MochiKit.Base.update(MochiKit.Base, {
_newNamedError: function (module, name, func) { _newNamedError: function (module, name, func) {
func.prototype = new MochiKit.Base.NamedError(module.NAME + "." + name); func.prototype = new MochiKit.Base.NamedError(module.NAME + "." + name);
func.prototype.constructor = func;
module[name] = func; module[name] = func;
}, },
@ -351,7 +363,7 @@ MochiKit.Base.update(MochiKit.Base, {
} else if (typeof(value) === "number" || value instanceof Number) { } else if (typeof(value) === "number" || value instanceof Number) {
return !isNaN(value) && value != 0; return !isNaN(value) && value != 0;
} else if (value != null && typeof(value.length) === "number") { } else if (value != null && typeof(value.length) === "number") {
return value.length !== 0 return value.length !== 0;
} else { } else {
return value != null; return value != null;
} }
@ -675,6 +687,9 @@ MochiKit.Base.update(MochiKit.Base, {
newfunc.im_self = im_self; newfunc.im_self = im_self;
newfunc.im_func = im_func; newfunc.im_func = im_func;
newfunc.im_preargs = im_preargs; newfunc.im_preargs = im_preargs;
if (typeof(im_func.NAME) == 'string') {
newfunc.NAME = "bind(" + im_func.NAME + ",...)";
}
return newfunc; return newfunc;
}, },
@ -788,11 +803,14 @@ MochiKit.Base.update(MochiKit.Base, {
} }
return MochiKit.Base.reprRegistry.match(o); return MochiKit.Base.reprRegistry.match(o);
} catch (e) { } catch (e) {
if (typeof(o.NAME) == 'string' && ( try {
o.toString == Function.prototype.toString || if (typeof(o.NAME) == 'string' && (
o.toString == Object.prototype.toString o.toString == Function.prototype.toString ||
)) { o.toString == Object.prototype.toString
return o.NAME; )) {
return o.NAME;
}
} catch (ignore) {
} }
} }
try { try {
@ -840,16 +858,13 @@ MochiKit.Base.update(MochiKit.Base, {
/** @id MochiKit.Base.evalJSON */ /** @id MochiKit.Base.evalJSON */
evalJSON: function () { evalJSON: function (jsonText) {
return eval("(" + MochiKit.Base._filterJSON(arguments[0]) + ")"); return eval("(" + MochiKit.Base._filterJSON(jsonText) + ")");
}, },
_filterJSON: function (s) { _filterJSON: function (s) {
var m = s.match(/^\s*\/\*(.*)\*\/\s*$/); var m = s.match(/^\s*\/\*(.*)\*\/\s*$/);
if (m) { return (m) ? m[1] : s;
return m[1];
}
return s;
}, },
/** @id MochiKit.Base.serializeJSON */ /** @id MochiKit.Base.serializeJSON */
@ -894,6 +909,12 @@ MochiKit.Base.update(MochiKit.Base, {
// short-circuit for objects that support "json" serialization // short-circuit for objects that support "json" serialization
// if they return "self" then just pass-through... // if they return "self" then just pass-through...
var newObj; var newObj;
if (typeof(o.toJSON) == "function") {
newObj = o.toJSON();
if (o !== newObj) {
return me(newObj);
}
}
if (typeof(o.__json__) == "function") { if (typeof(o.__json__) == "function") {
newObj = o.__json__(); newObj = o.__json__();
if (o !== newObj) { if (o !== newObj) {
@ -1100,7 +1121,7 @@ MochiKit.Base.update(MochiKit.Base, {
if (data.length === 0) { if (data.length === 0) {
throw new TypeError('median() requires at least one argument'); throw new TypeError('median() requires at least one argument');
} }
data.sort(compare); data.sort(MochiKit.Base.compare);
if (data.length % 2 == 0) { if (data.length % 2 == 0) {
var upper = data.length / 2; var upper = data.length / 2;
return (data[upper] + data[upper - 1]) / 2; return (data[upper] + data[upper - 1]) / 2;
@ -1290,19 +1311,45 @@ MochiKit.Base.AdapterRegistry.prototype = {
} }
}; };
MochiKit.Base._exportSymbols = function (globals, module) { /**
if (MochiKit.__export__ === false || module.__export__ === false) { * Exports all symbols from one or more modules into the specified
return; * namespace (or scope). This is similar to MochiKit.Base.update(),
} * except for special handling of the "__export__" flag, contained
for (var k in module) { * sub-modules (exported recursively), and names starting with "_".
var v = module[k]; *
if (v != null) { * @param {Object} namespace the object or scope to modify
var okName = (k[0] !== "_" && k !== "toString"); * @param {Object} module the module to export
if (v.__export__ === true || (v.__export__ !== false && okName)) { */
globals[k] = module[k]; MochiKit.Base.moduleExport = function (namespace, module/*, ...*/) {
var SKIP = { toString: true, NAME: true, VERSION: true };
var mods = MochiKit.Base.extend([], arguments, 1);
while ((module = mods.shift()) != null) {
for (var k in module) {
var v = module[k];
if (v != null) {
var flagSet = (typeof(v.__export__) == 'boolean');
var nameValid = (k[0] !== "_" && !SKIP[k]);
if (flagSet ? v.__export__ : nameValid) {
if (typeof(v) == 'object' && v.NAME && v.VERSION) {
mods.push(v);
} else {
namespace[k] = module[k];
}
}
} }
} }
} }
return namespace;
};
/**
* Identical to moduleExport, but also considers the global and
* module-specific "__export__" flag.
*/
MochiKit.Base._exportSymbols = function (namespace, module) {
if (MochiKit.__export__ !== false && module.__export__ !== false) {
MochiKit.Base.moduleExport(namespace, module);
}
}; };
/** /**
@ -1321,7 +1368,7 @@ MochiKit.Base._exportSymbols = function (globals, module) {
* @param {String} version the first version when the source function * @param {String} version the first version when the source function
* was deprecated (e.g. '1.4') * was deprecated (e.g. '1.4')
* @param {Boolean} [exportable] the exportable function flag, * @param {Boolean} [exportable] the exportable function flag,
* defaults to true * defaults to false
*/ */
MochiKit.Base._deprecated = function (module, name, target, version, exportable) { MochiKit.Base._deprecated = function (module, name, target, version, exportable) {
if (typeof(module) === 'string') { if (typeof(module) === 'string') {
@ -1349,11 +1396,9 @@ MochiKit.Base._deprecated = function (module, name, target, version, exportable)
} }
return MochiKit[targetModule][targetName].apply(this, arguments); return MochiKit[targetModule][targetName].apply(this, arguments);
}; };
if (exportable === false) { func.__export__ = (exportable === true);
func.__export__ = false;
}
module[name] = func; module[name] = func;
} };
MochiKit.Base.__new__ = function () { MochiKit.Base.__new__ = function () {
var m = this; var m = this;
@ -1362,8 +1407,8 @@ MochiKit.Base.__new__ = function () {
m.noop = m.operator.identity; m.noop = m.operator.identity;
// Backwards compat // Backwards compat
m._deprecated(m, 'forward', 'MochiKit.Base.forwardCall', '1.3', false); m._deprecated(m, 'forward', 'MochiKit.Base.forwardCall', '1.3');
m._deprecated(m, 'find', 'MochiKit.Base.findValue', '1.3', false); m._deprecated(m, 'find', 'MochiKit.Base.findValue', '1.3');
if (typeof(encodeURIComponent) != "undefined") { if (typeof(encodeURIComponent) != "undefined") {
/** @id MochiKit.Base.urlEncode */ /** @id MochiKit.Base.urlEncode */
@ -1375,7 +1420,7 @@ MochiKit.Base.__new__ = function () {
return escape(unencoded return escape(unencoded
).replace(/\+/g, '%2B' ).replace(/\+/g, '%2B'
).replace(/\"/g,'%22' ).replace(/\"/g,'%22'
).rval.replace(/\'/g, '%27'); ).replace(/\'/g, '%27');
}; };
} }
@ -1385,6 +1430,7 @@ MochiKit.Base.__new__ = function () {
this.name = name; this.name = name;
}; };
m.NamedError.prototype = new Error(); m.NamedError.prototype = new Error();
m.NamedError.prototype.constructor = m.NamedError;
m.update(m.NamedError.prototype, { m.update(m.NamedError.prototype, {
repr: function () { repr: function () {
if (this.message && this.message != this.name) { if (this.message && this.message != this.name) {
@ -1409,6 +1455,8 @@ MochiKit.Base.__new__ = function () {
m.isCallable = m.typeMatcher('function'); m.isCallable = m.typeMatcher('function');
/** @id MochiKit.Base.isUndefined */ /** @id MochiKit.Base.isUndefined */
m.isUndefined = m.typeMatcher('undefined'); m.isUndefined = m.typeMatcher('undefined');
/** @id MochiKit.Base.isValue */
m.isValue = m.typeMatcher('boolean', 'number', 'string');
/** @id MochiKit.Base.merge */ /** @id MochiKit.Base.merge */
m.merge = m.partial(m.update, null); m.merge = m.partial(m.update, null);

View File

@ -8,7 +8,7 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
***/ ***/
MochiKit.Base._module('Color', '1.5', ['Base', 'DOM', 'Style']); MochiKit.Base.module(MochiKit, 'Color', '1.5', ['Base', 'DOM', 'Style']);
/** @id MochiKit.Color.Color */ /** @id MochiKit.Color.Color */
MochiKit.Color.Color = function (red, green, blue, alpha) { MochiKit.Color.Color = function (red, green, blue, alpha) {
@ -112,7 +112,7 @@ MochiKit.Color.Color.prototype = {
/** @id MochiKit.Color.Color.prototype.isLight */ /** @id MochiKit.Color.Color.prototype.isLight */
isLight: function () { isLight: function () {
return this.asHSL().b > 0.5; return this.asHSL().l > 0.5;
}, },
/** @id MochiKit.Color.Color.prototype.isDark */ /** @id MochiKit.Color.Color.prototype.isDark */
@ -641,19 +641,10 @@ MochiKit.Base.update(MochiKit.Color, {
yellow: [1, 1, 0] yellow: [1, 1, 0]
}; };
var makeColor = function (name, r, g, b, a) {
var rval = this.fromRGB(r, g, b, a);
this[name] = function () { return rval; };
return rval;
};
for (var k in colors) { for (var k in colors) {
var name = k + "Color"; var name = k + "Color";
var bindArgs = m.concat( var value = this.Color.fromRGB.apply(this.Color, colors[k]);
[makeColor, this.Color, name], this.Color[name] = m.partial(m.operator.identity, value);
colors[k]
);
this.Color[name] = m.bind.apply(null, bindArgs);
} }
var isColor = function () { var isColor = function () {

View File

@ -8,7 +8,7 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
***/ ***/
MochiKit.Base._module('DOM', '1.5', ['Base']); MochiKit.Base.module(MochiKit, 'DOM', '1.5', ['Base']);
MochiKit.Base.update(MochiKit.DOM, { MochiKit.Base.update(MochiKit.DOM, {
@ -297,11 +297,11 @@ MochiKit.Base.update(MochiKit.DOM, {
updateNodeAttributes: function (node, attrs) { updateNodeAttributes: function (node, attrs) {
var elem = node; var elem = node;
var self = MochiKit.DOM; var self = MochiKit.DOM;
var base = MochiKit.Base;
if (typeof(node) == 'string') { if (typeof(node) == 'string') {
elem = self.getElement(node); elem = self.getElement(node);
} }
if (attrs) { if (attrs) {
var updatetree = MochiKit.Base.updatetree;
if (self.attributeArray.compliant) { if (self.attributeArray.compliant) {
// not IE, good. // not IE, good.
for (var k in attrs) { for (var k in attrs) {
@ -310,7 +310,7 @@ MochiKit.Base.update(MochiKit.DOM, {
if (k == "style" && MochiKit.Style) { if (k == "style" && MochiKit.Style) {
MochiKit.Style.setStyle(elem, v); MochiKit.Style.setStyle(elem, v);
} else { } else {
updatetree(elem[k], v); base.updatetree(elem[k], v);
} }
} else if (k.substring(0, 2) == "on") { } else if (k.substring(0, 2) == "on") {
if (typeof(v) == "string") { if (typeof(v) == "string") {
@ -320,8 +320,8 @@ MochiKit.Base.update(MochiKit.DOM, {
} else { } else {
elem.setAttribute(k, v); elem.setAttribute(k, v);
} }
if (typeof(elem[k]) == "string" && elem[k] != v) { if (base.isValue(elem[k]) && elem[k] != v) {
// Also set property for weird attributes (see #302) // Also set property for weird attributes (see #302 & #335)
elem[k] = v; elem[k] = v;
} }
} }
@ -340,7 +340,7 @@ MochiKit.Base.update(MochiKit.DOM, {
if (k == "style" && MochiKit.Style) { if (k == "style" && MochiKit.Style) {
MochiKit.Style.setStyle(elem, v); MochiKit.Style.setStyle(elem, v);
} else { } else {
updatetree(elem[k], v); base.updatetree(elem[k], v);
} }
} else if (k.substring(0, 2) == "on") { } else if (k.substring(0, 2) == "on") {
if (typeof(v) == "string") { if (typeof(v) == "string") {
@ -350,8 +350,8 @@ MochiKit.Base.update(MochiKit.DOM, {
} else { } else {
elem.setAttribute(k, v); elem.setAttribute(k, v);
} }
if (typeof(elem[k]) == "string" && elem[k] != v) { if (base.isValue(elem[k]) && elem[k] != v) {
// Also set property for weird attributes (see #302) // Also set property for weird attributes (see #302 & #335)
elem[k] = v; elem[k] = v;
} }
} }
@ -990,6 +990,7 @@ MochiKit.Base.update(MochiKit.DOM, {
"for": "htmlFor", "for": "htmlFor",
"readonly": "readOnly", "readonly": "readOnly",
"colspan": "colSpan", "colspan": "colSpan",
"rowspan": "rowSpan",
"bgcolor": "bgColor", "bgcolor": "bgColor",
"cellspacing": "cellSpacing", "cellspacing": "cellSpacing",
"cellpadding": "cellPadding" "cellpadding": "cellPadding"
@ -1007,7 +1008,7 @@ MochiKit.Base.update(MochiKit.DOM, {
// Backwards compatibility aliases // Backwards compatibility aliases
/** @id MochiKit.DOM.computedStyle */ /** @id MochiKit.DOM.computedStyle */
m._deprecated(this, 'computedStyle', 'MochiKit.Style.getStyle', '1.4'); m._deprecated(this, 'computedStyle', 'MochiKit.Style.getStyle', '1.4', true);
/** @id MochiKit.DOM.elementDimensions */ /** @id MochiKit.DOM.elementDimensions */
m._deprecated(this, 'elementDimensions', 'MochiKit.Style.getElementDimensions', '1.4'); m._deprecated(this, 'elementDimensions', 'MochiKit.Style.getElementDimensions', '1.4');
/** @id MochiKit.DOM.elementPosition */ /** @id MochiKit.DOM.elementPosition */
@ -1041,48 +1042,38 @@ MochiKit.Base.update(MochiKit.DOM, {
// shorthand for createDOM syntax // shorthand for createDOM syntax
var createDOMFunc = this.createDOMFunc; var createDOMFunc = this.createDOMFunc;
/** @id MochiKit.DOM.UL */ /** @id MochiKit.DOM.A */
this.UL = createDOMFunc("ul"); this.A = createDOMFunc("a");
/** @id MochiKit.DOM.OL */ /** @id MochiKit.DOM.ARTICLE */
this.OL = createDOMFunc("ol"); this.ARTICLE = createDOMFunc("article");
/** @id MochiKit.DOM.LI */ /** @id MochiKit.DOM.ASIDE */
this.LI = createDOMFunc("li"); this.ASIDE = createDOMFunc("aside");
/** @id MochiKit.DOM.BR */
this.BR = createDOMFunc("br");
/** @id MochiKit.DOM.BUTTON */
this.BUTTON = createDOMFunc("button");
/** @id MochiKit.DOM.CANVAS */
this.CANVAS = createDOMFunc("canvas");
/** @id MochiKit.DOM.CAPTION */
this.CAPTION = createDOMFunc("caption");
/** @id MochiKit.DOM.DD */
this.DD = createDOMFunc("dd");
/** @id MochiKit.DOM.DIV */
this.DIV = createDOMFunc("div");
/** @id MochiKit.DOM.DL */ /** @id MochiKit.DOM.DL */
this.DL = createDOMFunc("dl"); this.DL = createDOMFunc("dl");
/** @id MochiKit.DOM.DT */ /** @id MochiKit.DOM.DT */
this.DT = createDOMFunc("dt"); this.DT = createDOMFunc("dt");
/** @id MochiKit.DOM.DD */ /** @id MochiKit.DOM.FIELDSET */
this.DD = createDOMFunc("dd"); this.FIELDSET = createDOMFunc("fieldset");
/** @id MochiKit.DOM.TD */ /** @id MochiKit.DOM.FIGURE */
this.TD = createDOMFunc("td"); this.FIGURE = createDOMFunc("figure");
/** @id MochiKit.DOM.TR */ /** @id MochiKit.DOM.FIGCAPTION */
this.TR = createDOMFunc("tr"); this.FIGCAPTION = createDOMFunc("figcaption");
/** @id MochiKit.DOM.TBODY */ /** @id MochiKit.DOM.FOOTER */
this.TBODY = createDOMFunc("tbody"); this.FOOTER = createDOMFunc("footer");
/** @id MochiKit.DOM.THEAD */ /** @id MochiKit.DOM.FORM */
this.THEAD = createDOMFunc("thead"); this.FORM = createDOMFunc("form");
/** @id MochiKit.DOM.TFOOT */
this.TFOOT = createDOMFunc("tfoot");
/** @id MochiKit.DOM.TABLE */
this.TABLE = createDOMFunc("table");
/** @id MochiKit.DOM.TH */
this.TH = createDOMFunc("th");
/** @id MochiKit.DOM.INPUT */
this.INPUT = createDOMFunc("input");
/** @id MochiKit.DOM.SPAN */
this.SPAN = createDOMFunc("span");
/** @id MochiKit.DOM.A */
this.A = createDOMFunc("a");
/** @id MochiKit.DOM.DIV */
this.DIV = createDOMFunc("div");
/** @id MochiKit.DOM.IMG */
this.IMG = createDOMFunc("img");
/** @id MochiKit.DOM.BUTTON */
this.BUTTON = createDOMFunc("button");
/** @id MochiKit.DOM.TT */
this.TT = createDOMFunc("tt");
/** @id MochiKit.DOM.PRE */
this.PRE = createDOMFunc("pre");
/** @id MochiKit.DOM.H1 */ /** @id MochiKit.DOM.H1 */
this.H1 = createDOMFunc("h1"); this.H1 = createDOMFunc("h1");
/** @id MochiKit.DOM.H2 */ /** @id MochiKit.DOM.H2 */
@ -1095,38 +1086,82 @@ MochiKit.Base.update(MochiKit.DOM, {
this.H5 = createDOMFunc("h5"); this.H5 = createDOMFunc("h5");
/** @id MochiKit.DOM.H6 */ /** @id MochiKit.DOM.H6 */
this.H6 = createDOMFunc("h6"); this.H6 = createDOMFunc("h6");
/** @id MochiKit.DOM.BR */ /** @id MochiKit.DOM.HEADER */
this.BR = createDOMFunc("br"); this.HEADER = createDOMFunc("header");
/** @id MochiKit.DOM.HGROUP */
this.HGROUP = createDOMFunc("hgroup");
/** @id MochiKit.DOM.HR */ /** @id MochiKit.DOM.HR */
this.HR = createDOMFunc("hr"); this.HR = createDOMFunc("hr");
/** @id MochiKit.DOM.IFRAME */
this.IFRAME = createDOMFunc("iframe");
/** @id MochiKit.DOM.IMG */
this.IMG = createDOMFunc("img");
/** @id MochiKit.DOM.INPUT */
this.INPUT = createDOMFunc("input");
/** @id MochiKit.DOM.LABEL */ /** @id MochiKit.DOM.LABEL */
this.LABEL = createDOMFunc("label"); this.LABEL = createDOMFunc("label");
/** @id MochiKit.DOM.TEXTAREA */
this.TEXTAREA = createDOMFunc("textarea");
/** @id MochiKit.DOM.FORM */
this.FORM = createDOMFunc("form");
/** @id MochiKit.DOM.P */
this.P = createDOMFunc("p");
/** @id MochiKit.DOM.SELECT */
this.SELECT = createDOMFunc("select");
/** @id MochiKit.DOM.OPTION */
this.OPTION = createDOMFunc("option");
/** @id MochiKit.DOM.OPTGROUP */
this.OPTGROUP = createDOMFunc("optgroup");
/** @id MochiKit.DOM.LEGEND */ /** @id MochiKit.DOM.LEGEND */
this.LEGEND = createDOMFunc("legend"); this.LEGEND = createDOMFunc("legend");
/** @id MochiKit.DOM.FIELDSET */ /** @id MochiKit.DOM.LI */
this.FIELDSET = createDOMFunc("fieldset"); this.LI = createDOMFunc("li");
/** @id MochiKit.DOM.LINK */
this.LINK = createDOMFunc("link");
/** @id MochiKit.DOM.MARK */
this.MARK = createDOMFunc("mark");
/** @id MochiKit.DOM.METER */
this.METER = createDOMFunc("meter");
/** @id MochiKit.DOM.NAV */
this.NAV = createDOMFunc("nav");
/** @id MochiKit.DOM.OL */
this.OL = createDOMFunc("ol");
/** @id MochiKit.DOM.OPTGROUP */
this.OPTGROUP = createDOMFunc("optgroup");
/** @id MochiKit.DOM.OPTION */
this.OPTION = createDOMFunc("option");
/** @id MochiKit.DOM.P */
this.P = createDOMFunc("p");
/** @id MochiKit.DOM.PRE */
this.PRE = createDOMFunc("pre");
/** @id MochiKit.DOM.PROGRESS */
this.PROGRESS = createDOMFunc("progress");
/** @id MochiKit.DOM.SCRIPT */
this.SCRIPT = createDOMFunc("script");
/** @id MochiKit.DOM.SECTION */
this.SECTION = createDOMFunc("section");
/** @id MochiKit.DOM.SELECT */
this.SELECT = createDOMFunc("select");
/** @id MochiKit.DOM.SPAN */
this.SPAN = createDOMFunc("span");
/** @id MochiKit.DOM.STRONG */ /** @id MochiKit.DOM.STRONG */
this.STRONG = createDOMFunc("strong"); this.STRONG = createDOMFunc("strong");
/** @id MochiKit.DOM.CANVAS */ /** @id MochiKit.DOM.STYLE */
this.CANVAS = createDOMFunc("canvas"); this.STYLE = createDOMFunc("style");
/** @id MochiKit.DOM.TABLE */
this.TABLE = createDOMFunc("table");
/** @id MochiKit.DOM.TBODY */
this.TBODY = createDOMFunc("tbody");
/** @id MochiKit.DOM.TD */
this.TD = createDOMFunc("td");
/** @id MochiKit.DOM.TEXTAREA */
this.TEXTAREA = createDOMFunc("textarea");
/** @id MochiKit.DOM.TFOOT */
this.TFOOT = createDOMFunc("tfoot");
/** @id MochiKit.DOM.TH */
this.TH = createDOMFunc("th");
/** @id MochiKit.DOM.THEAD */
this.THEAD = createDOMFunc("thead");
/** @id MochiKit.DOM.TR */
this.TR = createDOMFunc("tr");
/** @id MochiKit.DOM.TT */
this.TT = createDOMFunc("tt");
/** @id MochiKit.DOM.UL */
this.UL = createDOMFunc("ul");
/** @id MochiKit.DOM.NBSP */
this.NBSP = "\u00a0";
/** @id MochiKit.DOM.$ */ /** @id MochiKit.DOM.$ */
this.$ = this.getElement; this.$ = this.getElement;
m.nameFunctions(this); m.nameFunctions(this);
} }
}); });

View File

@ -8,7 +8,7 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
***/ ***/
MochiKit.Base._module('DateTime', '1.5', ['Base']); MochiKit.Base.module(MochiKit, 'DateTime', '1.5', ['Base']);
/** @id MochiKit.DateTime.isoDate */ /** @id MochiKit.DateTime.isoDate */
MochiKit.DateTime.isoDate = function (str) { MochiKit.DateTime.isoDate = function (str) {
@ -20,10 +20,10 @@ MochiKit.DateTime.isoDate = function (str) {
if (iso.length === 0) { if (iso.length === 0) {
return null; return null;
} }
var date = new Date(iso[0], iso[1] - 1, iso[2]); var date = new Date(parseInt(iso[0], 10), parseInt(iso[1], 10) - 1, parseInt(iso[2], 10));
date.setFullYear(iso[0]); date.setFullYear(iso[0]);
date.setMonth(iso[1] - 1); date.setMonth(iso[1] - 1);
date.setDate(iso[2]); date.setDate(iso[2]);
return date; return date;
}; };
@ -80,15 +80,17 @@ MochiKit.DateTime.toISOTime = function (date, realISO/* = false */) {
if (typeof(date) == "undefined" || date === null) { if (typeof(date) == "undefined" || date === null) {
return null; return null;
} }
var hh = date.getHours(); var _padTwo = MochiKit.DateTime._padTwo;
var mm = date.getMinutes(); if (realISO) {
var ss = date.getSeconds(); // adjust date for UTC timezone
date = new Date(date.getTime() + (date.getTimezoneOffset() * 60000));
}
var lst = [ var lst = [
((realISO && (hh < 10)) ? "0" + hh : hh), (realISO ? _padTwo(date.getHours()) : date.getHours()),
((mm < 10) ? "0" + mm : mm), _padTwo(date.getMinutes()),
((ss < 10) ? "0" + ss : ss) _padTwo(date.getSeconds())
]; ];
return lst.join(":"); return lst.join(":") + (realISO ? "Z" : "");
}; };
/** @id MochiKit.DateTime.toISOTimeStamp */ /** @id MochiKit.DateTime.toISOTimeStamp */
@ -96,12 +98,13 @@ MochiKit.DateTime.toISOTimestamp = function (date, realISO/* = false*/) {
if (typeof(date) == "undefined" || date === null) { if (typeof(date) == "undefined" || date === null) {
return null; return null;
} }
var time = MochiKit.DateTime.toISOTime(date, realISO);
var sep = realISO ? "T" : " "; var sep = realISO ? "T" : " ";
var foot = realISO ? "Z" : "";
if (realISO) { if (realISO) {
// adjust date for UTC timezone
date = new Date(date.getTime() + (date.getTimezoneOffset() * 60000)); date = new Date(date.getTime() + (date.getTimezoneOffset() * 60000));
} }
return MochiKit.DateTime.toISODate(date) + sep + MochiKit.DateTime.toISOTime(date, realISO) + foot; return MochiKit.DateTime.toISODate(date) + sep + time;
}; };
/** @id MochiKit.DateTime.toISODate */ /** @id MochiKit.DateTime.toISODate */
@ -110,7 +113,7 @@ MochiKit.DateTime.toISODate = function (date) {
return null; return null;
} }
var _padTwo = MochiKit.DateTime._padTwo; var _padTwo = MochiKit.DateTime._padTwo;
var _padFour = MochiKit.DateTime._padFour; var _padFour = MochiKit.DateTime._padFour;
return [ return [
_padFour(date.getFullYear()), _padFour(date.getFullYear()),
_padTwo(date.getMonth() + 1), _padTwo(date.getMonth() + 1),
@ -133,14 +136,14 @@ MochiKit.DateTime._padTwo = function (n) {
}; };
MochiKit.DateTime._padFour = function(n) { MochiKit.DateTime._padFour = function(n) {
switch(n.toString().length) { switch(n.toString().length) {
case 1: return "000" + n; break; case 1: return "000" + n; break;
case 2: return "00" + n; break; case 2: return "00" + n; break;
case 3: return "0" + n; break; case 3: return "0" + n; break;
case 4: case 4:
default: default:
return n; return n;
} }
}; };
/** @id MochiKit.DateTime.toPaddedAmericanDate */ /** @id MochiKit.DateTime.toPaddedAmericanDate */

View File

@ -8,7 +8,7 @@ Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
***/ ***/
MochiKit.Base._module('DragAndDrop', '1.5', ['Base', 'Iter', 'DOM', 'Signal', 'Visual', 'Position']); MochiKit.Base.module(MochiKit, 'DragAndDrop', '1.5', ['Base', 'Iter', 'DOM', 'Signal', 'Visual', 'Position']);
MochiKit.DragAndDrop.Droppables = { MochiKit.DragAndDrop.Droppables = {
/*** /***
@ -306,8 +306,9 @@ MochiKit.DragAndDrop.Draggables = {
var pointer = event.mouse(); var pointer = event.mouse();
// Mozilla-based browsers fire successive mousemove events with // Mozilla-based browsers fire successive mousemove events with
// the same coordinates, prevent needless redrawing (moz bug?) // the same coordinates, prevent needless redrawing (moz bug?)
if (this._lastPointer && (MochiKit.Base.repr(this._lastPointer.page) == if (this._lastPointer &&
MochiKit.Base.repr(pointer.page))) { this._lastPointer.page.x == pointer.page.x &&
this._lastPointer.page.y == pointer.page.y) {
return; return;
} }
this._lastPointer = pointer; this._lastPointer = pointer;
@ -442,8 +443,8 @@ MochiKit.DragAndDrop.Draggable.prototype = {
currentDelta: function () { currentDelta: function () {
var s = MochiKit.Style.getStyle; var s = MochiKit.Style.getStyle;
return [ return [
parseInt(s(this.element, 'left') || '0'), parseInt(s(this.element, 'left') || '0', 10),
parseInt(s(this.element, 'top') || '0')]; parseInt(s(this.element, 'top') || '0', 10)];
}, },
/** @id MochiKit.DragAndDrop.initDrag */ /** @id MochiKit.DragAndDrop.initDrag */
@ -481,8 +482,7 @@ MochiKit.DragAndDrop.Draggable.prototype = {
this.options.selectclass); this.options.selectclass);
} }
if (this.options.zindex) { if (this.options.zindex) {
this.originalZ = parseInt(MochiKit.Style.getStyle(this.element, this.originalZ = MochiKit.Style.getStyle(this.element, 'z-index');
'z-index') || '0');
this.element.style.zIndex = this.options.zindex; this.element.style.zIndex = this.options.zindex;
} }

View File

@ -8,7 +8,7 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
***/ ***/
MochiKit.Base._module('Format', '1.5', ['Base']); MochiKit.Base.module(MochiKit, 'Format', '1.5', ['Base']);
MochiKit.Format._numberFormatter = function (placeholder, header, footer, locale, isPercent, precision, leadingZeros, separatorAt, trailingZeros) { MochiKit.Format._numberFormatter = function (placeholder, header, footer, locale, isPercent, precision, leadingZeros, separatorAt, trailingZeros) {
return function (num) { return function (num) {
@ -104,7 +104,7 @@ MochiKit.Format.numberFormatter = function (pattern, placeholder/* = "" */, loca
return [ return [
self.NAME, self.NAME,
"(", "(",
map(m.repr, args).join(", "), m.map(m.repr, args).join(", "),
")" ")"
].join(""); ].join("");
}; };
@ -142,7 +142,7 @@ MochiKit.Format.twoDigitAverage = function (numerator, denominator) {
/** @id MochiKit.Format.twoDigitFloat */ /** @id MochiKit.Format.twoDigitFloat */
MochiKit.Format.twoDigitFloat = function (aNumber) { MochiKit.Format.twoDigitFloat = function (aNumber) {
var res = roundToFixed(aNumber, 2); var res = MochiKit.Format.roundToFixed(aNumber, 2);
if (res.indexOf(".00") > 0) { if (res.indexOf(".00") > 0) {
return res.substring(0, res.length - 3); return res.substring(0, res.length - 3);
} else if (res.charAt(res.length - 1) == "0") { } else if (res.charAt(res.length - 1) == "0") {
@ -193,7 +193,7 @@ MochiKit.Format.truncToFixed = function (aNumber, precision) {
fixed = MochiKit.Format._shiftNumber(fixed, 0); fixed = MochiKit.Format._shiftNumber(fixed, 0);
} }
return fixed; return fixed;
} };
/** @id MochiKit.Format.roundToFixed */ /** @id MochiKit.Format.roundToFixed */
MochiKit.Format.roundToFixed = function (aNumber, precision) { MochiKit.Format.roundToFixed = function (aNumber, precision) {
@ -205,7 +205,7 @@ MochiKit.Format.roundToFixed = function (aNumber, precision) {
fixed = MochiKit.Format._shiftNumber(str, -precision); fixed = MochiKit.Format._shiftNumber(str, -precision);
} }
return fixed; return fixed;
} };
/** /**
* Converts a number to a fixed format string. This function handles * Converts a number to a fixed format string. This function handles
@ -221,7 +221,7 @@ MochiKit.Format.roundToFixed = function (aNumber, precision) {
MochiKit.Format._numberToFixed = function (aNumber, precision) { MochiKit.Format._numberToFixed = function (aNumber, precision) {
var str = aNumber.toString(); var str = aNumber.toString();
var parts = str.split(/[eE]/); var parts = str.split(/[eE]/);
var exp = (parts.length === 1) ? 0 : parseInt(parts[1]) || 0; var exp = (parts.length === 1) ? 0 : parseInt(parts[1], 10) || 0;
var fixed = MochiKit.Format._shiftNumber(parts[0], exp); var fixed = MochiKit.Format._shiftNumber(parts[0], exp);
parts = fixed.split(/\./); parts = fixed.split(/\./);
var whole = parts[0]; var whole = parts[0];
@ -234,7 +234,7 @@ MochiKit.Format._numberToFixed = function (aNumber, precision) {
} else { } else {
return whole; return whole;
} }
} };
/** /**
* Shifts the decimal dot location in a fixed format number string. * Shifts the decimal dot location in a fixed format number string.
@ -275,7 +275,7 @@ MochiKit.Format._shiftNumber = function (num, exp) {
num = "-" + num.substring(2); num = "-" + num.substring(2);
} }
return num; return num;
} };
/** @id MochiKit.Format.percentFormat */ /** @id MochiKit.Format.percentFormat */
MochiKit.Format.percentFormat = function (aNumber) { MochiKit.Format.percentFormat = function (aNumber) {

View File

@ -8,7 +8,7 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
***/ ***/
MochiKit.Base._module('Iter', '1.5', ['Base']); MochiKit.Base.module(MochiKit, 'Iter', '1.5', ['Base']);
MochiKit.Base.update(MochiKit.Iter, { MochiKit.Base.update(MochiKit.Iter, {
/** @id MochiKit.Iter.registerIteratorFactory */ /** @id MochiKit.Iter.registerIteratorFactory */
@ -222,14 +222,15 @@ MochiKit.Base.update(MochiKit.Iter, {
}, },
toString: m.forwardCall("repr"), toString: m.forwardCall("repr"),
next: function () { next: function () {
if (start >= stop) {
throw self.StopIteration;
}
var rval; var rval;
while (i < start) { while (i < start) {
rval = seq.next(); rval = seq.next();
i++; i++;
} }
if (start >= stop) {
throw self.StopIteration;
}
start += step; start += step;
return rval; return rval;
} }
@ -280,15 +281,12 @@ MochiKit.Base.update(MochiKit.Iter, {
next: function () { next: function () {
while (argiter.length > 1) { while (argiter.length > 1) {
try { try {
var result = argiter[0].next(); return argiter[0].next();
return result;
} catch (e) { } catch (e) {
if (e != self.StopIteration) { if (e != self.StopIteration) {
throw e; throw e;
} }
argiter.shift(); argiter.shift();
var result = argiter[0].next();
return result;
} }
} }
if (argiter.length == 1) { if (argiter.length == 1) {
@ -413,7 +411,7 @@ MochiKit.Base.update(MochiKit.Iter, {
var self = MochiKit.Iter; var self = MochiKit.Iter;
iterable = self.iter(iterable); iterable = self.iter(iterable);
var rval = []; rval = [];
var a_val; var a_val;
try { try {
while (true) { while (true) {

View File

@ -8,7 +8,7 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
***/ ***/
MochiKit.Base._module('Logging', '1.5', ['Base']); MochiKit.Base.module(MochiKit, 'Logging', '1.5', ['Base']);
/** @id MochiKit.Logging.LogMessage */ /** @id MochiKit.Logging.LogMessage */
MochiKit.Logging.LogMessage = function (num, level, info) { MochiKit.Logging.LogMessage = function (num, level, info) {
@ -187,7 +187,7 @@ MochiKit.Logging.Logger.prototype = {
} }
var messages = this.getMessages(howMany); var messages = this.getMessages(howMany);
if (messages.length) { if (messages.length) {
var lst = map(function (m) { var lst = MochiKit.Base.map(function (m) {
return '\n [' + m.num + '] ' + m.level + ': ' + m.info.join(' '); return '\n [' + m.num + '] ' + m.level + ': ' + m.info.join(' ');
}, messages); }, messages);
lst.unshift('LAST ' + messages.length + ' MESSAGES:'); lst.unshift('LAST ' + messages.length + ' MESSAGES:');

View File

@ -8,7 +8,7 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
***/ ***/
MochiKit.Base._module('LoggingPane', '1.5', ['Base', 'Logging']); MochiKit.Base.module(MochiKit, 'LoggingPane', '1.5', ['Base', 'Logging']);
/** @id MochiKit.LoggingPane.createLoggingPane */ /** @id MochiKit.LoggingPane.createLoggingPane */
MochiKit.LoggingPane.createLoggingPane = function (inline/* = false */) { MochiKit.LoggingPane.createLoggingPane = function (inline/* = false */) {
@ -24,7 +24,10 @@ MochiKit.LoggingPane.createLoggingPane = function (inline/* = false */) {
return m._loggingPane; return m._loggingPane;
}; };
/** @id MochiKit.LoggingPane.LoggingPane */ /**
* @id MochiKit.LoggingPane.LoggingPane
* @constructor
*/
MochiKit.LoggingPane.LoggingPane = function (inline/* = false */, logger/* = MochiKit.Logging.logger */) { MochiKit.LoggingPane.LoggingPane = function (inline/* = false */, logger/* = MochiKit.Logging.logger */) {
/* Use a div if inline, pop up a window if not */ /* Use a div if inline, pop up a window if not */
@ -146,7 +149,7 @@ MochiKit.LoggingPane.LoggingPane = function (inline/* = false */, logger/* = Moc
infore = new RegExp(infoFilterField.value); infore = new RegExp(infoFilterField.value);
} catch(e) { } catch(e) {
/* If there was an error with the regexes, do no filtering */ /* If there was an error with the regexes, do no filtering */
logDebug("Error in filter regex: " + e.message); MochiKit.Logging.logDebug("Error in filter regex: " + e.message);
return null; return null;
} }
@ -184,7 +187,7 @@ MochiKit.LoggingPane.LoggingPane = function (inline/* = false */, logger/* = Moc
try { try {
try { try {
debugPane.loggingPane = null; debugPane.loggingPane = null;
} catch(e) { logFatal("Bookmarklet was closed incorrectly."); } } catch(e) { MochiKit.Logging.logFatal("Bookmarklet was closed incorrectly."); }
if (inline) { if (inline) {
debugPane.parentNode.removeChild(debugPane); debugPane.parentNode.removeChild(debugPane);
} else { } else {
@ -224,7 +227,7 @@ MochiKit.LoggingPane.LoggingPane = function (inline/* = false */, logger/* = Moc
/** @id MochiKit.LoggingPane.filterOnEnter */ /** @id MochiKit.LoggingPane.filterOnEnter */
var filterOnEnter = bind(function (event) { var filterOnEnter = bind(function (event) {
event = event || window.event; event = event || window.event;
key = event.which || event.keyCode; var key = event.which || event.keyCode;
if (key == 13) { if (key == 13) {
this.buildAndApplyFilter(); this.buildAndApplyFilter();
} }

View File

@ -8,17 +8,14 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
***/ ***/
if (typeof(MochiKit) == 'undefined') { var MochiKit = MochiKit || {};
MochiKit = {};
}
if (typeof(MochiKit.MochiKit) == 'undefined') { /** @id MochiKit.MochiKit */
/** @id MochiKit.MochiKit */ MochiKit.MochiKit = MochiKit.MochiKit || {};
MochiKit.MochiKit = {};
}
MochiKit.MochiKit.NAME = "MochiKit.MochiKit"; MochiKit.MochiKit.NAME = "MochiKit.MochiKit";
MochiKit.MochiKit.VERSION = "1.5"; MochiKit.MochiKit.VERSION = "1.5";
MochiKit.MochiKit.__export__ = false;
MochiKit.MochiKit.__repr__ = function () { MochiKit.MochiKit.__repr__ = function () {
return "[" + this.NAME + " " + this.VERSION + "]"; return "[" + this.NAME + " " + this.VERSION + "]";
}; };

View File

@ -8,16 +8,13 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
***/ ***/
if (typeof(MochiKit) == "undefined") { var MochiKit = MochiKit || {};
MochiKit = {};
}
if (typeof(MochiKit.MockDOM) == "undefined") { MochiKit.MockDOM = MochiKit.MockDOM || {};
MochiKit.MockDOM = {};
}
MochiKit.MockDOM.NAME = "MochiKit.MockDOM"; MochiKit.MockDOM.NAME = "MochiKit.MockDOM";
MochiKit.MockDOM.VERSION = "1.5"; MochiKit.MockDOM.VERSION = "1.5";
MochiKit.MockDOM.__export__ = false;
MochiKit.MockDOM.__repr__ = function () { MochiKit.MockDOM.__repr__ = function () {
return "[" + this.NAME + " " + this.VERSION + "]"; return "[" + this.NAME + " " + this.VERSION + "]";

View File

@ -8,7 +8,7 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
***/ ***/
MochiKit.Base._module('Position', '1.5', ['Base', 'DOM', 'Style']); MochiKit.Base.module(MochiKit, 'Position', '1.5', ['Base', 'DOM', 'Style']);
MochiKit.Base.update(MochiKit.Position, { MochiKit.Base.update(MochiKit.Position, {
// Don't export from this module // Don't export from this module

View File

@ -8,7 +8,7 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
***/ ***/
MochiKit.Base._module('Selector', '1.5', ['Base', 'DOM', 'Iter']); MochiKit.Base.module(MochiKit, 'Selector', '1.5', ['Base', 'DOM', 'Iter']);
MochiKit.Selector.Selector = function (expression) { MochiKit.Selector.Selector = function (expression) {
this.params = {classNames: [], pseudoClassNames: []}; this.params = {classNames: [], pseudoClassNames: []};
@ -127,8 +127,8 @@ MochiKit.Selector.Selector.prototype = {
a = 2; a = 2;
b = 0; b = 0;
} else { } else {
a = match[2] && parseInt(match) || null; a = match[2] && parseInt(match, 10) || null;
b = parseInt(match[3]); b = parseInt(match[3], 10);
} }
conditions.push('this.nthChild(element,' + a + ',' + b conditions.push('this.nthChild(element,' + a + ',' + b
+ ',' + !!pseudoClass.match('^nth-last') // Reverse + ',' + !!pseudoClass.match('^nth-last') // Reverse
@ -167,7 +167,7 @@ MochiKit.Selector.Selector.prototype = {
break; break;
case 'not': case 'not':
var subselector = new MochiKit.Selector.Selector(pseudoClassArgument); var subselector = new MochiKit.Selector.Selector(pseudoClassArgument);
conditions.push('!( ' + subselector.buildMatchExpression() + ')') conditions.push('!( ' + subselector.buildMatchExpression() + ')');
break; break;
} }
} }
@ -177,7 +177,7 @@ MochiKit.Selector.Selector.prototype = {
var value = 'MochiKit.DOM.getNodeAttribute(element, ' + repr(attribute.name) + ')'; var value = 'MochiKit.DOM.getNodeAttribute(element, ' + repr(attribute.name) + ')';
var splitValueBy = function (delimiter) { var splitValueBy = function (delimiter) {
return value + '.split(' + repr(delimiter) + ')'; return value + '.split(' + repr(delimiter) + ')';
} };
conditions.push(value + ' != null'); conditions.push(value + ' != null');
switch (attribute.operator) { switch (attribute.operator) {
case '=': case '=':
@ -352,6 +352,12 @@ MochiKit.Base.update(MochiKit.Selector, {
return res; return res;
}; };
return MochiKit.Base.flattenArray(MochiKit.Base.map(function (expression) { return MochiKit.Base.flattenArray(MochiKit.Base.map(function (expression) {
try {
var res = element.querySelectorAll(expression);
return Array.prototype.slice.call(res, 0);
} catch (ignore) {
// No querySelectorAll or extended expression syntax used
}
var nextScope = ""; var nextScope = "";
var reducer = function (results, expr) { var reducer = function (results, expr) {
var match = expr.match(/^[>+~]$/); var match = expr.match(/^[>+~]$/);

View File

@ -8,7 +8,7 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
***/ ***/
MochiKit.Base._module('Signal', '1.5', ['Base', 'DOM', 'Style']); MochiKit.Base.module(MochiKit, 'Signal', '1.5', ['Base', 'DOM']);
MochiKit.Signal._observers = []; MochiKit.Signal._observers = [];
@ -266,16 +266,17 @@ MochiKit.Base.update(MochiKit.Signal.Event.prototype, {
if (this.type() && ( if (this.type() && (
this.type().indexOf('mouse') === 0 || this.type().indexOf('mouse') === 0 ||
this.type().indexOf('drag') === 0 ||
this.type().indexOf('click') != -1 || this.type().indexOf('click') != -1 ||
this.type() == 'contextmenu')) { this.type() == 'contextmenu')) {
m.client = new MochiKit.Style.Coordinates(0, 0); m.client = { x: 0, y: 0 };
if (e.clientX || e.clientY) { if (e.clientX || e.clientY) {
m.client.x = (!e.clientX || e.clientX < 0) ? 0 : e.clientX; m.client.x = (!e.clientX || e.clientX < 0) ? 0 : e.clientX;
m.client.y = (!e.clientY || e.clientY < 0) ? 0 : e.clientY; m.client.y = (!e.clientY || e.clientY < 0) ? 0 : e.clientY;
} }
m.page = new MochiKit.Style.Coordinates(0, 0); m.page = { x: 0, y: 0 };
if (e.pageX || e.pageY) { if (e.pageX || e.pageY) {
m.page.x = (!e.pageX || e.pageX < 0) ? 0 : e.pageX; m.page.x = (!e.pageX || e.pageX < 0) ? 0 : e.pageX;
m.page.y = (!e.pageY || e.pageY < 0) ? 0 : e.pageY; m.page.y = (!e.pageY || e.pageY < 0) ? 0 : e.pageY;
@ -337,7 +338,7 @@ MochiKit.Base.update(MochiKit.Signal.Event.prototype, {
} }
} }
if (this.type() == 'mousewheel') { if (this.type() == 'mousewheel') {
m.wheel = new MochiKit.Style.Coordinates(0, 0); m.wheel = { x: 0, y: 0 };
if (e.wheelDeltaX || e.wheelDeltaY) { if (e.wheelDeltaX || e.wheelDeltaY) {
m.wheel.x = e.wheelDeltaX / -40 || 0; m.wheel.x = e.wheelDeltaX / -40 || 0;
m.wheel.y = e.wheelDeltaY / -40 || 0; m.wheel.y = e.wheelDeltaY / -40 || 0;
@ -672,6 +673,18 @@ MochiKit.Base.update(MochiKit.Signal, {
return ident; return ident;
}, },
/** @id MochiKit.Signal.connectOnce */
connectOnce: function (src, sig, objOrFunc/* optional */, funcOrStr) {
var self = MochiKit.Signal;
var ident1 = self.connect(src, sig, objOrFunc, funcOrStr);
var ident2;
ident2 = self.connect(src, sig, function() {
self.disconnect(ident1);
self.disconnect(ident2);
});
return ident1;
},
_disconnect: function (ident) { _disconnect: function (ident) {
// already disconnected // already disconnected
if (!ident.connected) { if (!ident.connected) {
@ -715,7 +728,7 @@ MochiKit.Base.update(MochiKit.Signal, {
var o = observers[i]; var o = observers[i];
if (o.source === src && o.signal === sig && o.objOrFunc === obj && o.funcOrStr === func) { if (o.source === src && o.signal === sig && o.objOrFunc === obj && o.funcOrStr === func) {
self._disconnect(o); self._disconnect(o);
if (!self._lock) { if (self._lock === 0) {
observers.splice(i, 1); observers.splice(i, 1);
} else { } else {
self._dirty = true; self._dirty = true;
@ -727,7 +740,7 @@ MochiKit.Base.update(MochiKit.Signal, {
var idx = m.findIdentical(observers, ident); var idx = m.findIdentical(observers, ident);
if (idx >= 0) { if (idx >= 0) {
self._disconnect(ident); self._disconnect(ident);
if (!self._lock) { if (self._lock === 0) {
observers.splice(idx, 1); observers.splice(idx, 1);
} else { } else {
self._dirty = true; self._dirty = true;
@ -743,7 +756,7 @@ MochiKit.Base.update(MochiKit.Signal, {
var self = MochiKit.Signal; var self = MochiKit.Signal;
var observers = self._observers; var observers = self._observers;
var disconnect = self._disconnect; var disconnect = self._disconnect;
var locked = self._lock; var lock = self._lock;
var dirty = self._dirty; var dirty = self._dirty;
if (typeof(funcOrStr) === 'undefined') { if (typeof(funcOrStr) === 'undefined') {
funcOrStr = null; funcOrStr = null;
@ -753,10 +766,10 @@ MochiKit.Base.update(MochiKit.Signal, {
if (ident.objOrFunc === objOrFunc && if (ident.objOrFunc === objOrFunc &&
(funcOrStr === null || ident.funcOrStr === funcOrStr)) { (funcOrStr === null || ident.funcOrStr === funcOrStr)) {
disconnect(ident); disconnect(ident);
if (locked) { if (lock === 0) {
dirty = true;
} else {
observers.splice(i, 1); observers.splice(i, 1);
} else {
dirty = true;
} }
} }
} }
@ -774,7 +787,7 @@ MochiKit.Base.update(MochiKit.Signal, {
var disconnect = self._disconnect; var disconnect = self._disconnect;
var observers = self._observers; var observers = self._observers;
var i, ident; var i, ident;
var locked = self._lock; var lock = self._lock;
var dirty = self._dirty; var dirty = self._dirty;
if (signals.length === 0) { if (signals.length === 0) {
// disconnect all // disconnect all
@ -782,7 +795,7 @@ MochiKit.Base.update(MochiKit.Signal, {
ident = observers[i]; ident = observers[i];
if (ident.source === src) { if (ident.source === src) {
disconnect(ident); disconnect(ident);
if (!locked) { if (lock === 0) {
observers.splice(i, 1); observers.splice(i, 1);
} else { } else {
dirty = true; dirty = true;
@ -798,7 +811,7 @@ MochiKit.Base.update(MochiKit.Signal, {
ident = observers[i]; ident = observers[i];
if (ident.source === src && ident.signal in sigs) { if (ident.source === src && ident.signal in sigs) {
disconnect(ident); disconnect(ident);
if (!locked) { if (lock === 0) {
observers.splice(i, 1); observers.splice(i, 1);
} else { } else {
dirty = true; dirty = true;
@ -818,7 +831,7 @@ MochiKit.Base.update(MochiKit.Signal, {
} }
var args = MochiKit.Base.extend(null, arguments, 2); var args = MochiKit.Base.extend(null, arguments, 2);
var errors = []; var errors = [];
self._lock = true; self._lock++;
for (var i = 0; i < observers.length; i++) { for (var i = 0; i < observers.length; i++) {
var ident = observers[i]; var ident = observers[i];
if (ident.source === src && ident.signal === sig && if (ident.source === src && ident.signal === sig &&
@ -837,8 +850,8 @@ MochiKit.Base.update(MochiKit.Signal, {
} }
} }
} }
self._lock = false; self._lock--;
if (self._dirty) { if (self._lock === 0 && self._dirty) {
self._dirty = false; self._dirty = false;
for (var i = observers.length - 1; i >= 0; i--) { for (var i = observers.length - 1; i >= 0; i--) {
if (!observers[i].connected) { if (!observers[i].connected) {
@ -861,7 +874,7 @@ MochiKit.Signal.__new__ = function (win) {
var m = MochiKit.Base; var m = MochiKit.Base;
this._document = document; this._document = document;
this._window = win; this._window = win;
this._lock = false; this._lock = 0;
this._dirty = false; this._dirty = false;
try { try {

View File

@ -6,7 +6,7 @@ See scriptaculous.js for full license.
***/ ***/
MochiKit.Base._module('Sortable', '1.5', ['Base', 'Iter', 'DOM', 'Position', 'DragAndDrop']); MochiKit.Base.module(MochiKit, 'Sortable', '1.5', ['Base', 'Iter', 'DOM', 'Position', 'DragAndDrop']);
MochiKit.Base.update(MochiKit.Sortable, { MochiKit.Base.update(MochiKit.Sortable, {
__export__: false, __export__: false,
@ -179,7 +179,7 @@ MochiKit.Base.update(MochiKit.Sortable, {
onhover: self.onHover, onhover: self.onHover,
tree: options.tree, tree: options.tree,
accept: options.accept accept: options.accept
} };
var options_for_tree = { var options_for_tree = {
onhover: self.onEmptyHover, onhover: self.onEmptyHover,
@ -187,7 +187,7 @@ MochiKit.Base.update(MochiKit.Sortable, {
containment: options.containment, containment: options.containment,
hoverclass: options.hoverclass, hoverclass: options.hoverclass,
accept: options.accept accept: options.accept
} };
// fix for gecko engine // fix for gecko engine
MochiKit.DOM.removeEmptyTextNodes(element); MochiKit.DOM.removeEmptyTextNodes(element);
@ -430,11 +430,11 @@ MochiKit.Base.update(MochiKit.Sortable, {
children: [], children: [],
position: parent.children.length, position: parent.children.length,
container: self._findChildrenElement(children[i], options.treeTag.toUpperCase()) container: self._findChildrenElement(children[i], options.treeTag.toUpperCase())
} };
/* Get the element containing the children and recurse over it */ /* Get the element containing the children and recurse over it */
if (child.container) { if (child.container) {
self._tree(child.container, options, child) self._tree(child.container, options, child);
} }
parent.children.push (child); parent.children.push (child);
@ -475,7 +475,7 @@ MochiKit.Base.update(MochiKit.Sortable, {
children: new Array, children: new Array,
container: element, container: element,
position: 0 position: 0
} };
return MochiKit.Sortable._tree(element, options, root); return MochiKit.Sortable._tree(element, options, root);
}, },

View File

@ -6,9 +6,12 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
(c) 2005-2006 Bob Ippolito, Beau Hartshorne. All rights Reserved. (c) 2005-2006 Bob Ippolito, Beau Hartshorne. All rights Reserved.
The MochiKit.Style.getElementPosition function is adapted from
YAHOO.util.Dom.getXY v0.9.0. which is copyrighted by Yahoo! Inc.
***/ ***/
MochiKit.Base._module('Style', '1.5', ['Base', 'DOM']); MochiKit.Base.module(MochiKit, 'Style', '1.5', ['Base', 'DOM']);
/** @id MochiKit.Style.Dimensions */ /** @id MochiKit.Style.Dimensions */
@ -179,7 +182,7 @@ MochiKit.Base.update(MochiKit.Style, {
o.nodeType == null && o.nodeType == null &&
typeof(o.x) == "number" && typeof(o.x) == "number" &&
typeof(o.y) == "number"; typeof(o.y) == "number";
} };
if (typeof(elem) == "string") { if (typeof(elem) == "string") {
elem = dom.getElement(elem); elem = dom.getElement(elem);
@ -197,7 +200,7 @@ MochiKit.Base.update(MochiKit.Style, {
var de = d.documentElement; var de = d.documentElement;
var b = d.body; var b = d.body;
if (!elem.parentNode && elem.x && elem.y) { if (isCoordinates(elem)) {
/* it's just a MochiKit.Style.Coordinates object */ /* it's just a MochiKit.Style.Coordinates object */
c.x += elem.x || 0; c.x += elem.x || 0;
c.y += elem.y || 0; c.y += elem.y || 0;
@ -228,8 +231,8 @@ MochiKit.Base.update(MochiKit.Style, {
if (parent != elem) { if (parent != elem) {
while (parent) { while (parent) {
c.x += parseInt(parent.style.borderLeftWidth) || 0; c.x += parseInt(parent.style.borderLeftWidth, 10) || 0;
c.y += parseInt(parent.style.borderTopWidth) || 0; c.y += parseInt(parent.style.borderTopWidth, 10) || 0;
c.x += parent.offsetLeft; c.x += parent.offsetLeft;
c.y += parent.offsetTop; c.y += parent.offsetTop;
parent = parent.offsetParent; parent = parent.offsetParent;
@ -390,7 +393,7 @@ MochiKit.Base.update(MochiKit.Style, {
if (contentSize) { if (contentSize) {
var tableCell = 'colSpan' in elem && 'rowSpan' in elem; var tableCell = 'colSpan' in elem && 'rowSpan' in elem;
var collapse = (tableCell && elem.parentNode && self.getStyle( var collapse = (tableCell && elem.parentNode && self.getStyle(
elem.parentNode, 'borderCollapse') == 'collapse') elem.parentNode, 'borderCollapse') == 'collapse');
if (collapse) { if (collapse) {
if (/MSIE/.test(navigator.userAgent)) { if (/MSIE/.test(navigator.userAgent)) {
var borderLeftQuota = elem.previousSibling? 0.5 : 1; var borderLeftQuota = elem.previousSibling? 0.5 : 1;
@ -543,8 +546,8 @@ MochiKit.Base.update(MochiKit.Style, {
} }
// Backwards compatibility aliases // Backwards compatibility aliases
m._deprecated(this, 'elementPosition', 'MochiKit.Style.getElementPosition', '1.3'); m._deprecated(this, 'elementPosition', 'MochiKit.Style.getElementPosition', '1.3', true);
m._deprecated(this, 'elementDimensions', 'MochiKit.Style.getElementDimensions', '1.3'); m._deprecated(this, 'elementDimensions', 'MochiKit.Style.getElementDimensions', '1.3', true);
this.hideElement = m.partial(this.setDisplayForElement, 'none'); this.hideElement = m.partial(this.setDisplayForElement, 'none');
// TODO: showElement could be improved by using getDefaultDisplay. // TODO: showElement could be improved by using getDefaultDisplay.

View File

@ -8,7 +8,7 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
***/ ***/
MochiKit.Base._module('Test', '1.5', ['Base']); MochiKit.Base.module(MochiKit, 'Test', '1.5', ['Base']);
MochiKit.Test.runTests = function (obj) { MochiKit.Test.runTests = function (obj) {
if (typeof(obj) == "string") { if (typeof(obj) == "string") {

View File

@ -8,7 +8,7 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
***/ ***/
MochiKit.Base._module('Text', '1.5', ['Base', 'Format']); MochiKit.Base.module(MochiKit, 'Text', '1.5', ['Base', 'Format']);
/** /**
* Checks if a text string starts with the specified substring. If * Checks if a text string starts with the specified substring. If
@ -22,7 +22,7 @@ MochiKit.Base._module('Text', '1.5', ['Base', 'Format']);
*/ */
MochiKit.Text.startsWith = function (substr, str) { MochiKit.Text.startsWith = function (substr, str) {
return str != null && substr != null && str.indexOf(substr) == 0; return str != null && substr != null && str.indexOf(substr) == 0;
} };
/** /**
* Checks if a text string ends with the specified substring. If * Checks if a text string ends with the specified substring. If
@ -37,7 +37,7 @@ MochiKit.Text.startsWith = function (substr, str) {
MochiKit.Text.endsWith = function (substr, str) { MochiKit.Text.endsWith = function (substr, str) {
return str != null && substr != null && return str != null && substr != null &&
str.lastIndexOf(substr) == Math.max(str.length - substr.length, 0); str.lastIndexOf(substr) == Math.max(str.length - substr.length, 0);
} };
/** /**
* Checks if a text string contains the specified substring. If * Checks if a text string contains the specified substring. If
@ -51,7 +51,7 @@ MochiKit.Text.endsWith = function (substr, str) {
*/ */
MochiKit.Text.contains = function (substr, str) { MochiKit.Text.contains = function (substr, str) {
return str != null && substr != null && str.indexOf(substr) >= 0; return str != null && substr != null && str.indexOf(substr) >= 0;
} };
/** /**
* Adds a character to the left-hand side of a string until it * Adds a character to the left-hand side of a string until it
@ -71,7 +71,7 @@ MochiKit.Text.padLeft = function (str, minLength, fillChar) {
str = fillChar + str; str = fillChar + str;
} }
return str; return str;
} };
/** /**
* Adds a character to the right-hand side of a string until it * Adds a character to the right-hand side of a string until it
@ -91,7 +91,7 @@ MochiKit.Text.padRight = function (str, minLength, fillChar) {
str += fillChar; str += fillChar;
} }
return str; return str;
} };
/** /**
* Returns a truncated copy of a string. If the string is shorter * Returns a truncated copy of a string. If the string is shorter
@ -119,29 +119,55 @@ MochiKit.Text.truncate = function (str, maxLength, tail) {
} else { } else {
return str.slice(0, maxLength); return str.slice(0, maxLength);
} }
} };
/** /**
* Splits a text string, applies a function and joins the results * Splits a text string using separator as the split point
* back together again. This is a convenience function for calling * If max is given, at most max splits are done, giving at most
* split(), map() and join() separately. It can be used to easily * max + 1 elements in the returned list.
* trim each line in a text string (using the strip function), or to
* translate a text word-by-word.
* *
* @param {Function} func the function to apply
* @param {String} str the string to split * @param {String} str the string to split
* @param {String} [separator] the separator character to use, * @param {String/RegExp} [separator] the separator char or regexp to use,
* defaults to newline * defaults to newline
* * @param {Number} [max] the maximum number of parts to return
* @return {String} a string with the joined up results * @return {Array} an array of parts of the string
*/ */
MochiKit.Text.splitJoin = function (func, str, separator) { MochiKit.Text.split = function (str, separator, max) {
if (str == null || str.length == 0) { if (str == null) {
return str; return str;
} }
separator = separator || '\n' separator = separator || '\n';
return MochiKit.Base.map(func, str.split(separator)).join(separator); var bits = str.split(separator);
} if ((typeof(max) == "undefined") || max >= bits.length - 1) {
return bits;
}
bits.splice(max, bits.length, bits.slice(max, bits.length).join(separator));
return bits;
};
/**
* Splits a text string using separator as the split point
* If max is given, at most max splits are done,
* using splits from the right
*
* @param {String} str the string to split
* @param {String/RegExp} [separator] the separator char or regexp to use,
* defaults to newline
* @param {Number} [max] the maximum number of parts to return
* @return {Array} an array of parts of the string
*/
MochiKit.Text.rsplit = function (str, separator, max) {
if (str == null) {
return str;
}
separator = separator || '\n';
var bits = str.split(separator);
if ((typeof(max) == "undefined") || max >= bits.length - 1){
return bits;
}
bits.splice(0, bits.length-max, bits.slice(0, bits.length-max).join(separator));
return bits;
};
/** /**
* Creates a formatter function for the specified formatter pattern * Creates a formatter function for the specified formatter pattern
@ -158,7 +184,7 @@ MochiKit.Text.splitJoin = function (func, str, separator) {
* @throws FormatPatternError if the format pattern was invalid * @throws FormatPatternError if the format pattern was invalid
*/ */
MochiKit.Text.formatter = function (pattern, locale) { MochiKit.Text.formatter = function (pattern, locale) {
if (typeof(locale) == "undefined") { if (locale == null) {
locale = MochiKit.Format.formatLocale(); locale = MochiKit.Format.formatLocale();
} else if (typeof(locale) == "string") { } else if (typeof(locale) == "string") {
locale = MochiKit.Format.formatLocale(locale); locale = MochiKit.Format.formatLocale(locale);
@ -175,8 +201,8 @@ MochiKit.Text.formatter = function (pattern, locale) {
} }
} }
return res.join(""); return res.join("");
} };
} };
/** /**
* Formats the specified arguments according to a formatter pattern. * Formats the specified arguments according to a formatter pattern.
@ -193,7 +219,7 @@ MochiKit.Text.formatter = function (pattern, locale) {
MochiKit.Text.format = function (pattern/*, ...*/) { MochiKit.Text.format = function (pattern/*, ...*/) {
var func = MochiKit.Text.formatter(pattern); var func = MochiKit.Text.formatter(pattern);
return func.apply(this, MochiKit.Base.extend([], arguments, 1)); return func.apply(this, MochiKit.Base.extend([], arguments, 1));
} };
/** /**
* Format a value with the specified format specifier. * Format a value with the specified format specifier.
@ -205,24 +231,29 @@ MochiKit.Text.format = function (pattern/*, ...*/) {
* LOCALE.en_US * LOCALE.en_US
* *
* @return {String} the formatted output string * @return {String} the formatted output string
*
* @throws FormatPatternError if the format specifier was invalid
*/ */
MochiKit.Text.formatValue = function (spec, value, locale) { MochiKit.Text.formatValue = function (spec, value, locale) {
var self = MochiKit.Text; var self = MochiKit.Text;
if (typeof(spec) === "string") { if (typeof(spec) === "string") {
spec = self._parseFormatFlags(spec, 0, spec.length - 1); spec = self._parseFormatFlags(spec, 0, spec.length);
} }
for (var i = 0; spec.path != null && i < spec.path.length; i++) { for (var i = 0; spec.path != null && i < spec.path.length; i++) {
if (value != null) { if (value != null) {
value = value[spec.path[i]]; value = value[spec.path[i]];
} }
} }
if (typeof(locale) == "undefined") { if (locale == null) {
locale = MochiKit.Format.formatLocale(); locale = MochiKit.Format.formatLocale();
} else if (typeof(locale) == "string") { } else if (typeof(locale) == "string") {
locale = MochiKit.Format.formatLocale(locale); locale = MochiKit.Format.formatLocale(locale);
} }
var str = ""; var str = "";
if (spec.numeric) { if (spec.type == "number") {
if (value instanceof Number) {
value = value.valueOf();
}
if (typeof(value) != "number" || isNaN(value)) { if (typeof(value) != "number" || isNaN(value)) {
str = ""; str = "";
} else if (value === Number.POSITIVE_INFINITY) { } else if (value === Number.POSITIVE_INFINITY) {
@ -230,8 +261,7 @@ MochiKit.Text.formatValue = function (spec, value, locale) {
} else if (value === Number.NEGATIVE_INFINITY) { } else if (value === Number.NEGATIVE_INFINITY) {
str = "-\u221e"; str = "-\u221e";
} else { } else {
var sign = (spec.sign === "-") ? "" : spec.sign; var sign = (value < 0) ? "-" : spec.sign;
sign = (value < 0) ? "-" : sign;
value = Math.abs(value); value = Math.abs(value);
if (spec.format === "%") { if (spec.format === "%") {
str = self._truncToPercent(value, spec.precision); str = self._truncToPercent(value, spec.precision);
@ -254,7 +284,7 @@ MochiKit.Text.formatValue = function (spec, value, locale) {
} else if (spec.padding == "0") { } else if (spec.padding == "0") {
str = self.padLeft(str, spec.width - sign.length, "0"); str = self.padLeft(str, spec.width - sign.length, "0");
} }
str = self._localizeNumber(str, locale, spec.grouping); str = self._localizeNumber(str, locale, spec.group);
str = sign + str; str = sign + str;
} }
if (str !== "" && spec.format === "%") { if (str !== "" && spec.format === "%") {
@ -264,7 +294,7 @@ MochiKit.Text.formatValue = function (spec, value, locale) {
if (spec.format == "r") { if (spec.format == "r") {
str = MochiKit.Base.repr(value); str = MochiKit.Base.repr(value);
} else { } else {
str = (value == null) ? "null" : value.toString(); str = (value == null) ? "" : value.toString();
} }
str = self.truncate(str, spec.precision); str = self.truncate(str, spec.precision);
} }
@ -274,7 +304,7 @@ MochiKit.Text.formatValue = function (spec, value, locale) {
str = self.padLeft(str, spec.width); str = self.padLeft(str, spec.width);
} }
return str; return str;
} };
/** /**
* Adjust an already formatted numeric string for locale-specific * Adjust an already formatted numeric string for locale-specific
@ -284,16 +314,16 @@ MochiKit.Text.formatValue = function (spec, value, locale) {
* *
* @param {String} num the formatted number string * @param {String} num the formatted number string
* @param {Object} locale the formatting locale to use * @param {Object} locale the formatting locale to use
* @param {Boolean} grouping the grouping flag * @param {Boolean} group the grouping flag
* *
* @return {String} the localized number string * @return {String} the localized number string
*/ */
MochiKit.Text._localizeNumber = function (num, locale, grouping) { MochiKit.Text._localizeNumber = function (num, locale, group) {
var parts = num.split(/\./); var parts = num.split(/\./);
var whole = parts[0]; var whole = parts[0];
var frac = (parts.length == 1) ? "" : parts[1]; var frac = (parts.length == 1) ? "" : parts[1];
var res = (frac.length > 0) ? locale.decimal : ""; var res = (frac.length > 0) ? locale.decimal : "";
while (grouping && frac.length > 3) { while (group && frac.length > 3) {
res = res + frac.substring(0, 3) + locale.separator; res = res + frac.substring(0, 3) + locale.separator;
frac = frac.substring(3); frac = frac.substring(3);
if (whole.charAt(0) == "0") { if (whole.charAt(0) == "0") {
@ -301,15 +331,15 @@ MochiKit.Text._localizeNumber = function (num, locale, grouping) {
} }
} }
if (frac.length > 0) { if (frac.length > 0) {
res += frac; res = res + frac;
} }
while (grouping && whole.length > 3) { while (group && whole.length > 3) {
var pos = whole.length - 3; var pos = whole.length - 3;
res = locale.separator + whole.substring(pos) + res; res = locale.separator + whole.substring(pos) + res;
whole = whole.substring((whole.charAt(0) == "0") ? 1 : 0, pos); whole = whole.substring((whole.charAt(0) == "0") ? 1 : 0, pos);
} }
return whole + res; return whole + res;
} };
/** /**
* Parses a format pattern and returns an array of constant strings * Parses a format pattern and returns an array of constant strings
@ -324,44 +354,32 @@ MochiKit.Text._localizeNumber = function (num, locale, grouping) {
MochiKit.Text._parsePattern = function (pattern) { MochiKit.Text._parsePattern = function (pattern) {
var self = MochiKit.Text; var self = MochiKit.Text;
var parts = []; var parts = [];
var start = 0; var re = /{[^{}]*}|{{?|}}?/g;
var pos = 0; var lastPos = re.lastIndex = 0;
for (pos = 0; pos < pattern.length; pos++) { var m;
if (pattern.charAt(pos) == "{") { while ((m = re.exec(pattern)) != null) {
if (pos + 1 >= pattern.length) { if (lastPos < m.index) {
var msg = "unescaped { char, should be escaped as {{"; parts.push(pattern.substring(lastPos, m.index))
throw new self.FormatPatternError(pattern, pos, msg); }
} else if (pattern.charAt(pos + 1) == "{") { var str = m[0];
parts.push(pattern.substring(start, pos + 1)); lastPos = m.index + str.length;
start = pos + 2; if (self.startsWith("{", str) && self.endsWith("}", str)) {
pos++; parts.push(self._parseFormat(pattern, m.index + 1, lastPos - 1));
} else { } else if (self.startsWith("{{", str) || self.startsWith("}}", str)) {
if (start < pos) { parts.push(str.substring(1));
parts.push(pattern.substring(start, pos)); } else if (self.startsWith("{", str)) {
} var msg = "unescaped { char, should be escaped as {{";
start = pattern.indexOf("}", pos) + 1; throw new self.FormatPatternError(pattern, m.index, msg);
if (start <= 0) { } else if (self.startsWith("}", str)) {
var msg = "unmatched { char, not followed by a } char"; var msg = "unescaped } char, should be escaped as }}";
throw new self.FormatPatternError(pattern, pos, msg); throw new self.FormatPatternError(pattern, m.index, msg);
}
parts.push(self._parseFormat(pattern, pos + 1, start - 1));
pos = start - 1;
}
} else if (pattern.charAt(pos) == "}") {
if (pos + 1 >= pattern.length || pattern.charAt(pos + 1) != "}") {
var msg = "unescaped } char, should be escaped as }}";
throw new self.FormatPatternError(pattern, pos, msg);
}
parts.push(pattern.substring(start, pos + 1));
start = pos + 2;
pos++;
} }
} }
if (start < pos) { if (lastPos < pattern.length) {
parts.push(pattern.substring(start, pos)); parts.push(pattern.substring(lastPos));
} }
return parts; return parts;
} };
/** /**
* Parses a format instruction and returns a format info object. * Parses a format instruction and returns a format info object.
@ -377,40 +395,30 @@ MochiKit.Text._parsePattern = function (pattern) {
MochiKit.Text._parseFormat = function (pattern, startPos, endPos) { MochiKit.Text._parseFormat = function (pattern, startPos, endPos) {
var self = MochiKit.Text; var self = MochiKit.Text;
var text = pattern.substring(startPos, endPos); var text = pattern.substring(startPos, endPos);
var info; var parts = self.split(text, ":", 1);
var pos = text.indexOf(":"); var path = parts[0];
if (pos == 0) { var flagsPos = startPos + path.length + ((parts.length == 1) ? 0 : 1);
info = self._parseFormatFlags(pattern, startPos + 1, endPos); var info = self._parseFormatFlags(pattern, flagsPos, endPos);
info.path = [0]; info.path = (path == "") ? [] : path.split(".");
} else if (pos > 0) {
info = self._parseFormatFlags(pattern, startPos + pos + 1, endPos);
info.path = text.substring(0, pos).split(".");
} else {
info = self._parseFormatFlags(pattern, endPos, endPos);
info.path = text.split(".");
}
var DIGITS = /^\d+$/;
for (var i = 0; i < info.path.length; i++) { for (var i = 0; i < info.path.length; i++) {
var e = info.path[i]; var v = info.path[i];
if (typeof(e) == "string") { // TODO: replace with MochiKit.Format.strip?
// TODO: replace with MochiKit.Format.strip? v = v.replace(/^\s+/, "").replace(/\s+$/, "");
e = e.replace(/^\s+/, "").replace(/\s+$/, ""); if (v == "" && info.path.length == 1) {
if (e == "" && info.path.length == 1) { v = 0;
e = 0; } else if (v == "") {
} else if (e == "") { var msg = "format value path contains blanks";
var msg = "format value path contains blanks"; throw new self.FormatPatternError(pattern, startPos, msg);
throw new self.FormatPatternError(pattern, startPos, msg); } else if (/^\d+$/.test(v)) {
} else if (DIGITS.test(e)) { v = parseInt(v, 10);
e = parseInt(e);
}
} }
info.path[i] = e; info.path[i] = v;
} }
if (info.path.length < 0 || typeof(info.path[0]) != "number") { if (info.path.length <= 0 || typeof(info.path[0]) != "number") {
info.path.unshift(0); info.path.unshift(0);
} }
return info; return info;
} };
/** /**
* Parses a string with format flags and returns a format info object. * Parses a string with format flags and returns a format info object.
@ -424,81 +432,52 @@ MochiKit.Text._parseFormat = function (pattern, startPos, endPos) {
* @throws FormatPatternError if the format pattern was invalid * @throws FormatPatternError if the format pattern was invalid
*/ */
MochiKit.Text._parseFormatFlags = function (pattern, startPos, endPos) { MochiKit.Text._parseFormatFlags = function (pattern, startPos, endPos) {
var self = MochiKit.Text; var update = MochiKit.Base.update;
var info = { numeric: false, format: "s", width: 0, precision: -1, var info = { type: "string", format: "s", width: 0, precision: -1,
align: ">", sign: "-", padding: " ", grouping: false }; align: ">", sign: "", padding: " ", group: false };
// TODO: replace with MochiKit.Format.rstrip? // TODO: replace with MochiKit.Format.rstrip?
var flags = pattern.substring(startPos, endPos).replace(/\s+$/, ""); var text = pattern.substring(startPos, endPos).replace(/\s+$/, "");
while (flags.length > 0) { var m = /^([<>+ 0,-]+)?(\d+)?(\.\d*)?([srbdoxXf%])?(.*)$/.exec(text);
switch (flags.charAt(0)) { var flags = m[1];
case ">": var width = m[2];
case "<": var precision = m[3];
info.align = flags.charAt(0); var type = m[4];
flags = flags.substring(1); var unmatched = m[5];
break; for (var i = 0; flags && i < flags.length; i++) {
case "+": var chr = flags.charAt(i);
case "-": if (chr == "<" || chr == ">") {
case " ": info.align = chr;
info.sign = flags.charAt(0); } else if (chr == "+" || chr == "-" || chr == " ") {
flags = flags.substring(1); info.sign = (chr == "-") ? "" : chr;
break; } else if (chr == "0") {
case ",": info.padding = chr;
info.grouping = true; } else if (chr == ",") {
flags = flags.substring(1); info.group = true;
break;
case ".":
var chars = /^\d*/.exec(flags.substring(1))[0];
info.precision = parseInt(chars);
flags = flags.substring(1 + chars.length);
break;
case "0":
info.padding = flags.charAt(0);
flags = flags.substring(1);
break;
case "1":
case "2":
case "3":
case "4":
case "5":
case "6":
case "7":
case "8":
case "9":
var chars = /^\d*/.exec(flags)[0];
info.width = parseInt(chars);
flags = flags.substring(chars.length);
break;
case "s":
case "r":
info.format = flags.charAt(0);
flags = flags.substring(1);
break;
case "b":
case "d":
case "o":
case "x":
case "X":
case "f":
case "%":
info.numeric = true;
info.format = flags.charAt(0);
info.radix = 10;
if (info.format === "b") {
info.radix = 2;
} else if (info.format === "o") {
info.radix = 8;
} else if (info.format === "x" || info.format === "X") {
info.radix = 16;
}
flags = flags.substring(1);
break;
default:
var msg = "unsupported format flag: " + flags.charAt(0);
throw new self.FormatPatternError(pattern, startPos, msg);
} }
} }
if (width) {
info.width = parseInt(width, 10);
}
if (precision && precision.length > 1) {
info.precision = parseInt(precision.substring(1), 10);
}
if (type == "s" || type == "r") {
info.format = type;
} else if (type == "b") {
update(info, { type: "number", format: type, radix: 2 });
} else if (type == "o") {
update(info, { type: "number", format: type, radix: 8 });
} else if (type == "x" || type == "X") {
update(info, { type: "number", format: type, radix: 16 });
} else if (type == "d" || type == "f" || type == "%") {
update(info, { type: "number", format: type, radix: 10 });
}
if (unmatched) {
var msg = "unsupported format flag: " + unmatched.charAt(0);
throw new MochiKit.Text.FormatPatternError(pattern, startPos, msg);
}
return info; return info;
} };
/** /**
* Formats a value as a percentage. This method avoids multiplication * Formats a value as a percentage. This method avoids multiplication
@ -510,33 +489,23 @@ MochiKit.Text._parseFormatFlags = function (pattern, startPos, endPos) {
* @param {Number} precision the number of precision digits * @param {Number} precision the number of precision digits
*/ */
MochiKit.Text._truncToPercent = function (value, precision) { MochiKit.Text._truncToPercent = function (value, precision) {
// TODO: This can be simplified by using the same helper function // TODO: This can be simplified by using MochiKit.Format._shiftNumber
// as roundToFixed now does. // as roundToFixed does.
var str; var str;
if (precision >= 0) { if (precision >= 0) {
str = MochiKit.Format.roundToFixed(value, precision + 2); str = MochiKit.Format.roundToFixed(value, precision + 2);
} else { } else {
str = (value == null) ? "0" : value.toString(); str = (value == null) ? "0" : value.toString();
} }
var fracPos = str.indexOf("."); var arr = MochiKit.Text.split(str, ".", 2);
if (fracPos < 0) { var frac = MochiKit.Text.padRight(arr[1], 2, "0");
str = str + "00"; var whole = arr[0] + frac.substring(0, 2);
} else if (fracPos + 3 >= str.length) { frac = frac.substring(2);
var fraction = str.substring(fracPos + 1); while (/^0[0-9]/.test(whole)) {
while (fraction.length < 2) { whole = whole.substring(1);
fraction = fraction + "0";
}
str = str.substring(0, fracPos) + fraction;
} else {
var fraction = str.substring(fracPos + 1);
str = str.substring(0, fracPos) + fraction.substring(0, 2) +
"." + fraction.substring(2);
} }
while (str.length > 1 && str.charAt(0) == "0" && str.charAt(1) != ".") { return (frac.length <= 0) ? whole : whole + "." + frac;
str = str.substring(1); };
}
return str;
}
/** /**
* Creates a new format pattern error. * Creates a new format pattern error.
@ -558,13 +527,13 @@ MochiKit.Text.FormatPatternError = function (pattern, pos, message) {
this.pattern = pattern; this.pattern = pattern;
this.pos = pos; this.pos = pos;
this.message = message; this.message = message;
} };
MochiKit.Text.FormatPatternError.prototype =
new MochiKit.Base.NamedError("MochiKit.Text.FormatPatternError");
MochiKit.Text.FormatPatternError.prototype = new MochiKit.Base.NamedError("MochiKit.Text.FormatPatternError");
MochiKit.Text.FormatPatternError.constructor = MochiKit.Text.FormatPatternError;
// //
//XXX: Internet Explorer exception handling blows //XXX: Internet Explorer export fix
// //
if (MochiKit.__export__) { if (MochiKit.__export__) {
formatter = MochiKit.Text.formatter; formatter = MochiKit.Text.formatter;

View File

@ -8,7 +8,7 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
***/ ***/
MochiKit.Base._module('Visual', '1.5', ['Base', 'DOM', 'Style', 'Color', 'Position']); MochiKit.Base.module(MochiKit, 'Visual', '1.5', ['Base', 'DOM', 'Style', 'Color', 'Position']);
MochiKit.Visual._RoundCorners = function (e, options) { MochiKit.Visual._RoundCorners = function (e, options) {
e = MochiKit.DOM.getElement(e); e = MochiKit.DOM.getElement(e);
@ -469,6 +469,11 @@ MochiKit.Visual.Transitions.parabolic = function (pos) {
return pos * pos; return pos * pos;
}; };
/** @id MochiKit.Visual.Transitions.spring */
MochiKit.Visual.Transitions.spring = function (pos) {
return 1 - (Math.cos(pos * 2.5 * Math.PI) * Math.exp(-pos * 6));
};
/** @id MochiKit.Visual.Transitions.none */ /** @id MochiKit.Visual.Transitions.none */
MochiKit.Visual.Transitions.none = function (pos) { MochiKit.Visual.Transitions.none = function (pos) {
return 0; return 0;
@ -534,6 +539,11 @@ MochiKit.Base.update(MochiKit.Visual.ScopedQueue.prototype, {
e.finalize(); e.finalize();
}, this.effects); }, this.effects);
break; break;
case 'replace':
ma(function (e) {
e.cancel();
}, this.effects);
break;
} }
effect.startOn += timestamp; effect.startOn += timestamp;
@ -662,8 +672,12 @@ MochiKit.Visual.Base.prototype = {
this.event('afterSetup'); this.event('afterSetup');
} }
if (this.state == 'running') { if (this.state == 'running') {
if (this.options.transition) { var trans = this.options.transition;
pos = this.options.transition(pos); if (typeof(trans) == "string") {
trans = MochiKit.Visual.Transitions[trans];
}
if (typeof(trans) == "function") {
pos = trans(pos);
} }
pos *= (this.options.to - this.options.from); pos *= (this.options.to - this.options.from);
pos += this.options.from; pos += this.options.from;
@ -1686,8 +1700,8 @@ MochiKit.Visual.squish = function (element, /* optional */ options) {
var elemClip; var elemClip;
options = b.update({ options = b.update({
restoreAfterFinish: true, restoreAfterFinish: true,
scaleMode: {originalHeight: elementDimensions.w, scaleMode: {originalHeight: elementDimensions.h,
originalWidth: elementDimensions.h}, originalWidth: elementDimensions.w},
beforeSetupInternal: function (effect) { beforeSetupInternal: function (effect) {
elemClip = s.makeClipping(effect.element); elemClip = s.makeClipping(effect.element);
}, },
@ -1958,18 +1972,5 @@ MochiKit.Visual.fold = function (element, /* optional */ options) {
}; };
/* end of Rico adaptation */ MochiKit.Base.nameFunctions(MochiKit.Visual);
MochiKit.Visual.__new__ = function () {
var m = MochiKit.Base;
// Backwards compatibility aliases
m._deprecated(this, 'Color', 'MochiKit.Color.Color', '1.1');
m._deprecated(this, 'getElementsComputedStyle', 'MochiKit.Style.getStyle', '1.1');
m.nameFunctions(this);
};
MochiKit.Visual.__new__();
MochiKit.Base._exportSymbols(this, MochiKit.Visual); MochiKit.Base._exportSymbols(this, MochiKit.Visual);

View File

@ -1,18 +0,0 @@
dojo.kwCompoundRequire({
"common": [
"MochiKit.Base",
"MochiKit.Iter",
"MochiKit.Logging",
"MochiKit.DateTime",
"MochiKit.Format",
"MochiKit.Async",
"MochiKit.DOM",
"MochiKit.Style",
"MochiKit.LoggingPane",
"MochiKit.Color",
"MochiKit.Signal",
"MochiKit.Position",
"MochiKit.Visual"
]
});
dojo.provide("MochiKit.*");

View File

@ -81,11 +81,11 @@ function run() {
Clipperz.PM.RunTime.mainController.run(shouldShowRegistrationForm); Clipperz.PM.RunTime.mainController.run(shouldShowRegistrationForm);
//Clipperz.log("HASH: " + window.location.hash); //Clipperz.log("HASH: " + window.location.hash);
if (window.location.hash != "") { // if (window.location.hash != "") {
window.location.hash = "" // window.location.hash = ""
} // }
//Clipperz.log("HASH cleaned"); // Clipperz.log("HASH cleaned");
// #credentials=base64encoded({username:'joe', passphrase:'clipperz'}) // #credentials=base64encoded({username:'joe', passphrase:'clipperz'})
// MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'doLogin', {username:'joe', passphrase:'clipperz'}); // MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'doLogin', {username:'joe', passphrase:'clipperz'});
} }

View File

@ -1,8 +1,11 @@
{ {
"copyright.values": { "copyright.values": {
"mochikit.repository": "http://svn.mochikit.com/mochikit/trunk/", "mochikit.repository": "https://github.com/mochi/mochikit.git",
"mochikit.version": "1506" "mochikit.version": "fe8d17bb9ac0a4e5ad4a8d5c2c94a6fac1c92d75"
}, },
"html.template": "index_template.html",
"js": [ "js": [
"MochiKit/Base.js", "MochiKit/Base.js",
"MochiKit/Iter.js", "MochiKit/Iter.js",

View File

@ -28,7 +28,6 @@ refer to http://www.clipperz.com.
<title>Clipperz.Crypto.AES_v3 - TEST</title> <title>Clipperz.Crypto.AES_v3 - TEST</title>
<script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script>
<script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script>
<script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css">

View File

@ -32,7 +32,6 @@ refer to http://www.clipperz.com.
</script> </script>
<script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script>
<script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script>
<script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css">

View File

@ -26,7 +26,6 @@ refer to http://www.clipperz.com.
<html> <html>
<head> <head>
<script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script>
<script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script>
<script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css">

View File

@ -26,7 +26,6 @@ refer to http://www.clipperz.com.
<html> <html>
<head> <head>
<script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script>
<script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script>
<script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css">

View File

@ -26,7 +26,6 @@ refer to http://www.clipperz.com.
<html> <html>
<head> <head>
<script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script>
<script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script>
<script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css">

View File

@ -26,7 +26,6 @@ refer to http://www.clipperz.com.
<html> <html>
<head> <head>
<script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script>
<script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script>
<script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css">

View File

@ -26,7 +26,6 @@ refer to http://www.clipperz.com.
<html> <html>
<head> <head>
<script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script>
<script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script>
<script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css">

View File

@ -28,7 +28,6 @@ refer to http://www.clipperz.com.
<script> jslog_config_enabled = true; </script> <script> jslog_config_enabled = true; </script>
<script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script>
<script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script>
<script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css">

View File

@ -26,7 +26,6 @@ refer to http://www.clipperz.com.
<html> <html>
<head> <head>
<script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script>
<script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script>
<script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css">

View File

@ -63,7 +63,6 @@ refer to http://www.clipperz.com.
</script> </script>
<script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script>
<script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script>
<script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css">

View File

@ -26,7 +26,6 @@ refer to http://www.clipperz.com.
<html> <html>
<head> <head>
<script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script>
<script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script>
<script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css">

View File

@ -28,7 +28,6 @@ refer to http://www.clipperz.com.
<title>Clipperz.Crypto.Usage - TEST</title> <title>Clipperz.Crypto.Usage - TEST</title>
<script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script>
<script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script>
<script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css">

View File

@ -28,7 +28,6 @@ refer to http://www.clipperz.com.
<title>Clipperz.PM.Date - test</title> <title>Clipperz.PM.Date - test</title>
<script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script>
<!-- script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script -->
<script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css">

View File

@ -28,7 +28,6 @@ refer to http://www.clipperz.com.
<title>Clipperz.PM.Proxy - TEST</title> <title>Clipperz.PM.Proxy - TEST</title>
<script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script>
<script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script>
<script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css">

View File

@ -28,7 +28,6 @@ refer to http://www.clipperz.com.
<title>Clipperz.PM.Toll - test</title> <title>Clipperz.PM.Toll - test</title>
<script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script>
<script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script>
<script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css">

View File

@ -28,7 +28,6 @@ refer to http://www.clipperz.com.
<title>Clipperz.PM.UI.Web.MainController - test</title> <title>Clipperz.PM.UI.Web.MainController - test</title>
<script type="text/javascript" src="../../../../../../../js/MochiKit/MochiKit.js"></script> <script type="text/javascript" src="../../../../../../../js/MochiKit/MochiKit.js"></script>
<script type="text/javascript" src="../../../../../../../js/JSLog/jslog.js"></script>
<script type="text/javascript" src="../../../../../../SimpleTest/SimpleTest.js"></script> <script type="text/javascript" src="../../../../../../SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="../../../../../../SimpleTest/test.css"> <link rel="stylesheet" type="text/css" href="../../../../../../SimpleTest/test.css">

View File

@ -26,7 +26,6 @@ refer to http://www.clipperz.com.
<html> <html>
<head> <head>
<script type="text/javascript" src="../../../js/MochiKit/MochiKit.js"></script> <script type="text/javascript" src="../../../js/MochiKit/MochiKit.js"></script>
<script type="text/javascript" src="../../../js/JSLog/jslog.js"></script>
<script type="text/javascript" src="../../SimpleTest/SimpleTest.js"></script> <script type="text/javascript" src="../../SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="../../SimpleTest/test.css"> <link rel="stylesheet" type="text/css" href="../../SimpleTest/test.css">

View File

@ -101,9 +101,7 @@ refer to http://www.clipperz.com.
Clipperz_IEisBroken = true; Clipperz_IEisBroken = true;
</script><![endif]--> </script><![endif]-->
<link rel="stylesheet" type="text/css" href="../../../../css/clipperz/clipperz.css" /> <link rel="stylesheet" type="text/css" href="../../../../css/web.css" />
<link rel="stylesheet" type="text/css" href="../../../../css/clipperz/compact.css" />
<link rel="stylesheet" type="text/css" href="../../../../css/clipperz/ytheme-clipperz.css" />
</head> </head>
<body> <body>

View File

@ -99,9 +99,7 @@ refer to http://www.clipperz.com.
Clipperz_IEisBroken = true; Clipperz_IEisBroken = true;
</script><![endif]--> </script><![endif]-->
<link rel="stylesheet" type="text/css" href="../../../../css/clipperz/clipperz.css" /> <link rel="stylesheet" type="text/css" href="../../../../css/web.css" />
<link rel="stylesheet" type="text/css" href="../../../../css/clipperz/compact.css" />
<link rel="stylesheet" type="text/css" href="../../../../css/clipperz/ytheme-clipperz.css" />
<style> <style>