summaryrefslogtreecommitdiff
path: root/frontend
authorGiulio Cesare Solaroli <giulio.cesare@clipperz.com>2012-03-17 21:08:23 (UTC)
committer Giulio Cesare Solaroli <giulio.cesare@clipperz.com>2012-03-17 21:08:23 (UTC)
commit928f3f3ed3981f7f81b69ed94f2a315205db39fa (patch) (side-by-side diff)
tree8a47229b56e4c906de8512baf0c5ca100bc03dfb /frontend
parentbf7d8191a3a6dbd092a88911098a3e7f6cf30cf7 (diff)
downloadclipperz-928f3f3ed3981f7f81b69ed94f2a315205db39fa.zip
clipperz-928f3f3ed3981f7f81b69ed94f2a315205db39fa.tar.gz
clipperz-928f3f3ed3981f7f81b69ed94f2a315205db39fa.tar.bz2
Fixed frontend properties and updated MochiKit version
Diffstat (limited to 'frontend') (more/less context) (ignore whitespace changes)
-rw-r--r--frontend/beta/properties/beta.properties.json3
-rw-r--r--frontend/gamma/js/MochiKit/Async.js120
-rw-r--r--frontend/gamma/js/MochiKit/Base.js156
-rw-r--r--frontend/gamma/js/MochiKit/Color.js17
-rw-r--r--frontend/gamma/js/MochiKit/DOM.js165
-rw-r--r--frontend/gamma/js/MochiKit/DateTime.js49
-rw-r--r--frontend/gamma/js/MochiKit/DragAndDrop.js14
-rw-r--r--frontend/gamma/js/MochiKit/Format.js16
-rw-r--r--frontend/gamma/js/MochiKit/Iter.js16
-rw-r--r--frontend/gamma/js/MochiKit/Logging.js4
-rw-r--r--frontend/gamma/js/MochiKit/LoggingPane.js13
-rw-r--r--frontend/gamma/js/MochiKit/MochiKit.js11
-rw-r--r--frontend/gamma/js/MochiKit/MockDOM.js9
-rw-r--r--frontend/gamma/js/MochiKit/Position.js2
-rw-r--r--frontend/gamma/js/MochiKit/Selector.js16
-rw-r--r--frontend/gamma/js/MochiKit/Signal.js47
-rw-r--r--frontend/gamma/js/MochiKit/Sortable.js12
-rw-r--r--frontend/gamma/js/MochiKit/Style.js19
-rw-r--r--frontend/gamma/js/MochiKit/Test.js2
-rw-r--r--frontend/gamma/js/MochiKit/Text.js359
-rw-r--r--frontend/gamma/js/MochiKit/Visual.js39
-rw-r--r--frontend/gamma/js/MochiKit/__package__.js18
-rw-r--r--frontend/gamma/js/main.js10
-rw-r--r--frontend/gamma/properties/gamma.properties.json7
-rw-r--r--frontend/gamma/tests/tests/Clipperz/Crypto/AES.html1
-rw-r--r--frontend/gamma/tests/tests/Clipperz/Crypto/AES.performance.html1
-rw-r--r--frontend/gamma/tests/tests/Clipperz/Crypto/Base.html1
-rw-r--r--frontend/gamma/tests/tests/Clipperz/Crypto/BigInt.html1
-rw-r--r--frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.FiniteField.B283.html1
-rw-r--r--frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.FiniteField.html1
-rw-r--r--frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.Value.html1
-rw-r--r--frontend/gamma/tests/tests/Clipperz/Crypto/PRNG.html1
-rw-r--r--frontend/gamma/tests/tests/Clipperz/Crypto/RSA.html1
-rw-r--r--frontend/gamma/tests/tests/Clipperz/Crypto/SHA.html1
-rw-r--r--frontend/gamma/tests/tests/Clipperz/Crypto/SRP.html1
-rw-r--r--frontend/gamma/tests/tests/Clipperz/Crypto/Usage.html1
-rw-r--r--frontend/gamma/tests/tests/Clipperz/PM/Date.html1
-rw-r--r--frontend/gamma/tests/tests/Clipperz/PM/Proxy.html1
-rw-r--r--frontend/gamma/tests/tests/Clipperz/PM/Toll.html1
-rw-r--r--frontend/gamma/tests/tests/Clipperz/PM/UI/Web/Controllers/MainController.html1
-rw-r--r--frontend/gamma/tests/tests/Clipperz/RoboFormExportProcessor.html1
-rw-r--r--frontend/gamma/tests/tests/Components/CardDialogNew/index.html4
-rw-r--r--frontend/gamma/tests/tests/Components/Tooltips/index.html4
43 files changed, 623 insertions, 526 deletions
diff --git a/frontend/beta/properties/beta.properties.json b/frontend/beta/properties/beta.properties.json
index 7b0c1f9..476becd 100644
--- a/frontend/beta/properties/beta.properties.json
+++ b/frontend/beta/properties/beta.properties.json
@@ -5,2 +5,5 @@
},
+
+ "html.template": "index_template.html",
+
"js": [
diff --git a/frontend/gamma/js/MochiKit/Async.js b/frontend/gamma/js/MochiKit/Async.js
index c7408e7..cc43835 100644
--- a/frontend/gamma/js/MochiKit/Async.js
+++ b/frontend/gamma/js/MochiKit/Async.js
@@ -10,3 +10,3 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
-MochiKit.Base._module('Async', '1.5', ['Base']);
+MochiKit.Base.module(MochiKit, 'Async', '1.5', ['Base']);
@@ -22,2 +22,3 @@ MochiKit.Async.Deferred = function (/* optional */ canceller) {
this.chained = false;
+ this.finalized = false;
};
@@ -27,11 +28,3 @@ MochiKit.Async.Deferred.prototype = {
repr: function () {
- var state;
- if (this.fired == -1) {
- state = 'unfired';
- } else if (this.fired === 0) {
- state = 'success';
- } else {
- state = 'error';
- }
- return 'Deferred(' + this.id + ', ' + state + ')';
+ return 'Deferred(' + this.id + ', ' + this.state() + ')';
},
@@ -42,4 +35,15 @@ MochiKit.Async.Deferred.prototype = {
+ /** @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 */
- cancel: function () {
+ cancel: function (e) {
var self = MochiKit.Async;
@@ -52,6 +56,11 @@ MochiKit.Async.Deferred.prototype = {
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)) {
- this.results[0].cancel();
+ this.results[0].cancel(e);
}
@@ -67,3 +76,5 @@ MochiKit.Async.Deferred.prototype = {
this.results[this.fired] = res;
- this._fire();
+ if (this.paused === 0) {
+ this._fire();
+ }
},
@@ -131,2 +142,5 @@ MochiKit.Async.Deferred.prototype = {
}
+ if (this.finalized) {
+ throw new Error("Finalized Deferreds can not be re-used");
+ }
this.chain.push([cb, eb]);
@@ -138,2 +152,20 @@ MochiKit.Async.Deferred.prototype = {
+ /** @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 () {
@@ -162,7 +194,4 @@ MochiKit.Async.Deferred.prototype = {
cb = function (res) {
- self._resback(res);
self.paused--;
- if ((self.paused === 0) && (self.fired >= 0)) {
- self._fire();
- }
+ self._resback(res);
};
@@ -180,2 +209,6 @@ MochiKit.Async.Deferred.prototype = {
this.results[fired] = res;
+ if (this.chain.length == 0 && this.paused === 0 && this._finalizer) {
+ this.finalized = true;
+ this._finalizer(res);
+ }
if (cb && this.paused) {
@@ -251,3 +284,3 @@ MochiKit.Base.update(MochiKit.Async, {
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
@@ -339,3 +372,4 @@ MochiKit.Base.update(MochiKit.Async, {
headers: undefined,
- mimeType: undefined
+ mimeType: undefined,
+ responseType: undefined
*/
@@ -373,2 +407,5 @@ MochiKit.Base.update(MochiKit.Async, {
}
+ if ("responseType" in opts && "responseType" in req) {
+ req.responseType = opts.responseType;
+ }
return self.sendXMLHttpRequest(req, opts.sendContent);
@@ -406,2 +443,35 @@ MochiKit.Base.update(MochiKit.Async, {
+ /** @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 */
@@ -409,9 +479,4 @@ MochiKit.Base.update(MochiKit.Async, {
var d = new MochiKit.Async.Deferred();
- var m = MochiKit.Base;
- if (typeof(value) != 'undefined') {
- d.addCallback(function () { return value; });
- }
- var timeout = setTimeout(
- m.bind("callback", d),
- Math.floor(seconds * 1000));
+ var cb = MochiKit.Base.bind("callback", d, value);
+ var timeout = setTimeout(cb, Math.floor(seconds * 1000));
d.canceller = function () {
@@ -512,2 +577,3 @@ MochiKit.Async.DeferredList = function (list, /* optional */fireOnOneCallback, f
MochiKit.Async.DeferredList.prototype = new MochiKit.Async.Deferred();
+MochiKit.Async.DeferredList.prototype.constructor = MochiKit.Async.DeferredList;
diff --git a/frontend/gamma/js/MochiKit/Base.js b/frontend/gamma/js/MochiKit/Base.js
index d33c269..ca1734c 100644
--- a/frontend/gamma/js/MochiKit/Base.js
+++ b/frontend/gamma/js/MochiKit/Base.js
@@ -10,5 +10,5 @@ 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") {
@@ -16,23 +16,33 @@ if (typeof(MochiKit.__export__) == "undefined") {
}
-if (typeof(MochiKit.Base) == 'undefined') {
- MochiKit.Base = {};
-}
+MochiKit.NAME = "MochiKit";
+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
- * property into the "MochiKit" object, making sure that all
- * dependency modules have already been inserted. It will also make
- * sure that the appropriate properties and default module functions
- * are defined.
+ * Creates a new module in a parent namespace. This function will
+ * create a new empty module object with "NAME", "VERSION",
+ * "toString" and "__repr__" properties. This object will be inserted into the parent object
+ * using the specified name (i.e. parent[name] = module). It will
+ * 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} 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) {
- if (!(name in MochiKit)) {
- MochiKit[name] = {};
- }
- var module = MochiKit[name];
- module.NAME = "MochiKit." + name;
+MochiKit.Base.module = function (parent, name, version, deps) {
+ var module = parent[name] = parent[name] || {};
+ var prefix = (parent.NAME ? parent.NAME + "." : "");
+ module.NAME = prefix + name;
module.VERSION = version;
@@ -44,10 +54,11 @@ MochiKit.Base._module = function (name, version, deps) {
};
- for (var i = 0; i < deps.length; i++) {
- if (!(deps[i] in MochiKit)) {
- throw 'MochiKit.' + name + ' depends on MochiKit.' + deps[i] + '!';
+ for (var i = 0; deps != null && i < deps.length; i++) {
+ if (!(deps[i] in parent)) {
+ throw module.NAME + ' depends on ' + prefix + deps[i] + '!';
}
}
-}
+ return module;
+};
-MochiKit.Base._module("Base", "1.5", []);
+MochiKit.Base.module(MochiKit, "Base", "1.5", []);
@@ -242,2 +253,3 @@ MochiKit.Base.update(MochiKit.Base, {
func.prototype = new MochiKit.Base.NamedError(module.NAME + "." + name);
+ func.prototype.constructor = func;
module[name] = func;
@@ -353,3 +365,3 @@ MochiKit.Base.update(MochiKit.Base, {
} else if (value != null && typeof(value.length) === "number") {
- return value.length !== 0
+ return value.length !== 0;
} else {
@@ -677,2 +689,5 @@ MochiKit.Base.update(MochiKit.Base, {
newfunc.im_preargs = im_preargs;
+ if (typeof(im_func.NAME) == 'string') {
+ newfunc.NAME = "bind(" + im_func.NAME + ",...)";
+ }
return newfunc;
@@ -790,7 +805,10 @@ MochiKit.Base.update(MochiKit.Base, {
} catch (e) {
- if (typeof(o.NAME) == 'string' && (
- o.toString == Function.prototype.toString ||
- o.toString == Object.prototype.toString
- )) {
- return o.NAME;
+ try {
+ if (typeof(o.NAME) == 'string' && (
+ o.toString == Function.prototype.toString ||
+ o.toString == Object.prototype.toString
+ )) {
+ return o.NAME;
+ }
+ } catch (ignore) {
}
@@ -842,4 +860,4 @@ MochiKit.Base.update(MochiKit.Base, {
/** @id MochiKit.Base.evalJSON */
- evalJSON: function () {
- return eval("(" + MochiKit.Base._filterJSON(arguments[0]) + ")");
+ evalJSON: function (jsonText) {
+ return eval("(" + MochiKit.Base._filterJSON(jsonText) + ")");
},
@@ -848,6 +866,3 @@ MochiKit.Base.update(MochiKit.Base, {
var m = s.match(/^\s*\/\*(.*)\*\/\s*$/);
- if (m) {
- return m[1];
- }
- return s;
+ return (m) ? m[1] : s;
},
@@ -896,2 +911,8 @@ MochiKit.Base.update(MochiKit.Base, {
var newObj;
+ if (typeof(o.toJSON) == "function") {
+ newObj = o.toJSON();
+ if (o !== newObj) {
+ return me(newObj);
+ }
+ }
if (typeof(o.__json__) == "function") {
@@ -1102,3 +1123,3 @@ MochiKit.Base.update(MochiKit.Base, {
}
- data.sort(compare);
+ data.sort(MochiKit.Base.compare);
if (data.length % 2 == 0) {
@@ -1292,12 +1313,27 @@ MochiKit.Base.AdapterRegistry.prototype = {
-MochiKit.Base._exportSymbols = function (globals, module) {
- if (MochiKit.__export__ === false || module.__export__ === false) {
- return;
- }
- for (var k in module) {
- var v = module[k];
- if (v != null) {
- var okName = (k[0] !== "_" && k !== "toString");
- if (v.__export__ === true || (v.__export__ !== false && okName)) {
- globals[k] = module[k];
+/**
+ * Exports all symbols from one or more modules into the specified
+ * namespace (or scope). This is similar to MochiKit.Base.update(),
+ * except for special handling of the "__export__" flag, contained
+ * sub-modules (exported recursively), and names starting with "_".
+ *
+ * @param {Object} namespace the object or scope to modify
+ * @param {Object} module the module to export
+ */
+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];
+ }
+ }
}
@@ -1305,2 +1341,13 @@ MochiKit.Base._exportSymbols = function (globals, module) {
}
+ 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);
+ }
};
@@ -1323,3 +1370,3 @@ MochiKit.Base._exportSymbols = function (globals, module) {
* @param {Boolean} [exportable] the exportable function flag,
- * defaults to true
+ * defaults to false
*/
@@ -1351,7 +1398,5 @@ MochiKit.Base._deprecated = function (module, name, target, version, exportable)
};
- if (exportable === false) {
- func.__export__ = false;
- }
+ func.__export__ = (exportable === true);
module[name] = func;
-}
+};
@@ -1364,4 +1409,4 @@ MochiKit.Base.__new__ = function () {
// Backwards compat
- m._deprecated(m, 'forward', 'MochiKit.Base.forwardCall', '1.3', false);
- m._deprecated(m, 'find', 'MochiKit.Base.findValue', '1.3', false);
+ m._deprecated(m, 'forward', 'MochiKit.Base.forwardCall', '1.3');
+ m._deprecated(m, 'find', 'MochiKit.Base.findValue', '1.3');
@@ -1377,3 +1422,3 @@ MochiKit.Base.__new__ = function () {
).replace(/\"/g,'%22'
- ).rval.replace(/\'/g, '%27');
+ ).replace(/\'/g, '%27');
};
@@ -1387,2 +1432,3 @@ MochiKit.Base.__new__ = function () {
m.NamedError.prototype = new Error();
+ m.NamedError.prototype.constructor = m.NamedError;
m.update(m.NamedError.prototype, {
@@ -1411,2 +1457,4 @@ MochiKit.Base.__new__ = function () {
m.isUndefined = m.typeMatcher('undefined');
+ /** @id MochiKit.Base.isValue */
+ m.isValue = m.typeMatcher('boolean', 'number', 'string');
diff --git a/frontend/gamma/js/MochiKit/Color.js b/frontend/gamma/js/MochiKit/Color.js
index 27dc2d0..f2a0f67 100644
--- a/frontend/gamma/js/MochiKit/Color.js
+++ b/frontend/gamma/js/MochiKit/Color.js
@@ -10,3 +10,3 @@ 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']);
@@ -114,3 +114,3 @@ MochiKit.Color.Color.prototype = {
isLight: function () {
- return this.asHSL().b > 0.5;
+ return this.asHSL().l > 0.5;
},
@@ -643,15 +643,6 @@ MochiKit.Base.update(MochiKit.Color, {
- 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) {
var name = k + "Color";
- var bindArgs = m.concat(
- [makeColor, this.Color, name],
- colors[k]
- );
- this.Color[name] = m.bind.apply(null, bindArgs);
+ var value = this.Color.fromRGB.apply(this.Color, colors[k]);
+ this.Color[name] = m.partial(m.operator.identity, value);
}
diff --git a/frontend/gamma/js/MochiKit/DOM.js b/frontend/gamma/js/MochiKit/DOM.js
index af5d46f..944ab78 100644
--- a/frontend/gamma/js/MochiKit/DOM.js
+++ b/frontend/gamma/js/MochiKit/DOM.js
@@ -10,3 +10,3 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
-MochiKit.Base._module('DOM', '1.5', ['Base']);
+MochiKit.Base.module(MochiKit, 'DOM', '1.5', ['Base']);
@@ -299,2 +299,3 @@ MochiKit.Base.update(MochiKit.DOM, {
var self = MochiKit.DOM;
+ var base = MochiKit.Base;
if (typeof(node) == 'string') {
@@ -303,3 +304,2 @@ MochiKit.Base.update(MochiKit.DOM, {
if (attrs) {
- var updatetree = MochiKit.Base.updatetree;
if (self.attributeArray.compliant) {
@@ -312,3 +312,3 @@ MochiKit.Base.update(MochiKit.DOM, {
} else {
- updatetree(elem[k], v);
+ base.updatetree(elem[k], v);
}
@@ -322,4 +322,4 @@ MochiKit.Base.update(MochiKit.DOM, {
}
- if (typeof(elem[k]) == "string" && elem[k] != v) {
- // Also set property for weird attributes (see #302)
+ if (base.isValue(elem[k]) && elem[k] != v) {
+ // Also set property for weird attributes (see #302 & #335)
elem[k] = v;
@@ -342,3 +342,3 @@ MochiKit.Base.update(MochiKit.DOM, {
} else {
- updatetree(elem[k], v);
+ base.updatetree(elem[k], v);
}
@@ -352,4 +352,4 @@ MochiKit.Base.update(MochiKit.DOM, {
}
- if (typeof(elem[k]) == "string" && elem[k] != v) {
- // Also set property for weird attributes (see #302)
+ if (base.isValue(elem[k]) && elem[k] != v) {
+ // Also set property for weird attributes (see #302 & #335)
elem[k] = v;
@@ -992,2 +992,3 @@ MochiKit.Base.update(MochiKit.DOM, {
"colspan": "colSpan",
+ "rowspan": "rowSpan",
"bgcolor": "bgColor",
@@ -1009,3 +1010,3 @@ MochiKit.Base.update(MochiKit.DOM, {
/** @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 */
@@ -1043,44 +1044,34 @@ MochiKit.Base.update(MochiKit.DOM, {
var createDOMFunc = this.createDOMFunc;
- /** @id MochiKit.DOM.UL */
- this.UL = createDOMFunc("ul");
- /** @id MochiKit.DOM.OL */
- this.OL = createDOMFunc("ol");
- /** @id MochiKit.DOM.LI */
- this.LI = createDOMFunc("li");
- /** @id MochiKit.DOM.DL */
- this.DL = createDOMFunc("dl");
- /** @id MochiKit.DOM.DT */
- this.DT = createDOMFunc("dt");
- /** @id MochiKit.DOM.DD */
- this.DD = createDOMFunc("dd");
- /** @id MochiKit.DOM.TD */
- this.TD = createDOMFunc("td");
- /** @id MochiKit.DOM.TR */
- this.TR = createDOMFunc("tr");
- /** @id MochiKit.DOM.TBODY */
- this.TBODY = createDOMFunc("tbody");
- /** @id MochiKit.DOM.THEAD */
- this.THEAD = createDOMFunc("thead");
- /** @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.ARTICLE */
+ this.ARTICLE = createDOMFunc("article");
+ /** @id MochiKit.DOM.ASIDE */
+ this.ASIDE = createDOMFunc("aside");
+ /** @id MochiKit.DOM.BR */
+ this.BR = createDOMFunc("br");
/** @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.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 */
+ this.DL = createDOMFunc("dl");
+ /** @id MochiKit.DOM.DT */
+ this.DT = createDOMFunc("dt");
+ /** @id MochiKit.DOM.FIELDSET */
+ this.FIELDSET = createDOMFunc("fieldset");
+ /** @id MochiKit.DOM.FIGURE */
+ this.FIGURE = createDOMFunc("figure");
+ /** @id MochiKit.DOM.FIGCAPTION */
+ this.FIGCAPTION = createDOMFunc("figcaption");
+ /** @id MochiKit.DOM.FOOTER */
+ this.FOOTER = createDOMFunc("footer");
+ /** @id MochiKit.DOM.FORM */
+ this.FORM = createDOMFunc("form");
/** @id MochiKit.DOM.H1 */
@@ -1097,29 +1088,74 @@ MochiKit.Base.update(MochiKit.DOM, {
this.H6 = createDOMFunc("h6");
- /** @id MochiKit.DOM.BR */
- this.BR = createDOMFunc("br");
+ /** @id MochiKit.DOM.HEADER */
+ this.HEADER = createDOMFunc("header");
+ /** @id MochiKit.DOM.HGROUP */
+ this.HGROUP = createDOMFunc("hgroup");
/** @id MochiKit.DOM.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 */
this.LABEL = createDOMFunc("label");
- /** @id MochiKit.DOM.TEXTAREA */
- this.TEXTAREA = createDOMFunc("textarea");
- /** @id MochiKit.DOM.FORM */
- this.FORM = createDOMFunc("form");
+ /** @id MochiKit.DOM.LEGEND */
+ this.LEGEND = createDOMFunc("legend");
+ /** @id MochiKit.DOM.LI */
+ 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.OPTION */
- this.OPTION = createDOMFunc("option");
- /** @id MochiKit.DOM.OPTGROUP */
- this.OPTGROUP = createDOMFunc("optgroup");
- /** @id MochiKit.DOM.LEGEND */
- this.LEGEND = createDOMFunc("legend");
- /** @id MochiKit.DOM.FIELDSET */
- this.FIELDSET = createDOMFunc("fieldset");
+ /** @id MochiKit.DOM.SPAN */
+ this.SPAN = createDOMFunc("span");
/** @id MochiKit.DOM.STRONG */
this.STRONG = createDOMFunc("strong");
- /** @id MochiKit.DOM.CANVAS */
- this.CANVAS = createDOMFunc("canvas");
-
+ /** @id MochiKit.DOM.STYLE */
+ 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.$ */
@@ -1128,3 +1164,2 @@ MochiKit.Base.update(MochiKit.DOM, {
m.nameFunctions(this);
-
}
diff --git a/frontend/gamma/js/MochiKit/DateTime.js b/frontend/gamma/js/MochiKit/DateTime.js
index c7b2d25..658084c 100644
--- a/frontend/gamma/js/MochiKit/DateTime.js
+++ b/frontend/gamma/js/MochiKit/DateTime.js
@@ -10,3 +10,3 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
-MochiKit.Base._module('DateTime', '1.5', ['Base']);
+MochiKit.Base.module(MochiKit, 'DateTime', '1.5', ['Base']);
@@ -22,6 +22,6 @@ MochiKit.DateTime.isoDate = function (str) {
}
- var date = new Date(iso[0], iso[1] - 1, iso[2]);
- date.setFullYear(iso[0]);
- date.setMonth(iso[1] - 1);
- date.setDate(iso[2]);
+ var date = new Date(parseInt(iso[0], 10), parseInt(iso[1], 10) - 1, parseInt(iso[2], 10));
+ date.setFullYear(iso[0]);
+ date.setMonth(iso[1] - 1);
+ date.setDate(iso[2]);
return date;
@@ -82,11 +82,13 @@ MochiKit.DateTime.toISOTime = function (date, realISO/* = false */) {
}
- var hh = date.getHours();
- var mm = date.getMinutes();
- var ss = date.getSeconds();
+ var _padTwo = MochiKit.DateTime._padTwo;
+ if (realISO) {
+ // adjust date for UTC timezone
+ date = new Date(date.getTime() + (date.getTimezoneOffset() * 60000));
+ }
var lst = [
- ((realISO && (hh < 10)) ? "0" + hh : hh),
- ((mm < 10) ? "0" + mm : mm),
- ((ss < 10) ? "0" + ss : ss)
+ (realISO ? _padTwo(date.getHours()) : date.getHours()),
+ _padTwo(date.getMinutes()),
+ _padTwo(date.getSeconds())
];
- return lst.join(":");
+ return lst.join(":") + (realISO ? "Z" : "");
};
@@ -98,8 +100,9 @@ MochiKit.DateTime.toISOTimestamp = function (date, realISO/* = false*/) {
}
+ var time = MochiKit.DateTime.toISOTime(date, realISO);
var sep = realISO ? "T" : " ";
- var foot = realISO ? "Z" : "";
if (realISO) {
+ // adjust date for UTC timezone
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;
};
@@ -112,3 +115,3 @@ MochiKit.DateTime.toISODate = function (date) {
var _padTwo = MochiKit.DateTime._padTwo;
- var _padFour = MochiKit.DateTime._padFour;
+ var _padFour = MochiKit.DateTime._padFour;
return [
@@ -135,10 +138,10 @@ MochiKit.DateTime._padTwo = function (n) {
MochiKit.DateTime._padFour = function(n) {
- switch(n.toString().length) {
- case 1: return "000" + n; break;
- case 2: return "00" + n; break;
- case 3: return "0" + n; break;
- case 4:
- default:
- return n;
- }
+ switch(n.toString().length) {
+ case 1: return "000" + n; break;
+ case 2: return "00" + n; break;
+ case 3: return "0" + n; break;
+ case 4:
+ default:
+ return n;
+ }
};
diff --git a/frontend/gamma/js/MochiKit/DragAndDrop.js b/frontend/gamma/js/MochiKit/DragAndDrop.js
index 62777c5..cf84f77 100644
--- a/frontend/gamma/js/MochiKit/DragAndDrop.js
+++ b/frontend/gamma/js/MochiKit/DragAndDrop.js
@@ -10,3 +10,3 @@ 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']);
@@ -308,4 +308,5 @@ MochiKit.DragAndDrop.Draggables = {
// the same coordinates, prevent needless redrawing (moz bug?)
- if (this._lastPointer && (MochiKit.Base.repr(this._lastPointer.page) ==
- MochiKit.Base.repr(pointer.page))) {
+ if (this._lastPointer &&
+ this._lastPointer.page.x == pointer.page.x &&
+ this._lastPointer.page.y == pointer.page.y) {
return;
@@ -444,4 +445,4 @@ MochiKit.DragAndDrop.Draggable.prototype = {
return [
- parseInt(s(this.element, 'left') || '0'),
- parseInt(s(this.element, 'top') || '0')];
+ parseInt(s(this.element, 'left') || '0', 10),
+ parseInt(s(this.element, 'top') || '0', 10)];
},
@@ -483,4 +484,3 @@ MochiKit.DragAndDrop.Draggable.prototype = {
if (this.options.zindex) {
- this.originalZ = parseInt(MochiKit.Style.getStyle(this.element,
- 'z-index') || '0');
+ this.originalZ = MochiKit.Style.getStyle(this.element, 'z-index');
this.element.style.zIndex = this.options.zindex;
diff --git a/frontend/gamma/js/MochiKit/Format.js b/frontend/gamma/js/MochiKit/Format.js
index 122845e..58877e7 100644
--- a/frontend/gamma/js/MochiKit/Format.js
+++ b/frontend/gamma/js/MochiKit/Format.js
@@ -10,3 +10,3 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
-MochiKit.Base._module('Format', '1.5', ['Base']);
+MochiKit.Base.module(MochiKit, 'Format', '1.5', ['Base']);
@@ -106,3 +106,3 @@ MochiKit.Format.numberFormatter = function (pattern, placeholder/* = "" */, loca
"(",
- map(m.repr, args).join(", "),
+ m.map(m.repr, args).join(", "),
")"
@@ -144,3 +144,3 @@ MochiKit.Format.twoDigitAverage = function (numerator, denominator) {
MochiKit.Format.twoDigitFloat = function (aNumber) {
- var res = roundToFixed(aNumber, 2);
+ var res = MochiKit.Format.roundToFixed(aNumber, 2);
if (res.indexOf(".00") > 0) {
@@ -195,3 +195,3 @@ MochiKit.Format.truncToFixed = function (aNumber, precision) {
return fixed;
-}
+};
@@ -207,3 +207,3 @@ MochiKit.Format.roundToFixed = function (aNumber, precision) {
return fixed;
-}
+};
@@ -223,3 +223,3 @@ MochiKit.Format._numberToFixed = function (aNumber, precision) {
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);
@@ -236,3 +236,3 @@ MochiKit.Format._numberToFixed = function (aNumber, precision) {
}
-}
+};
@@ -277,3 +277,3 @@ MochiKit.Format._shiftNumber = function (num, exp) {
return num;
-}
+};
diff --git a/frontend/gamma/js/MochiKit/Iter.js b/frontend/gamma/js/MochiKit/Iter.js
index 524b2bc..77623bc 100644
--- a/frontend/gamma/js/MochiKit/Iter.js
+++ b/frontend/gamma/js/MochiKit/Iter.js
@@ -10,3 +10,3 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
-MochiKit.Base._module('Iter', '1.5', ['Base']);
+MochiKit.Base.module(MochiKit, 'Iter', '1.5', ['Base']);
@@ -224,2 +224,6 @@ MochiKit.Base.update(MochiKit.Iter, {
next: function () {
+ if (start >= stop) {
+ throw self.StopIteration;
+ }
+
var rval;
@@ -229,5 +233,2 @@ MochiKit.Base.update(MochiKit.Iter, {
}
- if (start >= stop) {
- throw self.StopIteration;
- }
start += step;
@@ -282,4 +283,3 @@ MochiKit.Base.update(MochiKit.Iter, {
try {
- var result = argiter[0].next();
- return result;
+ return argiter[0].next();
} catch (e) {
@@ -289,4 +289,2 @@ MochiKit.Base.update(MochiKit.Iter, {
argiter.shift();
- var result = argiter[0].next();
- return result;
}
@@ -415,3 +413,3 @@ MochiKit.Base.update(MochiKit.Iter, {
iterable = self.iter(iterable);
- var rval = [];
+ rval = [];
var a_val;
diff --git a/frontend/gamma/js/MochiKit/Logging.js b/frontend/gamma/js/MochiKit/Logging.js
index f00996b..8b06e0b 100644
--- a/frontend/gamma/js/MochiKit/Logging.js
+++ b/frontend/gamma/js/MochiKit/Logging.js
@@ -10,3 +10,3 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
-MochiKit.Base._module('Logging', '1.5', ['Base']);
+MochiKit.Base.module(MochiKit, 'Logging', '1.5', ['Base']);
@@ -189,3 +189,3 @@ MochiKit.Logging.Logger.prototype = {
if (messages.length) {
- var lst = map(function (m) {
+ var lst = MochiKit.Base.map(function (m) {
return '\n [' + m.num + '] ' + m.level + ': ' + m.info.join(' ');
diff --git a/frontend/gamma/js/MochiKit/LoggingPane.js b/frontend/gamma/js/MochiKit/LoggingPane.js
index c960c21..b7ea120 100644
--- a/frontend/gamma/js/MochiKit/LoggingPane.js
+++ b/frontend/gamma/js/MochiKit/LoggingPane.js
@@ -10,3 +10,3 @@ 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']);
@@ -26,3 +26,6 @@ MochiKit.LoggingPane.createLoggingPane = function (inline/* = false */) {
-/** @id MochiKit.LoggingPane.LoggingPane */
+/**
+ * @id MochiKit.LoggingPane.LoggingPane
+ * @constructor
+ */
MochiKit.LoggingPane.LoggingPane = function (inline/* = false */, logger/* = MochiKit.Logging.logger */) {
@@ -148,3 +151,3 @@ MochiKit.LoggingPane.LoggingPane = function (inline/* = false */, logger/* = Moc
/* 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;
@@ -186,3 +189,3 @@ MochiKit.LoggingPane.LoggingPane = function (inline/* = false */, logger/* = Moc
debugPane.loggingPane = null;
- } catch(e) { logFatal("Bookmarklet was closed incorrectly."); }
+ } catch(e) { MochiKit.Logging.logFatal("Bookmarklet was closed incorrectly."); }
if (inline) {
@@ -226,3 +229,3 @@ MochiKit.LoggingPane.LoggingPane = function (inline/* = false */, logger/* = Moc
event = event || window.event;
- key = event.which || event.keyCode;
+ var key = event.which || event.keyCode;
if (key == 13) {
diff --git a/frontend/gamma/js/MochiKit/MochiKit.js b/frontend/gamma/js/MochiKit/MochiKit.js
index 8e5be68..511e075 100644
--- a/frontend/gamma/js/MochiKit/MochiKit.js
+++ b/frontend/gamma/js/MochiKit/MochiKit.js
@@ -10,10 +10,6 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
-if (typeof(MochiKit) == 'undefined') {
- MochiKit = {};
-}
+var MochiKit = MochiKit || {};
-if (typeof(MochiKit.MochiKit) == 'undefined') {
- /** @id MochiKit.MochiKit */
- MochiKit.MochiKit = {};
-}
+/** @id MochiKit.MochiKit */
+MochiKit.MochiKit = MochiKit.MochiKit || {};
@@ -21,2 +17,3 @@ MochiKit.MochiKit.NAME = "MochiKit.MochiKit";
MochiKit.MochiKit.VERSION = "1.5";
+MochiKit.MochiKit.__export__ = false;
MochiKit.MochiKit.__repr__ = function () {
diff --git a/frontend/gamma/js/MochiKit/MockDOM.js b/frontend/gamma/js/MochiKit/MockDOM.js
index abdb54a..7e6d60b 100644
--- a/frontend/gamma/js/MochiKit/MockDOM.js
+++ b/frontend/gamma/js/MochiKit/MockDOM.js
@@ -10,9 +10,5 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
-if (typeof(MochiKit) == "undefined") {
- MochiKit = {};
-}
+var MochiKit = MochiKit || {};
-if (typeof(MochiKit.MockDOM) == "undefined") {
- MochiKit.MockDOM = {};
-}
+MochiKit.MockDOM = MochiKit.MockDOM || {};
@@ -20,2 +16,3 @@ MochiKit.MockDOM.NAME = "MochiKit.MockDOM";
MochiKit.MockDOM.VERSION = "1.5";
+MochiKit.MockDOM.__export__ = false;
diff --git a/frontend/gamma/js/MochiKit/Position.js b/frontend/gamma/js/MochiKit/Position.js
index 6bc5b39..2680507 100644
--- a/frontend/gamma/js/MochiKit/Position.js
+++ b/frontend/gamma/js/MochiKit/Position.js
@@ -10,3 +10,3 @@ 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']);
diff --git a/frontend/gamma/js/MochiKit/Selector.js b/frontend/gamma/js/MochiKit/Selector.js
index 6aec892..3187fe9 100644
--- a/frontend/gamma/js/MochiKit/Selector.js
+++ b/frontend/gamma/js/MochiKit/Selector.js
@@ -10,3 +10,3 @@ 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']);
@@ -129,4 +129,4 @@ MochiKit.Selector.Selector.prototype = {
} else {
- a = match[2] && parseInt(match) || null;
- b = parseInt(match[3]);
+ a = match[2] && parseInt(match, 10) || null;
+ b = parseInt(match[3], 10);
}
@@ -169,3 +169,3 @@ MochiKit.Selector.Selector.prototype = {
var subselector = new MochiKit.Selector.Selector(pseudoClassArgument);
- conditions.push('!( ' + subselector.buildMatchExpression() + ')')
+ conditions.push('!( ' + subselector.buildMatchExpression() + ')');
break;
@@ -179,3 +179,3 @@ MochiKit.Selector.Selector.prototype = {
return value + '.split(' + repr(delimiter) + ')';
- }
+ };
conditions.push(value + ' != null');
@@ -354,2 +354,8 @@ MochiKit.Base.update(MochiKit.Selector, {
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 = "";
diff --git a/frontend/gamma/js/MochiKit/Signal.js b/frontend/gamma/js/MochiKit/Signal.js
index 7df5619..11590c1 100644
--- a/frontend/gamma/js/MochiKit/Signal.js
+++ b/frontend/gamma/js/MochiKit/Signal.js
@@ -10,3 +10,3 @@ 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']);
@@ -268,2 +268,3 @@ MochiKit.Base.update(MochiKit.Signal.Event.prototype, {
this.type().indexOf('mouse') === 0 ||
+ this.type().indexOf('drag') === 0 ||
this.type().indexOf('click') != -1 ||
@@ -271,3 +272,3 @@ MochiKit.Base.update(MochiKit.Signal.Event.prototype, {
- m.client = new MochiKit.Style.Coordinates(0, 0);
+ m.client = { x: 0, y: 0 };
if (e.clientX || e.clientY) {
@@ -277,3 +278,3 @@ MochiKit.Base.update(MochiKit.Signal.Event.prototype, {
- m.page = new MochiKit.Style.Coordinates(0, 0);
+ m.page = { x: 0, y: 0 };
if (e.pageX || e.pageY) {
@@ -339,3 +340,3 @@ MochiKit.Base.update(MochiKit.Signal.Event.prototype, {
if (this.type() == 'mousewheel') {
- m.wheel = new MochiKit.Style.Coordinates(0, 0);
+ m.wheel = { x: 0, y: 0 };
if (e.wheelDeltaX || e.wheelDeltaY) {
@@ -674,2 +675,14 @@ MochiKit.Base.update(MochiKit.Signal, {
+ /** @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) {
@@ -717,3 +730,3 @@ MochiKit.Base.update(MochiKit.Signal, {
self._disconnect(o);
- if (!self._lock) {
+ if (self._lock === 0) {
observers.splice(i, 1);
@@ -729,3 +742,3 @@ MochiKit.Base.update(MochiKit.Signal, {
self._disconnect(ident);
- if (!self._lock) {
+ if (self._lock === 0) {
observers.splice(idx, 1);
@@ -745,3 +758,3 @@ MochiKit.Base.update(MochiKit.Signal, {
var disconnect = self._disconnect;
- var locked = self._lock;
+ var lock = self._lock;
var dirty = self._dirty;
@@ -755,6 +768,6 @@ MochiKit.Base.update(MochiKit.Signal, {
disconnect(ident);
- if (locked) {
- dirty = true;
- } else {
+ if (lock === 0) {
observers.splice(i, 1);
+ } else {
+ dirty = true;
}
@@ -776,3 +789,3 @@ MochiKit.Base.update(MochiKit.Signal, {
var i, ident;
- var locked = self._lock;
+ var lock = self._lock;
var dirty = self._dirty;
@@ -784,3 +797,3 @@ MochiKit.Base.update(MochiKit.Signal, {
disconnect(ident);
- if (!locked) {
+ if (lock === 0) {
observers.splice(i, 1);
@@ -800,3 +813,3 @@ MochiKit.Base.update(MochiKit.Signal, {
disconnect(ident);
- if (!locked) {
+ if (lock === 0) {
observers.splice(i, 1);
@@ -820,3 +833,3 @@ MochiKit.Base.update(MochiKit.Signal, {
var errors = [];
- self._lock = true;
+ self._lock++;
for (var i = 0; i < observers.length; i++) {
@@ -839,4 +852,4 @@ MochiKit.Base.update(MochiKit.Signal, {
}
- self._lock = false;
- if (self._dirty) {
+ self._lock--;
+ if (self._lock === 0 && self._dirty) {
self._dirty = false;
@@ -863,3 +876,3 @@ MochiKit.Signal.__new__ = function (win) {
this._window = win;
- this._lock = false;
+ this._lock = 0;
this._dirty = false;
diff --git a/frontend/gamma/js/MochiKit/Sortable.js b/frontend/gamma/js/MochiKit/Sortable.js
index 863b506..ca9db21 100644
--- a/frontend/gamma/js/MochiKit/Sortable.js
+++ b/frontend/gamma/js/MochiKit/Sortable.js
@@ -8,3 +8,3 @@ 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']);
@@ -181,3 +181,3 @@ MochiKit.Base.update(MochiKit.Sortable, {
accept: options.accept
- }
+ };
@@ -189,3 +189,3 @@ MochiKit.Base.update(MochiKit.Sortable, {
accept: options.accept
- }
+ };
@@ -432,3 +432,3 @@ MochiKit.Base.update(MochiKit.Sortable, {
container: self._findChildrenElement(children[i], options.treeTag.toUpperCase())
- }
+ };
@@ -436,3 +436,3 @@ MochiKit.Base.update(MochiKit.Sortable, {
if (child.container) {
- self._tree(child.container, options, child)
+ self._tree(child.container, options, child);
}
@@ -477,3 +477,3 @@ MochiKit.Base.update(MochiKit.Sortable, {
position: 0
- }
+ };
diff --git a/frontend/gamma/js/MochiKit/Style.js b/frontend/gamma/js/MochiKit/Style.js
index 7f10117..740fd2f 100644
--- a/frontend/gamma/js/MochiKit/Style.js
+++ b/frontend/gamma/js/MochiKit/Style.js
@@ -8,5 +8,8 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
+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']);
@@ -181,3 +184,3 @@ MochiKit.Base.update(MochiKit.Style, {
typeof(o.y) == "number";
- }
+ };
@@ -199,3 +202,3 @@ MochiKit.Base.update(MochiKit.Style, {
- if (!elem.parentNode && elem.x && elem.y) {
+ if (isCoordinates(elem)) {
/* it's just a MochiKit.Style.Coordinates object */
@@ -230,4 +233,4 @@ MochiKit.Base.update(MochiKit.Style, {
while (parent) {
- c.x += parseInt(parent.style.borderLeftWidth) || 0;
- c.y += parseInt(parent.style.borderTopWidth) || 0;
+ c.x += parseInt(parent.style.borderLeftWidth, 10) || 0;
+ c.y += parseInt(parent.style.borderTopWidth, 10) || 0;
c.x += parent.offsetLeft;
@@ -392,3 +395,3 @@ MochiKit.Base.update(MochiKit.Style, {
var collapse = (tableCell && elem.parentNode && self.getStyle(
- elem.parentNode, 'borderCollapse') == 'collapse')
+ elem.parentNode, 'borderCollapse') == 'collapse');
if (collapse) {
@@ -545,4 +548,4 @@ MochiKit.Base.update(MochiKit.Style, {
// Backwards compatibility aliases
- m._deprecated(this, 'elementPosition', 'MochiKit.Style.getElementPosition', '1.3');
- m._deprecated(this, 'elementDimensions', 'MochiKit.Style.getElementDimensions', '1.3');
+ m._deprecated(this, 'elementPosition', 'MochiKit.Style.getElementPosition', '1.3', true);
+ m._deprecated(this, 'elementDimensions', 'MochiKit.Style.getElementDimensions', '1.3', true);
diff --git a/frontend/gamma/js/MochiKit/Test.js b/frontend/gamma/js/MochiKit/Test.js
index 9520ab2..f29670f 100644
--- a/frontend/gamma/js/MochiKit/Test.js
+++ b/frontend/gamma/js/MochiKit/Test.js
@@ -10,3 +10,3 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
-MochiKit.Base._module('Test', '1.5', ['Base']);
+MochiKit.Base.module(MochiKit, 'Test', '1.5', ['Base']);
diff --git a/frontend/gamma/js/MochiKit/Text.js b/frontend/gamma/js/MochiKit/Text.js
index a44f7e4..ff6366d 100644
--- a/frontend/gamma/js/MochiKit/Text.js
+++ b/frontend/gamma/js/MochiKit/Text.js
@@ -10,3 +10,3 @@ 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']);
@@ -24,3 +24,3 @@ MochiKit.Text.startsWith = function (substr, str) {
return str != null && substr != null && str.indexOf(substr) == 0;
-}
+};
@@ -39,3 +39,3 @@ MochiKit.Text.endsWith = function (substr, str) {
str.lastIndexOf(substr) == Math.max(str.length - substr.length, 0);
-}
+};
@@ -53,3 +53,3 @@ MochiKit.Text.contains = function (substr, str) {
return str != null && substr != null && str.indexOf(substr) >= 0;
-}
+};
@@ -73,3 +73,3 @@ MochiKit.Text.padLeft = function (str, minLength, fillChar) {
return str;
-}
+};
@@ -93,3 +93,3 @@ MochiKit.Text.padRight = function (str, minLength, fillChar) {
return str;
-}
+};
@@ -121,25 +121,51 @@ MochiKit.Text.truncate = function (str, maxLength, tail) {
}
-}
+};
/**
- * Splits a text string, applies a function and joins the results
- * back together again. This is a convenience function for calling
- * split(), map() and join() separately. It can be used to easily
- * trim each line in a text string (using the strip function), or to
- * translate a text word-by-word.
+ * Splits a text string using separator as the split point
+ * If max is given, at most max splits are done, giving at most
+ * max + 1 elements in the returned list.
*
- * @param {Function} func the function to apply
* @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
+ * @param {Number} [max] the maximum number of parts to return
+ * @return {Array} an array of parts of the string
+ */
+MochiKit.Text.split = 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(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
*
- * @return {String} a string with the joined up results
+ * @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.splitJoin = function (func, str, separator) {
- if (str == null || str.length == 0) {
+MochiKit.Text.rsplit = function (str, separator, max) {
+ if (str == null) {
return str;
}
- separator = separator || '\n'
- return MochiKit.Base.map(func, str.split(separator)).join(separator);
-}
+ 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;
+};
@@ -160,3 +186,3 @@ MochiKit.Text.splitJoin = function (func, str, separator) {
MochiKit.Text.formatter = function (pattern, locale) {
- if (typeof(locale) == "undefined") {
+ if (locale == null) {
locale = MochiKit.Format.formatLocale();
@@ -177,4 +203,4 @@ MochiKit.Text.formatter = function (pattern, locale) {
return res.join("");
- }
-}
+ };
+};
@@ -195,3 +221,3 @@ MochiKit.Text.format = function (pattern/*, ...*/) {
return func.apply(this, MochiKit.Base.extend([], arguments, 1));
-}
+};
@@ -207,2 +233,4 @@ MochiKit.Text.format = function (pattern/*, ...*/) {
* @return {String} the formatted output string
+ *
+ * @throws FormatPatternError if the format specifier was invalid
*/
@@ -211,3 +239,3 @@ MochiKit.Text.formatValue = function (spec, value, locale) {
if (typeof(spec) === "string") {
- spec = self._parseFormatFlags(spec, 0, spec.length - 1);
+ spec = self._parseFormatFlags(spec, 0, spec.length);
}
@@ -218,3 +246,3 @@ MochiKit.Text.formatValue = function (spec, value, locale) {
}
- if (typeof(locale) == "undefined") {
+ if (locale == null) {
locale = MochiKit.Format.formatLocale();
@@ -224,3 +252,6 @@ MochiKit.Text.formatValue = function (spec, value, locale) {
var str = "";
- if (spec.numeric) {
+ if (spec.type == "number") {
+ if (value instanceof Number) {
+ value = value.valueOf();
+ }
if (typeof(value) != "number" || isNaN(value)) {
@@ -232,4 +263,3 @@ MochiKit.Text.formatValue = function (spec, value, locale) {
} else {
- var sign = (spec.sign === "-") ? "" : spec.sign;
- sign = (value < 0) ? "-" : sign;
+ var sign = (value < 0) ? "-" : spec.sign;
value = Math.abs(value);
@@ -256,3 +286,3 @@ MochiKit.Text.formatValue = function (spec, value, locale) {
}
- str = self._localizeNumber(str, locale, spec.grouping);
+ str = self._localizeNumber(str, locale, spec.group);
str = sign + str;
@@ -266,3 +296,3 @@ MochiKit.Text.formatValue = function (spec, value, locale) {
} else {
- str = (value == null) ? "null" : value.toString();
+ str = (value == null) ? "" : value.toString();
}
@@ -276,3 +306,3 @@ MochiKit.Text.formatValue = function (spec, value, locale) {
return str;
-}
+};
@@ -286,3 +316,3 @@ MochiKit.Text.formatValue = function (spec, value, locale) {
* @param {Object} locale the formatting locale to use
- * @param {Boolean} grouping the grouping flag
+ * @param {Boolean} group the grouping flag
*
@@ -290,3 +320,3 @@ MochiKit.Text.formatValue = function (spec, value, locale) {
*/
-MochiKit.Text._localizeNumber = function (num, locale, grouping) {
+MochiKit.Text._localizeNumber = function (num, locale, group) {
var parts = num.split(/\./);
@@ -295,3 +325,3 @@ MochiKit.Text._localizeNumber = function (num, locale, grouping) {
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;
@@ -303,5 +333,5 @@ MochiKit.Text._localizeNumber = function (num, locale, grouping) {
if (frac.length > 0) {
- res += frac;
+ res = res + frac;
}
- while (grouping && whole.length > 3) {
+ while (group && whole.length > 3) {
var pos = whole.length - 3;
@@ -311,3 +341,3 @@ MochiKit.Text._localizeNumber = function (num, locale, grouping) {
return whole + res;
-}
+};
@@ -326,40 +356,28 @@ MochiKit.Text._parsePattern = function (pattern) {
var parts = [];
- var start = 0;
- var pos = 0;
- for (pos = 0; pos < pattern.length; pos++) {
- if (pattern.charAt(pos) == "{") {
- if (pos + 1 >= pattern.length) {
- var msg = "unescaped { char, should be escaped as {{";
- throw new self.FormatPatternError(pattern, pos, msg);
- } else if (pattern.charAt(pos + 1) == "{") {
- parts.push(pattern.substring(start, pos + 1));
- start = pos + 2;
- pos++;
- } else {
- if (start < pos) {
- parts.push(pattern.substring(start, pos));
- }
- start = pattern.indexOf("}", pos) + 1;
- if (start <= 0) {
- var msg = "unmatched { char, not followed by a } char";
- throw new self.FormatPatternError(pattern, pos, 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++;
+ var re = /{[^{}]*}|{{?|}}?/g;
+ var lastPos = re.lastIndex = 0;
+ var m;
+ while ((m = re.exec(pattern)) != null) {
+ if (lastPos < m.index) {
+ parts.push(pattern.substring(lastPos, m.index))
+ }
+ var str = m[0];
+ lastPos = m.index + str.length;
+ if (self.startsWith("{", str) && self.endsWith("}", str)) {
+ parts.push(self._parseFormat(pattern, m.index + 1, lastPos - 1));
+ } else if (self.startsWith("{{", str) || self.startsWith("}}", str)) {
+ parts.push(str.substring(1));
+ } else if (self.startsWith("{", str)) {
+ var msg = "unescaped { char, should be escaped as {{";
+ throw new self.FormatPatternError(pattern, m.index, msg);
+ } else if (self.startsWith("}", str)) {
+ var msg = "unescaped } char, should be escaped as }}";
+ throw new self.FormatPatternError(pattern, m.index, msg);
}
}
- if (start < pos) {
- parts.push(pattern.substring(start, pos));
+ if (lastPos < pattern.length) {
+ parts.push(pattern.substring(lastPos));
}
return parts;
-}
+};
@@ -379,32 +397,22 @@ MochiKit.Text._parseFormat = function (pattern, startPos, endPos) {
var text = pattern.substring(startPos, endPos);
- var info;
- var pos = text.indexOf(":");
- if (pos == 0) {
- info = self._parseFormatFlags(pattern, startPos + 1, endPos);
- info.path = [0];
- } 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+$/;
+ var parts = self.split(text, ":", 1);
+ var path = parts[0];
+ var flagsPos = startPos + path.length + ((parts.length == 1) ? 0 : 1);
+ var info = self._parseFormatFlags(pattern, flagsPos, endPos);
+ info.path = (path == "") ? [] : path.split(".");
for (var i = 0; i < info.path.length; i++) {
- var e = info.path[i];
- if (typeof(e) == "string") {
- // TODO: replace with MochiKit.Format.strip?
- e = e.replace(/^\s+/, "").replace(/\s+$/, "");
- if (e == "" && info.path.length == 1) {
- e = 0;
- } else if (e == "") {
- var msg = "format value path contains blanks";
- throw new self.FormatPatternError(pattern, startPos, msg);
- } else if (DIGITS.test(e)) {
- e = parseInt(e);
- }
+ var v = info.path[i];
+ // TODO: replace with MochiKit.Format.strip?
+ v = v.replace(/^\s+/, "").replace(/\s+$/, "");
+ if (v == "" && info.path.length == 1) {
+ v = 0;
+ } else if (v == "") {
+ var msg = "format value path contains blanks";
+ throw new self.FormatPatternError(pattern, startPos, msg);
+ } else if (/^\d+$/.test(v)) {
+ v = parseInt(v, 10);
}
- 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);
@@ -412,3 +420,3 @@ MochiKit.Text._parseFormat = function (pattern, startPos, endPos) {
return info;
-}
+};
@@ -426,77 +434,48 @@ MochiKit.Text._parseFormat = function (pattern, startPos, endPos) {
MochiKit.Text._parseFormatFlags = function (pattern, startPos, endPos) {
- var self = MochiKit.Text;
- var info = { numeric: false, format: "s", width: 0, precision: -1,
- align: ">", sign: "-", padding: " ", grouping: false };
+ var update = MochiKit.Base.update;
+ var info = { type: "string", format: "s", width: 0, precision: -1,
+ align: ">", sign: "", padding: " ", group: false };
// TODO: replace with MochiKit.Format.rstrip?
- var flags = pattern.substring(startPos, endPos).replace(/\s+$/, "");
- while (flags.length > 0) {
- switch (flags.charAt(0)) {
- case ">":
- case "<":
- info.align = flags.charAt(0);
- flags = flags.substring(1);
- break;
- case "+":
- case "-":
- case " ":
- info.sign = flags.charAt(0);
- flags = flags.substring(1);
- break;
- case ",":
- info.grouping = true;
- flags = flags.substring(1);
- 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);
+ var text = pattern.substring(startPos, endPos).replace(/\s+$/, "");
+ var m = /^([<>+ 0,-]+)?(\d+)?(\.\d*)?([srbdoxXf%])?(.*)$/.exec(text);
+ var flags = m[1];
+ var width = m[2];
+ var precision = m[3];
+ var type = m[4];
+ var unmatched = m[5];
+ for (var i = 0; flags && i < flags.length; i++) {
+ var chr = flags.charAt(i);
+ if (chr == "<" || chr == ">") {
+ info.align = chr;
+ } else if (chr == "+" || chr == "-" || chr == " ") {
+ info.sign = (chr == "-") ? "" : chr;
+ } else if (chr == "0") {
+ info.padding = chr;
+ } else if (chr == ",") {
+ info.group = true;
}
}
+ 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;
-}
+};
@@ -512,4 +491,4 @@ MochiKit.Text._parseFormatFlags = function (pattern, startPos, endPos) {
MochiKit.Text._truncToPercent = function (value, precision) {
- // TODO: This can be simplified by using the same helper function
- // as roundToFixed now does.
+ // TODO: This can be simplified by using MochiKit.Format._shiftNumber
+ // as roundToFixed does.
var str;
@@ -520,21 +499,11 @@ MochiKit.Text._truncToPercent = function (value, precision) {
}
- var fracPos = str.indexOf(".");
- if (fracPos < 0) {
- str = str + "00";
- } else if (fracPos + 3 >= str.length) {
- var fraction = str.substring(fracPos + 1);
- while (fraction.length < 2) {
- 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) != ".") {
- str = str.substring(1);
+ var arr = MochiKit.Text.split(str, ".", 2);
+ var frac = MochiKit.Text.padRight(arr[1], 2, "0");
+ var whole = arr[0] + frac.substring(0, 2);
+ frac = frac.substring(2);
+ while (/^0[0-9]/.test(whole)) {
+ whole = whole.substring(1);
}
- return str;
-}
+ return (frac.length <= 0) ? whole : whole + "." + frac;
+};
@@ -560,9 +529,9 @@ MochiKit.Text.FormatPatternError = function (pattern, pos, 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
//
diff --git a/frontend/gamma/js/MochiKit/Visual.js b/frontend/gamma/js/MochiKit/Visual.js
index 648d82a..372d99a 100644
--- a/frontend/gamma/js/MochiKit/Visual.js
+++ b/frontend/gamma/js/MochiKit/Visual.js
@@ -10,3 +10,3 @@ 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']);
@@ -471,2 +471,7 @@ MochiKit.Visual.Transitions.parabolic = function (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 */
@@ -536,2 +541,7 @@ MochiKit.Base.update(MochiKit.Visual.ScopedQueue.prototype, {
break;
+ case 'replace':
+ ma(function (e) {
+ e.cancel();
+ }, this.effects);
+ break;
}
@@ -664,4 +674,8 @@ MochiKit.Visual.Base.prototype = {
if (this.state == 'running') {
- if (this.options.transition) {
- pos = this.options.transition(pos);
+ var trans = this.options.transition;
+ if (typeof(trans) == "string") {
+ trans = MochiKit.Visual.Transitions[trans];
+ }
+ if (typeof(trans) == "function") {
+ pos = trans(pos);
}
@@ -1688,4 +1702,4 @@ MochiKit.Visual.squish = function (element, /* optional */ options) {
restoreAfterFinish: true,
- scaleMode: {originalHeight: elementDimensions.w,
- originalWidth: elementDimensions.h},
+ scaleMode: {originalHeight: elementDimensions.h,
+ originalWidth: elementDimensions.w},
beforeSetupInternal: function (effect) {
@@ -1960,16 +1974,3 @@ MochiKit.Visual.fold = function (element, /* optional */ options) {
-/* end of Rico adaptation */
-
-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.nameFunctions(MochiKit.Visual);
MochiKit.Base._exportSymbols(this, MochiKit.Visual);
diff --git a/frontend/gamma/js/MochiKit/__package__.js b/frontend/gamma/js/MochiKit/__package__.js
deleted file mode 100644
index 8d644b1..0000000
--- a/frontend/gamma/js/MochiKit/__package__.js
+++ b/dev/null
@@ -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.*");
diff --git a/frontend/gamma/js/main.js b/frontend/gamma/js/main.js
index a9fd65e..934b325 100644
--- a/frontend/gamma/js/main.js
+++ b/frontend/gamma/js/main.js
@@ -83,7 +83,7 @@ function run() {
-//Clipperz.log("HASH: " + window.location.hash);
-if (window.location.hash != "") {
- window.location.hash = ""
-}
-//Clipperz.log("HASH cleaned");
+ //Clipperz.log("HASH: " + window.location.hash);
+// if (window.location.hash != "") {
+// window.location.hash = ""
+// }
+// Clipperz.log("HASH cleaned");
// #credentials=base64encoded({username:'joe', passphrase:'clipperz'})
diff --git a/frontend/gamma/properties/gamma.properties.json b/frontend/gamma/properties/gamma.properties.json
index 8f2d98e..0a513e8 100644
--- a/frontend/gamma/properties/gamma.properties.json
+++ b/frontend/gamma/properties/gamma.properties.json
@@ -2,5 +2,8 @@
"copyright.values": {
- "mochikit.repository": "http://svn.mochikit.com/mochikit/trunk/",
- "mochikit.version": "1506"
+ "mochikit.repository": "https://github.com/mochi/mochikit.git",
+ "mochikit.version": "fe8d17bb9ac0a4e5ad4a8d5c2c94a6fac1c92d75"
},
+
+ "html.template": "index_template.html",
+
"js": [
diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/AES.html b/frontend/gamma/tests/tests/Clipperz/Crypto/AES.html
index 828ccb8..16f64d0 100644
--- a/frontend/gamma/tests/tests/Clipperz/Crypto/AES.html
+++ b/frontend/gamma/tests/tests/Clipperz/Crypto/AES.html
@@ -30,3 +30,2 @@ refer to http://www.clipperz.com.
<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>
diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/AES.performance.html b/frontend/gamma/tests/tests/Clipperz/Crypto/AES.performance.html
index 4817096..a90d815 100644
--- a/frontend/gamma/tests/tests/Clipperz/Crypto/AES.performance.html
+++ b/frontend/gamma/tests/tests/Clipperz/Crypto/AES.performance.html
@@ -34,3 +34,2 @@ refer to http://www.clipperz.com.
<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>
diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/Base.html b/frontend/gamma/tests/tests/Clipperz/Crypto/Base.html
index 0ffcdb8..83f0766 100644
--- a/frontend/gamma/tests/tests/Clipperz/Crypto/Base.html
+++ b/frontend/gamma/tests/tests/Clipperz/Crypto/Base.html
@@ -28,3 +28,2 @@ refer to http://www.clipperz.com.
<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>
diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/BigInt.html b/frontend/gamma/tests/tests/Clipperz/Crypto/BigInt.html
index b970a9a..f4db3b7 100644
--- a/frontend/gamma/tests/tests/Clipperz/Crypto/BigInt.html
+++ b/frontend/gamma/tests/tests/Clipperz/Crypto/BigInt.html
@@ -28,3 +28,2 @@ refer to http://www.clipperz.com.
<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>
diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.FiniteField.B283.html b/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.FiniteField.B283.html
index 6024021..93d8695 100644
--- a/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.FiniteField.B283.html
+++ b/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.FiniteField.B283.html
@@ -28,3 +28,2 @@ refer to http://www.clipperz.com.
<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>
diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.FiniteField.html b/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.FiniteField.html
index 5a7a4f7..658c402 100644
--- a/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.FiniteField.html
+++ b/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.FiniteField.html
@@ -28,3 +28,2 @@ refer to http://www.clipperz.com.
<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>
diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.Value.html b/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.Value.html
index c58cf42..0d0903d 100644
--- a/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.Value.html
+++ b/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.Value.html
@@ -28,3 +28,2 @@ refer to http://www.clipperz.com.
<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>
diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/PRNG.html b/frontend/gamma/tests/tests/Clipperz/Crypto/PRNG.html
index 438d96f..61aa1c2 100644
--- a/frontend/gamma/tests/tests/Clipperz/Crypto/PRNG.html
+++ b/frontend/gamma/tests/tests/Clipperz/Crypto/PRNG.html
@@ -30,3 +30,2 @@ refer to http://www.clipperz.com.
<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>
diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/RSA.html b/frontend/gamma/tests/tests/Clipperz/Crypto/RSA.html
index f29f894..4c7fd86 100644
--- a/frontend/gamma/tests/tests/Clipperz/Crypto/RSA.html
+++ b/frontend/gamma/tests/tests/Clipperz/Crypto/RSA.html
@@ -28,3 +28,2 @@ refer to http://www.clipperz.com.
<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>
diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/SHA.html b/frontend/gamma/tests/tests/Clipperz/Crypto/SHA.html
index a580491..a2f6c04 100644
--- a/frontend/gamma/tests/tests/Clipperz/Crypto/SHA.html
+++ b/frontend/gamma/tests/tests/Clipperz/Crypto/SHA.html
@@ -65,3 +65,2 @@ refer to http://www.clipperz.com.
<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>
diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/SRP.html b/frontend/gamma/tests/tests/Clipperz/Crypto/SRP.html
index d0ee153..ba842a9 100644
--- a/frontend/gamma/tests/tests/Clipperz/Crypto/SRP.html
+++ b/frontend/gamma/tests/tests/Clipperz/Crypto/SRP.html
@@ -28,3 +28,2 @@ refer to http://www.clipperz.com.
<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>
diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/Usage.html b/frontend/gamma/tests/tests/Clipperz/Crypto/Usage.html
index 8920915..4e7ad3d 100644
--- a/frontend/gamma/tests/tests/Clipperz/Crypto/Usage.html
+++ b/frontend/gamma/tests/tests/Clipperz/Crypto/Usage.html
@@ -30,3 +30,2 @@ refer to http://www.clipperz.com.
<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>
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/Date.html b/frontend/gamma/tests/tests/Clipperz/PM/Date.html
index a606ca4..7b87185 100644
--- a/frontend/gamma/tests/tests/Clipperz/PM/Date.html
+++ b/frontend/gamma/tests/tests/Clipperz/PM/Date.html
@@ -30,3 +30,2 @@ refer to http://www.clipperz.com.
<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>
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/Proxy.html b/frontend/gamma/tests/tests/Clipperz/PM/Proxy.html
index 8dc533f..8177285 100644
--- a/frontend/gamma/tests/tests/Clipperz/PM/Proxy.html
+++ b/frontend/gamma/tests/tests/Clipperz/PM/Proxy.html
@@ -30,3 +30,2 @@ refer to http://www.clipperz.com.
<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>
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/Toll.html b/frontend/gamma/tests/tests/Clipperz/PM/Toll.html
index 9baf167..6c2e000 100644
--- a/frontend/gamma/tests/tests/Clipperz/PM/Toll.html
+++ b/frontend/gamma/tests/tests/Clipperz/PM/Toll.html
@@ -30,3 +30,2 @@ refer to http://www.clipperz.com.
<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>
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/UI/Web/Controllers/MainController.html b/frontend/gamma/tests/tests/Clipperz/PM/UI/Web/Controllers/MainController.html
index 04f0e70..1eea01b 100644
--- a/frontend/gamma/tests/tests/Clipperz/PM/UI/Web/Controllers/MainController.html
+++ b/frontend/gamma/tests/tests/Clipperz/PM/UI/Web/Controllers/MainController.html
@@ -30,3 +30,2 @@ refer to http://www.clipperz.com.
<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>
diff --git a/frontend/gamma/tests/tests/Clipperz/RoboFormExportProcessor.html b/frontend/gamma/tests/tests/Clipperz/RoboFormExportProcessor.html
index 87cde0f..b4500e3 100644
--- a/frontend/gamma/tests/tests/Clipperz/RoboFormExportProcessor.html
+++ b/frontend/gamma/tests/tests/Clipperz/RoboFormExportProcessor.html
@@ -28,3 +28,2 @@ refer to http://www.clipperz.com.
<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>
diff --git a/frontend/gamma/tests/tests/Components/CardDialogNew/index.html b/frontend/gamma/tests/tests/Components/CardDialogNew/index.html
index 2d502b4..64f9e4d 100644
--- a/frontend/gamma/tests/tests/Components/CardDialogNew/index.html
+++ b/frontend/gamma/tests/tests/Components/CardDialogNew/index.html
@@ -103,5 +103,3 @@ Clipperz_IEisBroken = true;
- <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/clipperz.css" />
- <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/compact.css" />
- <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/ytheme-clipperz.css" />
+ <link rel="stylesheet" type="text/css" href="../../../../css/web.css" />
diff --git a/frontend/gamma/tests/tests/Components/Tooltips/index.html b/frontend/gamma/tests/tests/Components/Tooltips/index.html
index 02c6c34..3772227 100644
--- a/frontend/gamma/tests/tests/Components/Tooltips/index.html
+++ b/frontend/gamma/tests/tests/Components/Tooltips/index.html
@@ -101,5 +101,3 @@ Clipperz_IEisBroken = true;
- <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/clipperz.css" />
- <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/compact.css" />
- <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/ytheme-clipperz.css" />
+ <link rel="stylesheet" type="text/css" href="../../../../css/web.css" />