f41185be0c60d7a4f00a442b187cfd61ecb1af27
[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.sessions.sessionname.<module> using a closure
18         sessions: {},
19         /**
20          * OpenERP instance constructor
21          *
22          * @param {Array} modules list of modules to initialize
23          */
24         init: function(modules) {
25             var new_instance = {
26                 // links to the global openerp
27                 _openerp: openerp,
28                 // Only web will be loaded, the rest will be by loaded by
29                 // openerp.web.Connection on the first connection
30                 _modules_loaded: false,
31                 // this unique id will be replaced by hostname_databasename by
32                 // openerp.web.Connection on the first connection
33                 _session_id: "session" + session_counter++,
34                 web: {},
35                 web_mobile: {}
36             };
37             openerp.sessions[new_instance._session_id] = new_instance;
38             modules = modules || ["web"];
39             for(var i=0; i < modules.length; i++) {
40                 openerp[modules[i]](new_instance);
41             }
42             return new_instance;
43         }
44     };
45 })();
46
47 /*---------------------------------------------------------
48  * OpenERP Web web module split
49  *---------------------------------------------------------*/
50
51 /**
52  * @namespace
53  */
54 openerp.web = function(instance) {
55     openerp.web.core(instance);
56     if (openerp.web.dates) {
57         openerp.web.dates(instance);
58     }
59     openerp.web.formats(instance);
60     openerp.web.chrome(instance);
61     openerp.web.data(instance);
62     var files = ["views","search","list","form","list_editable","web_mobile","view_tree","data_export","data_import"];
63     for(var i=0; i<files.length; i++) {
64         if(openerp.web[files[i]]) {
65             openerp.web[files[i]](instance);
66         }
67     }
68 };
69
70 // vim:et fdc=0 fdl=0 foldnestmax=3 fdm=syntax: