From 10104a2bf0c09a7a9152dce137fc8d4dd821e3e2 Mon Sep 17 00:00:00 2001 From: Antony Lesuisse Date: Fri, 11 Mar 2011 14:26:22 +0100 Subject: [PATCH] addons js loading bzr revid: al@openerp.com-20110311132622-otrxhghgox9jqax6 --- addons/base/controllers/main.py | 39 +++++++++---------- addons/base/static/openerp/js/controllers.js | 39 ++++++++++++++----- .../base_hello/static/openerp/base_hello.js | 32 +++++++++++++++ 3 files changed, 80 insertions(+), 30 deletions(-) create mode 100644 addons/base_hello/static/openerp/base_hello.js diff --git a/addons/base/controllers/main.py b/addons/base/controllers/main.py index fc764882231..df21adb8db0 100644 --- a/addons/base/controllers/main.py +++ b/addons/base/controllers/main.py @@ -67,29 +67,13 @@ class Hello(openerpweb.Controller): class Session(openerpweb.Controller): _cp_path = "/base/session" - @openerpweb.jsonrequest - def login(self, req, db, login, password): - req.session.login('trunk', login, password) - res = { - "session_id" : req.session_id, - "uid": req.session._uid, - } - return res - - @openerpweb.jsonrequest - def modules(self, req): - res={} - res["modules"] = ["base","base_hello"] - return res - def manifest_glob(self, modlist, key): files = [] - for i in modlist.split(','): - globlist = openerpweb.addons_manifest.get(i,{}).get('css',[]) + for i in modlist: + globlist = openerpweb.addons_manifest.get(i, {}).get(key, []) for j in globlist: - tmp = glob.glob(os.path.join(openerpweb.path_addons,i,j)) - files.append(tmp) - print modlist, key, files + for k in glob.glob(os.path.join(openerpweb.path_addons, i, j)): + files.append(k[len(openerpweb.path_addons):]) return files def concat_files(self, file_list): @@ -110,6 +94,21 @@ class Session(openerpweb.Controller): files_concat = "".join(files_content) return files_concat + @openerpweb.jsonrequest + def login(self, req, db, login, password): + req.session.login('trunk', login, password) + res = { + "session_id" : req.session_id, + "uid": req.session._uid, + } + return res + + @openerpweb.jsonrequest + def modules(self, req): + res={} + res["modules"] = ["base","base_hello"] + return res + @openerpweb.jsonrequest def csslist(self, req, mods='base,base_hello'): return {'files': self.manifest_glob(mods.split(','), 'css')} diff --git a/addons/base/static/openerp/js/controllers.js b/addons/base/static/openerp/js/controllers.js index 971d05e425e..b5312856408 100644 --- a/addons/base/static/openerp/js/controllers.js +++ b/addons/base/static/openerp/js/controllers.js @@ -146,7 +146,7 @@ openerp.base.Session = openerp.base.BasicController.extend({ var post = { request: JSON.stringify(request) }; // Use a default error handler unless defined - error_callback = typeof(error_callback) != "undefined" ? error_callback : this.on_error; + error_callback = typeof(error_callback) != "undefined" ? error_callback : this.on_rpc_error; // Call using the rpc_mode this.rpc_ajax(url, post, success_callback, error_callback); @@ -189,7 +189,7 @@ openerp.base.Session = openerp.base.BasicController.extend({ }, on_rpc_response: function() { }, - on_error: function(error) { + on_rpc_error: function(error) { // TODO this should use the $element with focus and buttonsi displaying OPW etc... this.on_log(error, error.message, error.data.type, error.data.debug); }, @@ -207,29 +207,48 @@ openerp.base.Session = openerp.base.BasicController.extend({ this.rpc("/base/session/login", params, function(result) { self.session_id = result.session_id; self.uid = result.uid; - if (sucess_callback) sucess_callback(); + self.session_check_modules(); + if (sucess_callback) + sucess_callback(); }); }, session_check_modules: function() { - // TODO if(!openerp._modules_loaded) this.session_load_modules(); }, session_load_modules: function() { var self = this; - this.rpc('/base/session/list_modules', {}, function(result) { + this.rpc('/base/session/modules', {}, function(result) { this.module_list = result['modules']; if(self.debug) { - // add the module code one by one as