-
Notifications
You must be signed in to change notification settings - Fork 288
Core Events
Due to the modular approach we've taken for the architecture of the client application, we make heavy use of the observer code design pattern, and use events to keep the various parts of the application updated.
Additionally, our chosen framework for structuring the client application (Backbone.js) has very good support for an event-driven approach.
Backbone supports a wide variety of different events which we make use of extensively throughout the application. Please see the Backbone.js documentation for more information:
In addition to the Backbone events, we've added many events which we use throughout the application, and can be listened to by any plugin code.
You can listen to system events using the following syntax: Origin.on(FUNCTION, CALLBACK_FUNCTION)
For example:
Origin.on('origin:initialize', function() {
console.log('App is ready to go');
});
See below for a list of core events, and what they signal.
Event name | What it signals | Parameters passed to callback |
---|---|---|
origin:dataReady |
The app's data has been loaded, and is about to initialise | |
origin:initialize |
The app has initialised | |
origin:showLoading |
Triggers the loading animation | |
origin:hideLoading |
Hides the loading animation | |
origin:sessionStarted |
A new user session has started | |
remove:views |
All views should be removed/destroyed |
We've also included some of the Window object's events for ease of use:
Event name | What it signals | Parameters passed to callback |
---|---|---|
key:down |
A key has been pressed down | See MDN's keydown documentation |
window:resize |
The browser window has been resized | See MDN's resize documentation |
window:focus |
The browser window has been brought to the front | See MDN's focus documentation |
window:blur |
The browser window is no longer at the forefront | See MDN's blur documentation |
Event name | What it signals | Parameters passed to callback |
---|---|---|
constants:loaded |
Sever configuration settings have been loaded | |
l10n:loaded |
The localised app data has been loaded | |
router:MODULE |
The user's location in the app has changed | location1:String location2:String location3:String location4:String |
location:change |
Same as above | location:Object |
contentCollection:dataLoaded |
Data has been fetched from the server for a ContentCollection instance | collectionType:String |
VIEW:preRender |
Called before a view has been rendered | The Backbone.View instance |
VIEW:postRender |
Called after a view has been rendered | The Backbone.View instance |