[IMP] misc comments
[odoo/odoo.git] / addons / base / static / src / js / boot.js
1 /*---------------------------------------------------------
2  * OpenERP Web Boostrap Code
3  *---------------------------------------------------------*/
4
5 /**
6  * @name openerp
7  * @namespace openerp
8  * @namespace window.openerp
9  */
10 (function() {
11     if (this.openerp)
12         return;
13     var session_counter = 0;
14
15     /** @lends openerp */
16     var openerp = this.openerp =  {
17         // debug flag
18         debug: true,
19         // Per session namespace
20         // openerp.<module> will map to
21         // openerp.sessions.sessionname.<module> using a closure
22         sessions: {},
23         /**
24          * OpenERP instance constructor
25          *
26          * @param {Boolean} skip_init if true, skips the built-in initialization
27          */
28         init: function(skip_init) {
29             var new_instance = {
30                 // links to the global openerp
31                 _openerp: openerp,
32                 // Only base will be loaded, the rest will be by loaded by
33                 // openerp.base.Connection on the first connection
34                 _modules_loaded: false,
35                 // this unique id will be replaced by hostname_databasename by
36                 // openerp.base.Connection on the first connection
37                 _session_id: "session" + session_counter++,
38                 base: {},
39                 web_mobile: {}
40             };
41             openerp.sessions[new_instance._session_id] = new_instance;
42             if (!skip_init){
43                 openerp.base(new_instance);
44             }
45             return new_instance;
46         }
47         // TODO add initrpc to init core only for RPC
48     };
49 })();
50
51 /*---------------------------------------------------------
52  * OpenERP Web base module split
53  *---------------------------------------------------------*/
54
55 openerp.base = function(instance) {
56     openerp.base.core(instance);
57     openerp.base.formats(instance);
58     openerp.base.chrome(instance);
59     openerp.base.data(instance);
60     if (openerp.base.views) {
61         openerp.base.views(instance);
62     }
63     if (openerp.base.search) {
64         openerp.base.search(instance);
65     }
66     if (openerp.base.list) {
67         openerp.base.list(instance);
68     }
69     if (openerp.base. m2o) {
70         openerp.base.m2o(instance);
71     }
72     if (openerp.base.form) {
73         openerp.base.form(instance);
74     }
75     if (openerp.base.list && openerp.base.list.editable) {
76         openerp.base.list.editable(instance);
77     }
78     if (openerp.web_mobile) {
79         openerp.web_mobile(instance);
80     }
81     if (openerp.base.view_tree) {
82         openerp.base.view_tree(instance);
83     }
84     if (openerp.base.data_export) {
85         openerp.base.data_export(instance);
86     }
87 };
88
89 // vim:et fdc=0 fdl=0 foldnestmax=3 fdm=syntax: