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