42 files changed, 620 insertions, 526 deletions
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 @@ -7,9 +7,9 @@ See <http://mochikit.com/> for documentation, downloads, license, etc. (c) 2005 Bob Ippolito. All rights Reserved. ***/ -MochiKit.Base._module('Async', '1.5', ['Base']); +MochiKit.Base.module(MochiKit, 'Async', '1.5', ['Base']); /** @id MochiKit.Async.Deferred */ MochiKit.Async.Deferred = function (/* optional */ canceller) { this.chain = []; @@ -19,42 +19,51 @@ MochiKit.Async.Deferred = function (/* optional */ canceller) { this.results = [null, null]; this.canceller = canceller; this.silentlyCancelled = false; this.chained = false; + this.finalized = false; }; MochiKit.Async.Deferred.prototype = { /** @id MochiKit.Async.Deferred.prototype.repr */ 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() + ')'; }, toString: MochiKit.Base.forwardCall("repr"), _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 */ - cancel: function () { + cancel: function (e) { var self = MochiKit.Async; if (this.fired == -1) { if (this.canceller) { this.canceller(this); } else { this.silentlyCancelled = true; } 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); } }, _resback: function (res) { @@ -64,9 +73,11 @@ MochiKit.Async.Deferred.prototype = { ***/ this.fired = ((res instanceof Error) ? 1 : 0); this.results[this.fired] = res; - this._fire(); + if (this.paused === 0) { + this._fire(); + } }, _check: function () { if (this.fired != -1) { @@ -128,15 +139,36 @@ MochiKit.Async.Deferred.prototype = { addCallbacks: function (cb, eb) { 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"); + } this.chain.push([cb, eb]); if (this.fired >= 0) { this._fire(); } 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 () { /*** Used internally to exhaust the callback sequence when a result @@ -159,13 +191,10 @@ MochiKit.Async.Deferred.prototype = { res = f(res); fired = ((res instanceof Error) ? 1 : 0); if (res instanceof MochiKit.Async.Deferred) { cb = function (res) { - self._resback(res); self.paused--; - if ((self.paused === 0) && (self.fired >= 0)) { - self._fire(); - } + self._resback(res); }; this.paused++; } } catch (err) { @@ -177,8 +206,12 @@ MochiKit.Async.Deferred.prototype = { } } this.fired = fired; this.results[fired] = res; + if (this.chain.length == 0 && this.paused === 0 && this._finalizer) { + this.finalized = true; + this._finalizer(res); + } if (cb && this.paused) { // this is for "tail recursion" in case the dependent deferred // is already fired res.addBoth(cb); @@ -248,9 +281,9 @@ MochiKit.Base.update(MochiKit.Async, { } var status = null; try { 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 status = 304; } } catch (e) { @@ -336,9 +369,10 @@ MochiKit.Base.update(MochiKit.Async, { queryString: undefined, username: undefined, password: undefined, headers: undefined, - mimeType: undefined + mimeType: undefined, + responseType: undefined */ }, opts); var self = MochiKit.Async; var req = self.getXMLHttpRequest(); @@ -370,8 +404,11 @@ MochiKit.Base.update(MochiKit.Async, { var value = header[1]; req.setRequestHeader(name, value); } } + if ("responseType" in opts && "responseType" in req) { + req.responseType = opts.responseType; + } return self.sendXMLHttpRequest(req, opts.sendContent); }, _buildURL: function (url/*, ...*/) { @@ -403,18 +440,46 @@ MochiKit.Base.update(MochiKit.Async, { d = d.addCallback(self.evalJSONRequest); 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 */ wait: function (seconds, /* optional */value) { 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 () { try { clearTimeout(timeout); } catch (e) { @@ -509,8 +574,9 @@ MochiKit.Async.DeferredList = function (list, /* optional */fireOnOneCallback, f }; 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) { this.resultList[index] = [succeeded, result]; this.finishedCount += 1; 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 @@ -7,50 +7,61 @@ See <http://mochikit.com/> for documentation, downloads, license, etc. (c) 2005 Bob Ippolito. All rights Reserved. ***/ -if (typeof(MochiKit) == 'undefined') { - MochiKit = {}; -} + +// MochiKit module (namespace) +var MochiKit = MochiKit || {}; if (typeof(MochiKit.__export__) == "undefined") { MochiKit.__export__ = true; } -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; module.__repr__ = function () { return "[" + this.NAME + " " + this.VERSION + "]"; }; module.toString = function () { return this.__repr__(); }; - 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", []); /** @id MochiKit.Base.update */ MochiKit.Base.update = function (self, obj/*, ... */) { if (self === null || self === undefined) { @@ -239,8 +250,9 @@ MochiKit.Base.update(MochiKit.Base, { _newNamedError: function (module, name, func) { func.prototype = new MochiKit.Base.NamedError(module.NAME + "." + name); + func.prototype.constructor = func; module[name] = func; }, @@ -350,9 +362,9 @@ MochiKit.Base.update(MochiKit.Base, { value != "undefined" && value != "0"; } else if (typeof(value) === "number" || value instanceof Number) { return !isNaN(value) && value != 0; } else if (value != null && typeof(value.length) === "number") { - return value.length !== 0 + return value.length !== 0; } else { return value != null; } }, @@ -674,8 +686,11 @@ MochiKit.Base.update(MochiKit.Base, { }; newfunc.im_self = im_self; newfunc.im_func = im_func; newfunc.im_preargs = im_preargs; + if (typeof(im_func.NAME) == 'string') { + newfunc.NAME = "bind(" + im_func.NAME + ",...)"; + } return newfunc; }, /** @id MochiKit.Base.bindLate */ @@ -787,13 +802,16 @@ MochiKit.Base.update(MochiKit.Base, { return o.repr(); } return MochiKit.Base.reprRegistry.match(o); } 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) { } } try { var ostring = (o + ""); @@ -839,18 +857,15 @@ 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) + ")"); }, _filterJSON: function (s) { var m = s.match(/^\s*\/\*(.*)\*\/\s*$/); - if (m) { - return m[1]; - } - return s; + return (m) ? m[1] : s; }, /** @id MochiKit.Base.serializeJSON */ serializeJSON: function (o) { @@ -893,8 +908,14 @@ MochiKit.Base.update(MochiKit.Base, { var me = arguments.callee; // short-circuit for objects that support "json" serialization // if they return "self" then just pass-through... var newObj; + if (typeof(o.toJSON) == "function") { + newObj = o.toJSON(); + if (o !== newObj) { + return me(newObj); + } + } if (typeof(o.__json__) == "function") { newObj = o.__json__(); if (o !== newObj) { return me(newObj); @@ -1099,9 +1120,9 @@ MochiKit.Base.update(MochiKit.Base, { var data = MochiKit.Base.flattenArguments(arguments); if (data.length === 0) { throw new TypeError('median() requires at least one argument'); } - data.sort(compare); + data.sort(MochiKit.Base.compare); if (data.length % 2 == 0) { var upper = data.length / 2; return (data[upper] + data[upper - 1]) / 2; } else { @@ -1289,21 +1310,47 @@ MochiKit.Base.AdapterRegistry.prototype = { return false; } }; -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]; + } + } } } } + 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); + } }; /** * Creates a deprecated function alias in the specified module. The @@ -1320,9 +1367,9 @@ MochiKit.Base._exportSymbols = function (globals, module) { * function (e.g. 'MochiKit.Style.getStyle') * @param {String} version the first version when the source function * was deprecated (e.g. '1.4') * @param {Boolean} [exportable] the exportable function flag, - * defaults to true + * defaults to false */ MochiKit.Base._deprecated = function (module, name, target, version, exportable) { if (typeof(module) === 'string') { if (module.indexOf('MochiKit.') === 0) { @@ -1348,23 +1395,21 @@ MochiKit.Base._deprecated = function (module, name, target, version, exportable) throw new Error(msg); } return MochiKit[targetModule][targetName].apply(this, arguments); }; - if (exportable === false) { - func.__export__ = false; - } + func.__export__ = (exportable === true); module[name] = func; -} +}; MochiKit.Base.__new__ = function () { var m = this; /** @id MochiKit.Base.noop */ m.noop = m.operator.identity; // 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'); if (typeof(encodeURIComponent) != "undefined") { /** @id MochiKit.Base.urlEncode */ m.urlEncode = function (unencoded) { @@ -1374,9 +1419,9 @@ MochiKit.Base.__new__ = function () { m.urlEncode = function (unencoded) { return escape(unencoded ).replace(/\+/g, '%2B' ).replace(/\"/g,'%22' - ).rval.replace(/\'/g, '%27'); + ).replace(/\'/g, '%27'); }; } /** @id MochiKit.Base.NamedError */ @@ -1384,8 +1429,9 @@ MochiKit.Base.__new__ = function () { this.message = name; this.name = name; }; m.NamedError.prototype = new Error(); + m.NamedError.prototype.constructor = m.NamedError; m.update(m.NamedError.prototype, { repr: function () { if (this.message && this.message != this.name) { return this.name + "(" + m.repr(this.message) + ")"; @@ -1408,8 +1454,10 @@ MochiKit.Base.__new__ = function () { /** @id MochiKit.Base.isCallable */ m.isCallable = m.typeMatcher('function'); /** @id MochiKit.Base.isUndefined */ m.isUndefined = m.typeMatcher('undefined'); + /** @id MochiKit.Base.isValue */ + m.isValue = m.typeMatcher('boolean', 'number', 'string'); /** @id MochiKit.Base.merge */ m.merge = m.partial(m.update, null); /** @id MochiKit.Base.zip */ 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 @@ -7,9 +7,9 @@ See <http://mochikit.com/> for documentation, downloads, license, etc. (c) 2005 Bob Ippolito and others. All rights Reserved. ***/ -MochiKit.Base._module('Color', '1.5', ['Base', 'DOM', 'Style']); +MochiKit.Base.module(MochiKit, 'Color', '1.5', ['Base', 'DOM', 'Style']); /** @id MochiKit.Color.Color */ MochiKit.Color.Color = function (red, green, blue, alpha) { if (typeof(alpha) == 'undefined' || alpha === null) { @@ -111,9 +111,9 @@ MochiKit.Color.Color.prototype = { }, /** @id MochiKit.Color.Color.prototype.isLight */ isLight: function () { - return this.asHSL().b > 0.5; + return this.asHSL().l > 0.5; }, /** @id MochiKit.Color.Color.prototype.isDark */ isDark: function () { @@ -640,21 +640,12 @@ MochiKit.Base.update(MochiKit.Color, { /** @id MochiKit.Color.yellowColor */ 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) { 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); } var isColor = function () { for (var i = 0; i < arguments.length; i++) { 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 @@ -7,9 +7,9 @@ See <http://mochikit.com/> for documentation, downloads, license, etc. (c) 2005 Bob Ippolito. All rights Reserved. ***/ -MochiKit.Base._module('DOM', '1.5', ['Base']); +MochiKit.Base.module(MochiKit, 'DOM', '1.5', ['Base']); MochiKit.Base.update(MochiKit.DOM, { /** @id MochiKit.DOM.currentWindow */ @@ -296,22 +296,22 @@ MochiKit.Base.update(MochiKit.DOM, { /** @id MochiKit.DOM.updateNodeAttributes */ updateNodeAttributes: function (node, attrs) { var elem = node; var self = MochiKit.DOM; + var base = MochiKit.Base; if (typeof(node) == 'string') { elem = self.getElement(node); } if (attrs) { - var updatetree = MochiKit.Base.updatetree; if (self.attributeArray.compliant) { // not IE, good. for (var k in attrs) { var v = attrs[k]; if (typeof(v) == 'object' && typeof(elem[k]) == 'object') { if (k == "style" && MochiKit.Style) { MochiKit.Style.setStyle(elem, v); } else { - updatetree(elem[k], v); + base.updatetree(elem[k], v); } } else if (k.substring(0, 2) == "on") { if (typeof(v) == "string") { v = new Function(v); @@ -319,10 +319,10 @@ MochiKit.Base.update(MochiKit.DOM, { elem[k] = v; } else { elem.setAttribute(k, v); } - 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; } } } else { @@ -339,9 +339,9 @@ MochiKit.Base.update(MochiKit.DOM, { && typeof(v) == 'object') { if (k == "style" && MochiKit.Style) { MochiKit.Style.setStyle(elem, v); } else { - updatetree(elem[k], v); + base.updatetree(elem[k], v); } } else if (k.substring(0, 2) == "on") { if (typeof(v) == "string") { v = new Function(v); @@ -349,10 +349,10 @@ MochiKit.Base.update(MochiKit.DOM, { elem[k] = v; } else { elem.setAttribute(k, v); } - 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; } } } @@ -989,8 +989,9 @@ MochiKit.Base.update(MochiKit.DOM, { "usemap": "useMap", "for": "htmlFor", "readonly": "readOnly", "colspan": "colSpan", + "rowspan": "rowSpan", "bgcolor": "bgColor", "cellspacing": "cellSpacing", "cellpadding": "cellPadding" }; @@ -1006,9 +1007,9 @@ MochiKit.Base.update(MochiKit.DOM, { this.attributeArray = attributeArray; // Backwards compatibility aliases /** @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 */ m._deprecated(this, 'elementDimensions', 'MochiKit.Style.getElementDimensions', '1.4'); /** @id MochiKit.DOM.elementPosition */ m._deprecated(this, 'elementPosition', 'MochiKit.Style.getElementPosition', '1.4'); @@ -1040,50 +1041,40 @@ MochiKit.Base.update(MochiKit.DOM, { m._deprecated(this, 'Dimensions', 'MochiKit.Style.Dimensions', '1.4'); // shorthand for createDOM syntax 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 */ this.H1 = createDOMFunc("h1"); /** @id MochiKit.DOM.H2 */ this.H2 = createDOMFunc("h2"); @@ -1094,40 +1085,84 @@ MochiKit.Base.update(MochiKit.DOM, { /** @id MochiKit.DOM.H5 */ this.H5 = createDOMFunc("h5"); /** @id MochiKit.DOM.H6 */ 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.$ */ this.$ = this.getElement; 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 @@ -7,9 +7,9 @@ See <http://mochikit.com/> for documentation, downloads, license, etc. (c) 2005 Bob Ippolito. All rights Reserved. ***/ -MochiKit.Base._module('DateTime', '1.5', ['Base']); +MochiKit.Base.module(MochiKit, 'DateTime', '1.5', ['Base']); /** @id MochiKit.DateTime.isoDate */ MochiKit.DateTime.isoDate = function (str) { str = str + ""; @@ -19,12 +19,12 @@ MochiKit.DateTime.isoDate = function (str) { var iso = str.split('-'); if (iso.length === 0) { return null; } - 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; }; MochiKit.DateTime._isoRegexp = /(\d{4,})(?:-(\d{1,2})(?:-(\d{1,2})(?:[T ](\d{1,2}):(\d{1,2})(?::(\d{1,2})(?:\.(\d+))?)?(?:(Z)|([+-])(\d{1,2})(?::(\d{1,2}))?)?)?)?)?/; @@ -79,39 +79,42 @@ MochiKit.DateTime.isoTimestamp = function (str) { MochiKit.DateTime.toISOTime = function (date, realISO/* = false */) { if (typeof(date) == "undefined" || date === null) { return null; } - 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" : ""); }; /** @id MochiKit.DateTime.toISOTimeStamp */ MochiKit.DateTime.toISOTimestamp = function (date, realISO/* = false*/) { if (typeof(date) == "undefined" || date === null) { return null; } + 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; }; /** @id MochiKit.DateTime.toISODate */ MochiKit.DateTime.toISODate = function (date) { if (typeof(date) == "undefined" || date === null) { return null; } var _padTwo = MochiKit.DateTime._padTwo; - var _padFour = MochiKit.DateTime._padFour; + var _padFour = MochiKit.DateTime._padFour; return [ _padFour(date.getFullYear()), _padTwo(date.getMonth() + 1), _padTwo(date.getDate()) @@ -132,16 +135,16 @@ MochiKit.DateTime._padTwo = function (n) { return (n > 9) ? n : "0" + 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; + } }; /** @id MochiKit.DateTime.toPaddedAmericanDate */ MochiKit.DateTime.toPaddedAmericanDate = function (d) { 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 @@ -7,9 +7,9 @@ Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) Mochi-ized By Thomas Herve (_firstname_@nimail.org) ***/ -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 = { /*** @@ -305,10 +305,11 @@ MochiKit.DragAndDrop.Draggables = { } var pointer = event.mouse(); // Mozilla-based browsers fire successive mousemove events with // 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; } this._lastPointer = pointer; this.activeDraggable.updateDrag(event, pointer); @@ -441,10 +442,10 @@ MochiKit.DragAndDrop.Draggable.prototype = { /** @id MochiKit.DragAndDrop.currentDelta */ currentDelta: function () { var s = MochiKit.Style.getStyle; 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)]; }, /** @id MochiKit.DragAndDrop.initDrag */ initDrag: function (event) { @@ -480,10 +481,9 @@ MochiKit.DragAndDrop.Draggable.prototype = { MochiKit.DOM.addElementClass(this.element, this.options.selectclass); } 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; } if (this.options.ghosting) { 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 @@ -7,9 +7,9 @@ See <http://mochikit.com/> for documentation, downloads, license, etc. (c) 2005 Bob Ippolito. All rights Reserved. ***/ -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) { return function (num) { num = parseFloat(num); @@ -103,9 +103,9 @@ MochiKit.Format.numberFormatter = function (pattern, placeholder/* = "" */, loca rval.repr = function () { return [ self.NAME, "(", - map(m.repr, args).join(", "), + m.map(m.repr, args).join(", "), ")" ].join(""); }; } @@ -141,9 +141,9 @@ MochiKit.Format.twoDigitAverage = function (numerator, denominator) { }; /** @id MochiKit.Format.twoDigitFloat */ MochiKit.Format.twoDigitFloat = function (aNumber) { - var res = roundToFixed(aNumber, 2); + var res = MochiKit.Format.roundToFixed(aNumber, 2); if (res.indexOf(".00") > 0) { return res.substring(0, res.length - 3); } else if (res.charAt(res.length - 1) == "0") { return res.substring(0, res.length - 1); @@ -192,9 +192,9 @@ MochiKit.Format.truncToFixed = function (aNumber, precision) { fixed = fixed.substring(0, fracPos + precision + 1); fixed = MochiKit.Format._shiftNumber(fixed, 0); } return fixed; -} +}; /** @id MochiKit.Format.roundToFixed */ MochiKit.Format.roundToFixed = function (aNumber, precision) { var fixed = MochiKit.Format._numberToFixed(aNumber, precision); @@ -204,9 +204,9 @@ MochiKit.Format.roundToFixed = function (aNumber, precision) { str = MochiKit.Format._numberToFixed(Math.round(parseFloat(str)), 0); fixed = MochiKit.Format._shiftNumber(str, -precision); } return fixed; -} +}; /** * Converts a number to a fixed format string. This function handles * conversion of exponents by shifting the decimal point to the left @@ -220,9 +220,9 @@ MochiKit.Format.roundToFixed = function (aNumber, precision) { */ MochiKit.Format._numberToFixed = function (aNumber, precision) { var str = aNumber.toString(); 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); parts = fixed.split(/\./); var whole = parts[0]; var frac = (parts.length === 1) ? "" : parts[1]; @@ -233,9 +233,9 @@ MochiKit.Format._numberToFixed = function (aNumber, precision) { return whole + "." + frac; } else { return whole; } -} +}; /** * Shifts the decimal dot location in a fixed format number string. * This function handles negative values and will add and remove @@ -274,9 +274,9 @@ MochiKit.Format._shiftNumber = function (num, exp) { while (/^-0[^.]/.test(num)) { num = "-" + num.substring(2); } return num; -} +}; /** @id MochiKit.Format.percentFormat */ MochiKit.Format.percentFormat = function (aNumber) { return MochiKit.Format.twoDigitFloat(100 * aNumber) + '%'; 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 @@ -7,9 +7,9 @@ See <http://mochikit.com/> for documentation, downloads, license, etc. (c) 2005 Bob Ippolito. All rights Reserved. ***/ -MochiKit.Base._module('Iter', '1.5', ['Base']); +MochiKit.Base.module(MochiKit, 'Iter', '1.5', ['Base']); MochiKit.Base.update(MochiKit.Iter, { /** @id MochiKit.Iter.registerIteratorFactory */ registerIteratorFactory: function (name, check, iterfactory, /* optional */ override) { @@ -221,16 +221,17 @@ MochiKit.Base.update(MochiKit.Iter, { return "islice(" + ["...", start, stop, step].join(", ") + ")"; }, toString: m.forwardCall("repr"), next: function () { + if (start >= stop) { + throw self.StopIteration; + } + var rval; while (i < start) { rval = seq.next(); i++; } - if (start >= stop) { - throw self.StopIteration; - } start += step; return rval; } }; @@ -279,17 +280,14 @@ MochiKit.Base.update(MochiKit.Iter, { toString: m.forwardCall("repr"), next: function () { while (argiter.length > 1) { try { - var result = argiter[0].next(); - return result; + return argiter[0].next(); } catch (e) { if (e != self.StopIteration) { throw e; } argiter.shift(); - var result = argiter[0].next(); - return result; } } if (argiter.length == 1) { // optimize last element @@ -412,9 +410,9 @@ MochiKit.Base.update(MochiKit.Iter, { } var self = MochiKit.Iter; iterable = self.iter(iterable); - var rval = []; + rval = []; var a_val; try { while (true) { a_val = iterable.next(); 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 @@ -7,9 +7,9 @@ See <http://mochikit.com/> for documentation, downloads, license, etc. (c) 2005 Bob Ippolito. All rights Reserved. ***/ -MochiKit.Base._module('Logging', '1.5', ['Base']); +MochiKit.Base.module(MochiKit, 'Logging', '1.5', ['Base']); /** @id MochiKit.Logging.LogMessage */ MochiKit.Logging.LogMessage = function (num, level, info) { this.num = num; @@ -186,9 +186,9 @@ MochiKit.Logging.Logger.prototype = { howMany = 30; } var messages = this.getMessages(howMany); if (messages.length) { - var lst = map(function (m) { + var lst = MochiKit.Base.map(function (m) { return '\n [' + m.num + '] ' + m.level + ': ' + m.info.join(' '); }, messages); lst.unshift('LAST ' + messages.length + ' MESSAGES:'); return lst.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 @@ -7,9 +7,9 @@ See <http://mochikit.com/> for documentation, downloads, license, etc. (c) 2005 Bob Ippolito. All rights Reserved. ***/ -MochiKit.Base._module('LoggingPane', '1.5', ['Base', 'Logging']); +MochiKit.Base.module(MochiKit, 'LoggingPane', '1.5', ['Base', 'Logging']); /** @id MochiKit.LoggingPane.createLoggingPane */ MochiKit.LoggingPane.createLoggingPane = function (inline/* = false */) { var m = MochiKit.LoggingPane; @@ -23,9 +23,12 @@ MochiKit.LoggingPane.createLoggingPane = function (inline/* = false */) { } return m._loggingPane; }; -/** @id MochiKit.LoggingPane.LoggingPane */ +/** + * @id MochiKit.LoggingPane.LoggingPane + * @constructor + */ MochiKit.LoggingPane.LoggingPane = function (inline/* = false */, logger/* = MochiKit.Logging.logger */) { /* Use a div if inline, pop up a window if not */ /* Create the elements */ @@ -145,9 +148,9 @@ MochiKit.LoggingPane.LoggingPane = function (inline/* = false */, logger/* = Moc levelre = new RegExp(levelFilterField.value); infore = new RegExp(infoFilterField.value); } catch(e) { /* 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 function (msg) { @@ -183,9 +186,9 @@ MochiKit.LoggingPane.LoggingPane = function (inline/* = false */, logger/* = Moc this.logger.removeListener(listenerId); try { try { debugPane.loggingPane = null; - } catch(e) { logFatal("Bookmarklet was closed incorrectly."); } + } catch(e) { MochiKit.Logging.logFatal("Bookmarklet was closed incorrectly."); } if (inline) { debugPane.parentNode.removeChild(debugPane); } else { this.win.close(); @@ -223,9 +226,9 @@ MochiKit.LoggingPane.LoggingPane = function (inline/* = false */, logger/* = Moc /** @id MochiKit.LoggingPane.filterOnEnter */ var filterOnEnter = bind(function (event) { event = event || window.event; - key = event.which || event.keyCode; + var key = event.which || event.keyCode; if (key == 13) { this.buildAndApplyFilter(); } }, this); 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 @@ -7,19 +7,16 @@ See <http://mochikit.com/> for documentation, downloads, license, etc. (c) 2005 Bob Ippolito. All rights Reserved. ***/ -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 || {}; MochiKit.MochiKit.NAME = "MochiKit.MochiKit"; MochiKit.MochiKit.VERSION = "1.5"; +MochiKit.MochiKit.__export__ = false; MochiKit.MochiKit.__repr__ = function () { return "[" + this.NAME + " " + this.VERSION + "]"; }; 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 @@ -7,18 +7,15 @@ See <http://mochikit.com/> for documentation, downloads, license, etc. (c) 2005 Bob Ippolito. All rights Reserved. ***/ -if (typeof(MochiKit) == "undefined") { - MochiKit = {}; -} +var MochiKit = MochiKit || {}; -if (typeof(MochiKit.MockDOM) == "undefined") { - MochiKit.MockDOM = {}; -} +MochiKit.MockDOM = MochiKit.MockDOM || {}; MochiKit.MockDOM.NAME = "MochiKit.MockDOM"; MochiKit.MockDOM.VERSION = "1.5"; +MochiKit.MockDOM.__export__ = false; MochiKit.MockDOM.__repr__ = function () { return "[" + this.NAME + " " + this.VERSION + "]"; }; 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 @@ -7,9 +7,9 @@ See <http://mochikit.com/> for documentation, downloads, license, etc. (c) 2005-2006 Bob Ippolito and others. All rights Reserved. ***/ -MochiKit.Base._module('Position', '1.5', ['Base', 'DOM', 'Style']); +MochiKit.Base.module(MochiKit, 'Position', '1.5', ['Base', 'DOM', 'Style']); MochiKit.Base.update(MochiKit.Position, { // Don't export from this module __export__: false, 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 @@ -7,9 +7,9 @@ See <http://mochikit.com/> for documentation, downloads, license, etc. (c) 2005 Bob Ippolito and others. All rights Reserved. ***/ -MochiKit.Base._module('Selector', '1.5', ['Base', 'DOM', 'Iter']); +MochiKit.Base.module(MochiKit, 'Selector', '1.5', ['Base', 'DOM', 'Iter']); MochiKit.Selector.Selector = function (expression) { this.params = {classNames: [], pseudoClassNames: []}; this.expression = expression.toString().replace(/(^\s+|\s+$)/g, ''); @@ -126,10 +126,10 @@ MochiKit.Selector.Selector.prototype = { } else if (match[0] == 'even') { a = 2; b = 0; } else { - a = match[2] && parseInt(match) || null; - b = parseInt(match[3]); + a = match[2] && parseInt(match, 10) || null; + b = parseInt(match[3], 10); } conditions.push('this.nthChild(element,' + a + ',' + b + ',' + !!pseudoClass.match('^nth-last') // Reverse + ',' + !!pseudoClass.match('of-type$') // Restrict to same tagName @@ -166,9 +166,9 @@ MochiKit.Selector.Selector.prototype = { conditions.push('(this.isUIElement(element) && element.checked === true)'); break; case 'not': var subselector = new MochiKit.Selector.Selector(pseudoClassArgument); - conditions.push('!( ' + subselector.buildMatchExpression() + ')') + conditions.push('!( ' + subselector.buildMatchExpression() + ')'); break; } } } @@ -176,9 +176,9 @@ MochiKit.Selector.Selector.prototype = { MochiKit.Base.map(function (attribute) { var value = 'MochiKit.DOM.getNodeAttribute(element, ' + repr(attribute.name) + ')'; var splitValueBy = function (delimiter) { return value + '.split(' + repr(delimiter) + ')'; - } + }; conditions.push(value + ' != null'); switch (attribute.operator) { case '=': conditions.push(value + ' == ' + repr(attribute.value)); @@ -351,8 +351,14 @@ MochiKit.Base.update(MochiKit.Selector, { } return res; }; 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 reducer = function (results, expr) { var match = expr.match(/^[>+~]$/); if (match) { 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 @@ -7,9 +7,9 @@ See <http://mochikit.com/> for documentation, downloads, license, etc. (c) 2006 Jonathan Gardner, Beau Hartshorne, Bob Ippolito. All rights Reserved. ***/ -MochiKit.Base._module('Signal', '1.5', ['Base', 'DOM', 'Style']); +MochiKit.Base.module(MochiKit, 'Signal', '1.5', ['Base', 'DOM']); MochiKit.Signal._observers = []; /** @id MochiKit.Signal.Event */ @@ -265,18 +265,19 @@ MochiKit.Base.update(MochiKit.Signal.Event.prototype, { var e = this._event; if (this.type() && ( this.type().indexOf('mouse') === 0 || + this.type().indexOf('drag') === 0 || this.type().indexOf('click') != -1 || this.type() == 'contextmenu')) { - m.client = new MochiKit.Style.Coordinates(0, 0); + m.client = { x: 0, y: 0 }; if (e.clientX || e.clientY) { m.client.x = (!e.clientX || e.clientX < 0) ? 0 : e.clientX; 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) { m.page.x = (!e.pageX || e.pageX < 0) ? 0 : e.pageX; m.page.y = (!e.pageY || e.pageY < 0) ? 0 : e.pageY; } else { @@ -336,9 +337,9 @@ MochiKit.Base.update(MochiKit.Signal.Event.prototype, { m.button.middle = !!(e.button & 4); } } if (this.type() == 'mousewheel') { - m.wheel = new MochiKit.Style.Coordinates(0, 0); + m.wheel = { x: 0, y: 0 }; if (e.wheelDeltaX || e.wheelDeltaY) { m.wheel.x = e.wheelDeltaX / -40 || 0; m.wheel.y = e.wheelDeltaY / -40 || 0; } else if (e.wheelDelta) { @@ -671,8 +672,20 @@ MochiKit.Base.update(MochiKit.Signal, { 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) { // already disconnected if (!ident.connected) { return; @@ -714,9 +727,9 @@ MochiKit.Base.update(MochiKit.Signal, { for (var i = observers.length - 1; i >= 0; i--) { var o = observers[i]; if (o.source === src && o.signal === sig && o.objOrFunc === obj && o.funcOrStr === func) { self._disconnect(o); - if (!self._lock) { + if (self._lock === 0) { observers.splice(i, 1); } else { self._dirty = true; } @@ -726,9 +739,9 @@ MochiKit.Base.update(MochiKit.Signal, { } else { var idx = m.findIdentical(observers, ident); if (idx >= 0) { self._disconnect(ident); - if (!self._lock) { + if (self._lock === 0) { observers.splice(idx, 1); } else { self._dirty = true; } @@ -742,9 +755,9 @@ MochiKit.Base.update(MochiKit.Signal, { disconnectAllTo: function (objOrFunc, /* optional */funcOrStr) { var self = MochiKit.Signal; var observers = self._observers; var disconnect = self._disconnect; - var locked = self._lock; + var lock = self._lock; var dirty = self._dirty; if (typeof(funcOrStr) === 'undefined') { funcOrStr = null; } @@ -752,12 +765,12 @@ MochiKit.Base.update(MochiKit.Signal, { var ident = observers[i]; if (ident.objOrFunc === objOrFunc && (funcOrStr === null || ident.funcOrStr === funcOrStr)) { disconnect(ident); - if (locked) { - dirty = true; - } else { + if (lock === 0) { observers.splice(i, 1); + } else { + dirty = true; } } } self._dirty = dirty; @@ -773,17 +786,17 @@ MochiKit.Base.update(MochiKit.Signal, { var self = MochiKit.Signal; var disconnect = self._disconnect; var observers = self._observers; var i, ident; - var locked = self._lock; + var lock = self._lock; var dirty = self._dirty; if (signals.length === 0) { // disconnect all for (i = observers.length - 1; i >= 0; i--) { ident = observers[i]; if (ident.source === src) { disconnect(ident); - if (!locked) { + if (lock === 0) { observers.splice(i, 1); } else { dirty = true; } @@ -797,9 +810,9 @@ MochiKit.Base.update(MochiKit.Signal, { for (i = observers.length - 1; i >= 0; i--) { ident = observers[i]; if (ident.source === src && ident.signal in sigs) { disconnect(ident); - if (!locked) { + if (lock === 0) { observers.splice(i, 1); } else { dirty = true; } @@ -817,9 +830,9 @@ MochiKit.Base.update(MochiKit.Signal, { src = MochiKit.DOM.getElement(src); } var args = MochiKit.Base.extend(null, arguments, 2); var errors = []; - self._lock = true; + self._lock++; for (var i = 0; i < observers.length; i++) { var ident = observers[i]; if (ident.source === src && ident.signal === sig && ident.connected) { @@ -836,10 +849,10 @@ MochiKit.Base.update(MochiKit.Signal, { errors.push(e); } } } - self._lock = false; - if (self._dirty) { + self._lock--; + if (self._lock === 0 && self._dirty) { self._dirty = false; for (var i = observers.length - 1; i >= 0; i--) { if (!observers[i].connected) { observers.splice(i, 1); @@ -860,9 +873,9 @@ MochiKit.Base.update(MochiKit.Signal, { MochiKit.Signal.__new__ = function (win) { var m = MochiKit.Base; this._document = document; this._window = win; - this._lock = false; + this._lock = 0; this._dirty = false; try { this.connect(window, 'onunload', this._unloadCache); 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 @@ -5,9 +5,9 @@ Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) 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, { __export__: false, @@ -178,17 +178,17 @@ MochiKit.Base.update(MochiKit.Sortable, { hoverclass: options.hoverclass, onhover: self.onHover, tree: options.tree, accept: options.accept - } + }; var options_for_tree = { onhover: self.onEmptyHover, overlap: options.overlap, containment: options.containment, hoverclass: options.hoverclass, accept: options.accept - } + }; // fix for gecko engine MochiKit.DOM.removeEmptyTextNodes(element); @@ -429,13 +429,13 @@ MochiKit.Base.update(MochiKit.Sortable, { parent: parent, children: [], position: parent.children.length, container: self._findChildrenElement(children[i], options.treeTag.toUpperCase()) - } + }; /* Get the element containing the children and recurse over it */ if (child.container) { - self._tree(child.container, options, child) + self._tree(child.container, options, child); } parent.children.push (child); } @@ -474,9 +474,9 @@ MochiKit.Base.update(MochiKit.Sortable, { parent: null, children: new Array, container: element, position: 0 - } + }; return MochiKit.Sortable._tree(element, options, root); }, 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 @@ -5,11 +5,14 @@ MochiKit.Style 1.5 See <http://mochikit.com/> for documentation, downloads, license, etc. (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 */ MochiKit.Style.Dimensions = function (w, h) { @@ -178,9 +181,9 @@ MochiKit.Base.update(MochiKit.Style, { return o != null && o.nodeType == null && typeof(o.x) == "number" && typeof(o.y) == "number"; - } + }; if (typeof(elem) == "string") { elem = dom.getElement(elem); } @@ -196,9 +199,9 @@ MochiKit.Base.update(MochiKit.Style, { var d = MochiKit.DOM._document; var de = d.documentElement; var b = d.body; - if (!elem.parentNode && elem.x && elem.y) { + if (isCoordinates(elem)) { /* it's just a MochiKit.Style.Coordinates object */ c.x += elem.x || 0; c.y += elem.y || 0; } else if (elem.getBoundingClientRect) { // IE shortcut @@ -227,10 +230,10 @@ MochiKit.Base.update(MochiKit.Style, { parent = elem.offsetParent; if (parent != elem) { 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; c.y += parent.offsetTop; parent = parent.offsetParent; } @@ -389,9 +392,9 @@ MochiKit.Base.update(MochiKit.Style, { } if (contentSize) { var tableCell = 'colSpan' in elem && 'rowSpan' in elem; var collapse = (tableCell && elem.parentNode && self.getStyle( - elem.parentNode, 'borderCollapse') == 'collapse') + elem.parentNode, 'borderCollapse') == 'collapse'); if (collapse) { if (/MSIE/.test(navigator.userAgent)) { var borderLeftQuota = elem.previousSibling? 0.5 : 1; var borderRightQuota = elem.nextSibling? 0.5 : 1; @@ -542,10 +545,10 @@ MochiKit.Base.update(MochiKit.Style, { this._defaultDisplay[inlines[i]] = 'inline'; } // 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); this.hideElement = m.partial(this.setDisplayForElement, 'none'); // TODO: showElement could be improved by using getDefaultDisplay. this.showElement = m.partial(this.setDisplayForElement, 'block'); 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 @@ -7,9 +7,9 @@ See <http://mochikit.com/> for documentation, downloads, license, etc. (c) 2005 Bob Ippolito. All rights Reserved. ***/ -MochiKit.Base._module('Test', '1.5', ['Base']); +MochiKit.Base.module(MochiKit, 'Test', '1.5', ['Base']); MochiKit.Test.runTests = function (obj) { if (typeof(obj) == "string") { // TODO: Remove this temporary API change advertisement 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 @@ -7,9 +7,9 @@ See <http://mochikit.com/> for documentation, downloads, license, etc. (c) 2008 Per Cederberg. All rights Reserved. ***/ -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 * either of the two strings is null, false will be returned. @@ -21,9 +21,9 @@ MochiKit.Base._module('Text', '1.5', ['Base', 'Format']); * false otherwise */ MochiKit.Text.startsWith = function (substr, str) { return str != null && substr != null && str.indexOf(substr) == 0; -} +}; /** * Checks if a text string ends with the specified substring. If * either of the two strings is null, false will be returned. @@ -36,9 +36,9 @@ MochiKit.Text.startsWith = function (substr, str) { */ MochiKit.Text.endsWith = function (substr, str) { return str != null && substr != null && str.lastIndexOf(substr) == Math.max(str.length - substr.length, 0); -} +}; /** * Checks if a text string contains the specified substring. If * either of the two strings is null, false will be returned. @@ -50,9 +50,9 @@ MochiKit.Text.endsWith = function (substr, str) { * false otherwise */ MochiKit.Text.contains = function (substr, str) { return str != null && substr != null && str.indexOf(substr) >= 0; -} +}; /** * Adds a character to the left-hand side of a string until it * reaches the specified minimum length. @@ -70,9 +70,9 @@ MochiKit.Text.padLeft = function (str, minLength, fillChar) { while (str.length < minLength) { str = fillChar + str; } return str; -} +}; /** * Adds a character to the right-hand side of a string until it * reaches the specified minimum length. @@ -90,9 +90,9 @@ MochiKit.Text.padRight = function (str, minLength, fillChar) { while (str.length < minLength) { str += fillChar; } return str; -} +}; /** * Returns a truncated copy of a string. If the string is shorter * than the specified maximum length, the object will be returned @@ -118,31 +118,57 @@ MochiKit.Text.truncate = function (str, maxLength, tail) { } } else { return str.slice(0, maxLength); } -} +}; /** - * 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; +}; /** * Creates a formatter function for the specified formatter pattern * and locale. The returned function takes as many arguments as the @@ -157,9 +183,9 @@ MochiKit.Text.splitJoin = function (func, str, separator) { * * @throws FormatPatternError if the format pattern was invalid */ MochiKit.Text.formatter = function (pattern, locale) { - if (typeof(locale) == "undefined") { + if (locale == null) { locale = MochiKit.Format.formatLocale(); } else if (typeof(locale) == "string") { locale = MochiKit.Format.formatLocale(locale); } @@ -174,10 +200,10 @@ MochiKit.Text.formatter = function (pattern, locale) { res.push(MochiKit.Text.formatValue(parts[i], values, locale)); } } return res.join(""); - } -} + }; +}; /** * Formats the specified arguments according to a formatter pattern. * See separate documentation for information about the formatter @@ -192,9 +218,9 @@ MochiKit.Text.formatter = function (pattern, locale) { */ MochiKit.Text.format = function (pattern/*, ...*/) { var func = MochiKit.Text.formatter(pattern); return func.apply(this, MochiKit.Base.extend([], arguments, 1)); -} +}; /** * Format a value with the specified format specifier. * @@ -204,35 +230,39 @@ MochiKit.Text.format = function (pattern/*, ...*/) { * @param {Object} [locale] the locale to use, defaults to * LOCALE.en_US * * @return {String} the formatted output string + * + * @throws FormatPatternError if the format specifier was invalid */ MochiKit.Text.formatValue = function (spec, value, locale) { var self = MochiKit.Text; 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++) { if (value != null) { value = value[spec.path[i]]; } } - if (typeof(locale) == "undefined") { + if (locale == null) { locale = MochiKit.Format.formatLocale(); } else if (typeof(locale) == "string") { locale = MochiKit.Format.formatLocale(locale); } var str = ""; - if (spec.numeric) { + if (spec.type == "number") { + if (value instanceof Number) { + value = value.valueOf(); + } if (typeof(value) != "number" || isNaN(value)) { str = ""; } else if (value === Number.POSITIVE_INFINITY) { str = "\u221e"; } else if (value === Number.NEGATIVE_INFINITY) { str = "-\u221e"; } else { - var sign = (spec.sign === "-") ? "" : spec.sign; - sign = (value < 0) ? "-" : sign; + var sign = (value < 0) ? "-" : spec.sign; value = Math.abs(value); if (spec.format === "%") { str = self._truncToPercent(value, spec.precision); } else if (spec.format === "d") { @@ -253,9 +283,9 @@ MochiKit.Text.formatValue = function (spec, value, locale) { str = self.padLeft(str, spec.width - sign.length - 1, "0"); } else if (spec.padding == "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; } if (str !== "" && spec.format === "%") { str = str + locale.percent; @@ -263,9 +293,9 @@ MochiKit.Text.formatValue = function (spec, value, locale) { } else { if (spec.format == "r") { str = MochiKit.Base.repr(value); } else { - str = (value == null) ? "null" : value.toString(); + str = (value == null) ? "" : value.toString(); } str = self.truncate(str, spec.precision); } if (spec.align == "<") { @@ -273,9 +303,9 @@ MochiKit.Text.formatValue = function (spec, value, locale) { } else { str = self.padLeft(str, spec.width); } return str; -} +}; /** * Adjust an already formatted numeric string for locale-specific * grouping and decimal separators. The grouping is optional and @@ -283,34 +313,34 @@ MochiKit.Text.formatValue = function (spec, value, locale) { * padded zeros (if possible). * * @param {String} num the formatted number string * @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 */ -MochiKit.Text._localizeNumber = function (num, locale, grouping) { +MochiKit.Text._localizeNumber = function (num, locale, group) { var parts = num.split(/\./); var whole = parts[0]; var frac = (parts.length == 1) ? "" : parts[1]; 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; frac = frac.substring(3); if (whole.charAt(0) == "0") { whole = whole.substring(1); } } if (frac.length > 0) { - res += frac; + res = res + frac; } - while (grouping && whole.length > 3) { + while (group && whole.length > 3) { var pos = whole.length - 3; res = locale.separator + whole.substring(pos) + res; whole = whole.substring((whole.charAt(0) == "0") ? 1 : 0, pos); } return whole + res; -} +}; /** * Parses a format pattern and returns an array of constant strings * and format info objects. @@ -323,46 +353,34 @@ MochiKit.Text._localizeNumber = function (num, locale, grouping) { */ MochiKit.Text._parsePattern = function (pattern) { var self = MochiKit.Text; 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; -} +}; /** * Parses a format instruction and returns a format info object. * @@ -376,42 +394,32 @@ MochiKit.Text._parsePattern = function (pattern) { */ MochiKit.Text._parseFormat = function (pattern, startPos, endPos) { var self = MochiKit.Text; 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); } return info; -} +}; /** * Parses a string with format flags and returns a format info object. * @@ -423,83 +431,54 @@ MochiKit.Text._parseFormat = function (pattern, startPos, endPos) { * * @throws FormatPatternError if the format pattern was invalid */ 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; -} +}; /** * Formats a value as a percentage. This method avoids multiplication * by 100 since it leads to weird numeric rounding errors. Instead it @@ -509,35 +488,25 @@ MochiKit.Text._parseFormatFlags = function (pattern, startPos, endPos) { * @param {Number} value the value to format * @param {Number} precision the number of precision digits */ 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; if (precision >= 0) { str = MochiKit.Format.roundToFixed(value, precision + 2); } else { str = (value == null) ? "0" : value.toString(); } - 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; +}; /** * Creates a new format pattern error. * @@ -557,15 +526,15 @@ MochiKit.Text._truncToPercent = function (value, precision) { MochiKit.Text.FormatPatternError = function (pattern, pos, message) { this.pattern = pattern; this.pos = pos; 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__) { formatter = MochiKit.Text.formatter; format = MochiKit.Text.format; 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 @@ -7,9 +7,9 @@ See <http://mochikit.com/> for documentation, downloads, license, etc. (c) 2005 Bob Ippolito and others. All rights Reserved. ***/ -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) { e = MochiKit.DOM.getElement(e); this._setOptions(options); @@ -468,8 +468,13 @@ MochiKit.Visual.Transitions.pulse = function (pos, pulses) { MochiKit.Visual.Transitions.parabolic = function (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 */ MochiKit.Visual.Transitions.none = function (pos) { return 0; }; @@ -533,8 +538,13 @@ MochiKit.Base.update(MochiKit.Visual.ScopedQueue.prototype, { ma(function (e) { e.finalize(); }, this.effects); break; + case 'replace': + ma(function (e) { + e.cancel(); + }, this.effects); + break; } effect.startOn += timestamp; effect.finishOn += timestamp; @@ -661,10 +671,14 @@ MochiKit.Visual.Base.prototype = { this.setup(); this.event('afterSetup'); } 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); } pos *= (this.options.to - this.options.from); pos += this.options.from; this.event('beforeUpdate'); @@ -1685,10 +1699,10 @@ MochiKit.Visual.squish = function (element, /* optional */ options) { var elementDimensions = s.getElementDimensions(element, true); var elemClip; options = b.update({ restoreAfterFinish: true, - scaleMode: {originalHeight: elementDimensions.w, - originalWidth: elementDimensions.h}, + scaleMode: {originalHeight: elementDimensions.h, + originalWidth: elementDimensions.w}, beforeSetupInternal: function (effect) { elemClip = s.makeClipping(effect.element); }, afterFinishInternal: function (effect) { @@ -1957,19 +1971,6 @@ MochiKit.Visual.fold = function (element, /* optional */ options) { return new v.Scale(element, 5, 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 @@ -80,13 +80,13 @@ function run() { } Clipperz.PM.RunTime.mainController.run(shouldShowRegistrationForm); -//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'}) // MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'doLogin', {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 @@ -1,9 +1,12 @@ { "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": [ "MochiKit/Base.js", "MochiKit/Iter.js", "MochiKit/Logging.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 @@ -27,9 +27,8 @@ refer to http://www.clipperz.com. <head> <title>Clipperz.Crypto.AES_v3 - TEST</title> <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> <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> <script type='text/javascript' src='../../../../js/JSON/json2.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 @@ -31,9 +31,8 @@ refer to http://www.clipperz.com. jslog_config_enabled = true; </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> <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> <script type='text/javascript' src='../../../../js/JSON/json2.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 @@ -25,9 +25,8 @@ refer to http://www.clipperz.com. <html> <head> <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> <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.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 @@ -25,9 +25,8 @@ refer to http://www.clipperz.com. <html> <head> <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> <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.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 @@ -25,9 +25,8 @@ refer to http://www.clipperz.com. <html> <head> <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> <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> <script type='text/javascript' src='../../../../js/Clipperz/Base.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 @@ -25,9 +25,8 @@ refer to http://www.clipperz.com. <html> <head> <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> <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> <script type='text/javascript' src='../../../../js/Clipperz/Base.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 @@ -25,9 +25,8 @@ refer to http://www.clipperz.com. <html> <head> <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> <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> <script type='text/javascript' src='../../../../js/Clipperz/Base.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 @@ -27,9 +27,8 @@ refer to http://www.clipperz.com. <head> <script> jslog_config_enabled = true; </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> <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.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 @@ -25,9 +25,8 @@ refer to http://www.clipperz.com. <html> <head> <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> <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> <script type='text/javascript' src='../../../../js/Clipperz/Base.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 @@ -62,9 +62,8 @@ refer to http://www.clipperz.com. clipperz_profiling_enabled = true; </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> <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.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 @@ -25,9 +25,8 @@ refer to http://www.clipperz.com. <html> <head> <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> <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.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 @@ -27,9 +27,8 @@ refer to http://www.clipperz.com. <head> <title>Clipperz.Crypto.Usage - TEST</title> <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> <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> <script type='text/javascript' src='../../../../js/JSON/json2.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 @@ -27,9 +27,8 @@ refer to http://www.clipperz.com. <head> <title>Clipperz.PM.Date - test</title> <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> <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> <script type='text/javascript' src='../../../../js/JSON/json2.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 @@ -27,9 +27,8 @@ refer to http://www.clipperz.com. <head> <title>Clipperz.PM.Proxy - TEST</title> <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> <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.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 @@ -27,9 +27,8 @@ refer to http://www.clipperz.com. <head> <title>Clipperz.PM.Toll - test</title> <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> <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.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 @@ -27,9 +27,8 @@ refer to http://www.clipperz.com. <head> <title>Clipperz.PM.UI.Web.MainController - test</title> <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> <link rel="stylesheet" type="text/css" href="../../../../../../SimpleTest/test.css"> <script type='text/javascript' src='../../../../../../../js/Clipperz/YUI/Utils.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 @@ -25,9 +25,8 @@ refer to http://www.clipperz.com. <html> <head> <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> <link rel="stylesheet" type="text/css" href="../../SimpleTest/test.css"> <script type='text/javascript' src='../../../js/Clipperz/YUI/Utils.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 @@ -100,11 +100,9 @@ refer to http://www.clipperz.com. <!--[if IE]><script> Clipperz_IEisBroken = true; </script><![endif]--> - <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" /> </head> <body> 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 @@ -98,11 +98,9 @@ refer to http://www.clipperz.com. <!--[if IE]><script> Clipperz_IEisBroken = true; </script><![endif]--> - <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" /> <style> div.leftColumn { |