diff options
Diffstat (limited to 'addons/web/static/src/js/apps.js')
| -rw-r--r-- | addons/web/static/src/js/apps.js | 44 |
1 files changed, 23 insertions, 21 deletions
diff --git a/addons/web/static/src/js/apps.js b/addons/web/static/src/js/apps.js index 8c5135f3b7b..a1f85d6ae31 100644 --- a/addons/web/static/src/js/apps.js +++ b/addons/web/static/src/js/apps.js @@ -3,7 +3,6 @@ odoo.define('web.Apps', function (require) { var core = require('web.core'); var framework = require('web.framework'); -var Model = require('web.DataModel'); var session = require('web.session'); var Widget = require('web.Widget'); @@ -41,21 +40,22 @@ var Apps = Widget.extend({ if (apps_client) { return check_client_available(apps_client); } else { - var Mod = new Model('ir.module.module'); - return Mod.call('get_apps_server').then(function(u) { - var link = $(_.str.sprintf('<a href="%s"></a>', u))[0]; - var host = _.str.sprintf('%s//%s', link.protocol, link.host); - var dbname = link.pathname; - if (dbname[0] === '/') { - dbname = dbname.substr(1); - } - var client = { - origin: host, - dbname: dbname - }; - apps_client = client; - return check_client_available(client); - }); + return this.rpc('ir.module.module', 'get_apps_server') + .exec() + .then(function(u) { + var link = $(_.str.sprintf('<a href="%s"></a>', u))[0]; + var host = _.str.sprintf('%s//%s', link.protocol, link.host); + var dbname = link.pathname; + if (dbname[0] === '/') { + dbname = dbname.substr(1); + } + var client = { + origin: host, + dbname: dbname + }; + apps_client = client; + return check_client_available(client); + }); } }, @@ -90,11 +90,13 @@ var Apps = Widget.extend({ }); }, 'Model': function(m) { - var M = new Model(m.model); - M[m.method].apply(M, m.args).then(function(r) { - var w = self.$ifr[0].contentWindow; - w.postMessage({id: m.id, result: r}, client.origin); - }); + return this.rpc(m.model, m.method) + .args(m.args) + .exec() + .then(function(r) { + var w = self.$ifr[0].contentWindow; + w.postMessage({id: m.id, result: r}, client.origin); + }); }, }; // console.log(e.data); |
