Merge branch 'development'
[KiwiIRC.git] / client / assets / dev / app.js
CommitLineData
eaaf73b0 1// Holds anything kiwi client specific (ie. front, gateway, _kiwi.plugs..)\r
9df70c63
D
2/**\r
3* @namespace\r
4*/\r
eaaf73b0 5var _kiwi = {};\r
9df70c63 6\r
eaaf73b0
D
7_kiwi.model = {};\r
8_kiwi.view = {};\r
9_kiwi.applets = {};\r
b62c8381
D
10\r
11\r
12/**\r
13 * A global container for third party access\r
14 * Will be used to access a limited subset of kiwi functionality\r
15 * and data (think: plugins)\r
16 */\r
eaaf73b0 17_kiwi.global = {\r
5bed0536 18 settings: undefined,\r
93fa049c
D
19 plugins: undefined,\r
20 utils: undefined, // TODO: Re-usable methods\r
21 gateway: undefined, // TODO: Access to gateway\r
22 user: undefined, // TODO: Limited user methods\r
23 server: undefined, // TODO: Limited server methods\r
721ad945
D
24 command: undefined, // The control box\r
25\r
26 // TODO: think of a better term for this as it will also refer to queries\r
93fa049c 27 channels: undefined, // TODO: Limited access to panels list\r
b62c8381
D
28\r
29 // Entry point to start the kiwi application\r
30 start: function (opts) {\r
31 opts = opts || {};\r
32\r
5bed0536
D
33 // Load the plugin manager\r
34 _kiwi.global.plugins = new _kiwi.model.PluginManager();\r
35\r
36 // Set up the settings datastore\r
37 _kiwi.global.settings = _kiwi.model.DataStore.instance('kiwi.settings');\r
38 _kiwi.global.settings.load();\r
39\r
eaaf73b0 40 _kiwi.app = new _kiwi.model.Application(opts);\r
b62c8381
D
41\r
42 if (opts.kiwi_server) {\r
eaaf73b0 43 _kiwi.app.kiwi_server = opts.kiwi_server;\r
b62c8381
D
44 }\r
45\r
5bed0536 46 // Start the client up\r
eaaf73b0 47 _kiwi.app.start();\r
b62c8381
D
48\r
49 return true;\r
721ad945 50 }\r
b62c8381
D
51};\r
52\r
53\r
54\r
55// If within a closure, expose the kiwi globals\r
56if (typeof global !== 'undefined') {\r
eaaf73b0
D
57 global.kiwi = _kiwi.global;\r
58} else {\r
59 // Not within a closure so set a var in the current scope\r
60 var kiwi = _kiwi.global;\r
b62c8381 61}