[WIP] Breadcrumb
[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} modules list of modules to initialize
23          */
24         init: function(modules) {
25             // By default only web will be loaded, the rest will be by loaded
26             // by openerp.web.Session on the first session_authenticate
27             modules = modules || ["web"];
28             var new_instance = {
29                 // links to the global openerp
30                 _openerp: openerp,
31                 // this unique id will be replaced by hostname_databasename by
32                 // openerp.web.Session on the first connection
33                 _session_id: "instance" + session_counter++,
34                 _modules: modules,
35                 web: {},
36                 web_mobile: {}
37             };
38             openerp.instances[new_instance._session_id] = new_instance;
39             for(var i=0; i < modules.length; i++) {
40                 openerp[modules[i]](new_instance,new_instance[modules[i]]);
41             }
42             return new_instance;
43         }
44     };
45 })();
46
47 /*---------------------------------------------------------
48  * OpenERP Web web module split
49  *---------------------------------------------------------*/
50 openerp.web = function(session) {
51     var files = ["corelib","coresetup","dates","formats","chrome","data","views","search","list","form","list_editable","web_mobile","view_tree","data_export","data_import","view_editor"];
52     for(var i=0; i<files.length; i++) {
53         if(openerp.web[files[i]]) {
54             openerp.web[files[i]](session);
55         }
56     }
57 };
58
59 // vim:et fdc=0 fdl=0 foldnestmax=3 fdm=syntax: