41c3a5990c
Cleans up Horizon's JavaScript to make it properly modular and well-organized. Adds unit tests written in QUnit for some of the JS modules as a starting point for the JS test framework. You can visit /qunit/ with DEBUG=True in your settings to access the JS test runner. Fixes bug 961509. Change-Id: Ica33765660d0ed80f22c71bc96f122c3fc8b80cc
36 lines
1.1 KiB
JavaScript
36 lines
1.1 KiB
JavaScript
/* This is the base Horizon JavaScript object. There is only ever one of these
|
|
* loaded (referenced as horizon with a lower-case h) which happens immediately
|
|
* after the definition below.
|
|
*
|
|
* Scripts that are dependent on functionality defined in the Horizon object
|
|
* must be included after this script in templates/base.html.
|
|
*/
|
|
var Horizon = function () {
|
|
var horizon = {},
|
|
initFunctions = [];
|
|
|
|
/* Use the addInitFunction() function to add initialization code which must
|
|
* be called on DOM ready. This is useful for adding things like event
|
|
* handlers or any other initialization functions which should preceed user
|
|
* interaction but rely on DOM readiness.
|
|
*/
|
|
horizon.addInitFunction = function (fn) {
|
|
initFunctions.push(fn);
|
|
};
|
|
|
|
/* Call all initialization functions and clear the queue. */
|
|
horizon.init = function () {
|
|
for (var i = 0; i < initFunctions.length; i += 1) {
|
|
initFunctions[i]();
|
|
}
|
|
|
|
// Prevent multiple executions, just in case.
|
|
initFunctions = [];
|
|
};
|
|
|
|
return horizon;
|
|
};
|
|
|
|
// Create the one and only horizon object.
|
|
var horizon = new Horizon();
|