[MERGE] from trunk
[odoo/odoo.git] / addons / web / static / src / js / boot.js
1 /*---------------------------------------------------------
2  * OpenERP Web Boostrap Code
3  *---------------------------------------------------------*/
4
5 /**
6  * @name openerp
7  * @namespace openerp
8  */
9 (function() {
10     if (this.openerp)
11         return;
12     var session_counter = 0;
13
14     var openerp = this.openerp =  {
15         // Per session namespace
16         // openerp.<module> will map to
17         // openerp.instances.sessionname.<module> using a closure
18         instances: {},
19         /**
20          * OpenERP instance constructor
21          *
22          * @param {Array|String} modules list of modules to initialize
23          */
24         init: function(modules) {
25             if (modules === "fuck your shit, don't load anything you cunt") {
26                 modules = [];
27             } else {
28                 modules = _.union(['web'], modules || []);
29             }
30             var new_instance = {
31                 // links to the global openerp
32                 _openerp: openerp,
33                 // this unique id will be replaced by hostname_databasename by
34                 // openerp.web.Session on the first connection
35                 _session_id: "instance" + session_counter++,
36                 _modules: modules,
37                 web: {},
38                 web_mobile: {}
39             };
40             openerp.instances[new_instance._session_id] = new_instance;
41             for(var i=0; i < modules.length; i++) {
42                 new_instance[modules[i]] = {};
43                 if (openerp[modules[i]]) {
44                     openerp[modules[i]](new_instance,new_instance[modules[i]]);
45                 }
46             }
47             return new_instance;
48         }
49     };
50 })();
51
52 /*---------------------------------------------------------
53  * OpenERP Web web module split
54  *---------------------------------------------------------*/
55 openerp.web = function(session) {
56     var files = ["pyeval", "corelib","coresetup","dates","formats","chrome","data","views","search","list","form","list_editable","web_mobile","view_tree","data_export","data_import"];
57     for(var i=0; i<files.length; i++) {
58         if(openerp.web[files[i]]) {
59             openerp.web[files[i]](session);
60         }
61     }
62 };
63
64 // vim:et fdc=0 fdl=0 foldnestmax=3 fdm=syntax: