diff options
| author | Géry Debongnie <ged@odoo.com> | 2017-03-05 09:34:56 +0100 |
|---|---|---|
| committer | Aaron Bohy <aab@odoo.com> | 2017-04-11 19:44:38 +0200 |
| commit | e5740270568404d71a3bc093074a085c9c2eded8 (patch) | |
| tree | 7b84740d92c550236de25a37cf37d244760bdbf3 /addons/website/static/src/js | |
| parent | 0df9968433389e0d504276cd711473c2eef937ae (diff) | |
[REF] web,*: remove 'web.model' and 'web.dataModel
Use this.rpc instead of Model object, with web.ajax if necessary.
nb: EventDispatcherMixin include now the custom_events managment instead
of widget
Diffstat (limited to 'addons/website/static/src/js')
5 files changed, 48 insertions, 9 deletions
diff --git a/addons/website/static/src/js/web_planner_website.js b/addons/website/static/src/js/web_planner_website.js index b2407837481..7f196a0ce9d 100644 --- a/addons/website/static/src/js/web_planner_website.js +++ b/addons/website/static/src/js/web_planner_website.js @@ -3,16 +3,16 @@ odoo.define('web.planner.website', function (require) { var ajax = require('web.ajax'); var core = require('web.core'); -var Model = require('web.Model'); var planner = require('web.planner.common'); var session = require('web.session'); var website = require('website.website'); +var model = require('website.model'); var qweb = core.qweb; var WebsitePlannerLauncher = planner.PlannerLauncher.extend({ _fetch_planner_data: function () { - return (new Model('web.planner')).call('search_read', [[['planner_application', '=', 'planner_website']]]).then((function (planner) { + return model.performModelRPC('web.planner', 'search_read', [[['planner_application', '=', 'planner_website']]]).then((function (planner) { if (!planner.length) return; planner[0].data = $.parseJSON(planner[0].data) || {}; diff --git a/addons/website/static/src/js/website.backendDashboard.js b/addons/website/static/src/js/website.backendDashboard.js index 3b5ad204ad7..67a72a6de9e 100644 --- a/addons/website/static/src/js/website.backendDashboard.js +++ b/addons/website/static/src/js/website.backendDashboard.js @@ -7,7 +7,6 @@ var ControlPanelMixin = require('web.ControlPanelMixin'); var core = require('web.core'); var Dialog = require('web.Dialog'); var formats = require('web.formats'); -var Model = require('web.Model'); var session = require('web.session'); var web_client = require('web.web_client'); var Widget = require('web.Widget'); @@ -104,7 +103,7 @@ var Dashboard = Widget.extend(ControlPanelMixin, { } var self = this; - new Model('ir.config_parameter').call('set_param', ['google_management_client_id', ga_client_id]).then(function(){ + this.performModelRPC('ir.config_parameter', 'set_param', ['google_management_client_id', ga_client_id]).then(function(){ self.on_date_range_button('week'); }); }, diff --git a/addons/website/static/src/js/website.model.js b/addons/website/static/src/js/website.model.js new file mode 100644 index 00000000000..66b75e398af --- /dev/null +++ b/addons/website/static/src/js/website.model.js @@ -0,0 +1,41 @@ +/** + * Service to fetch data, websites Javascript must use performModelRPC of this module + */ +odoo.define('website.model', function (require) { +"use strict"; + +var Class = require('web.Class'); +var Mixins = require('web.mixins'); +var ajax = require('web.ajax'); + +var CallService = Class.extend(Mixins.EventDispatcherMixin, { + custom_events: { + call_service: '_callService' + }, + init: function () { + Mixins.EventDispatcherMixin.init.call(this); + }, + + //-------------------------------------------------------------------------- + // Private + //-------------------------------------------------------------------------- + + /** + * @private + * @param {OdooEvent} event + */ + _callService: function (event) { + var result = ajax[event.data.method].apply(ajax, event.data.args); + event.data.callback(result); + }, +}); + +var Model = Class.extend(Mixins.EventDispatcherMixin, Mixins.ServicesMixin, { + init: function (parent) { + Mixins.EventDispatcherMixin.init.call(this); + this.setParent(parent); + }, +}); + +return new Model(new CallService()); +}); diff --git a/addons/website/static/src/js/website.seo.js b/addons/website/static/src/js/website.seo.js index 09e6c00a701..3a4d6dc5000 100644 --- a/addons/website/static/src/js/website.seo.js +++ b/addons/website/static/src/js/website.seo.js @@ -6,7 +6,6 @@ var ajax = require('web.ajax'); var Class = require('web.Class'); var Dialog = require('web.Dialog'); var mixins = require('web.mixins'); -var Model = require('web.Model'); var Widget = require('web.Widget'); var base = require('web_editor.base'); var website = require('website.website'); @@ -491,7 +490,7 @@ var Configurator = Dialog.extend({ def.resolve(null); } else { var fields = ['website_meta_title', 'website_meta_description', 'website_meta_keywords']; - var model = new Model(obj.model).call('read', [[obj.id], fields, base.get_context()]).then(function (data) { + this.performModelRPC(obj.model, 'read', [[obj.id], fields, base.get_context()]).then(function (data) { if (data.length) { var meta = data[0]; meta.model = obj.model; @@ -510,7 +509,7 @@ var Configurator = Dialog.extend({ if (!obj) { return $.Deferred().reject(); } else { - return new Model(obj.model).call('write', [[obj.id], data, base.get_context()]); + return this.performModelRPC(obj.model, 'write', [[obj.id], data, base.get_context()]); } }, titleChanged: function () { diff --git a/addons/website/static/src/js/website.snippets.editor.js b/addons/website/static/src/js/website.snippets.editor.js index 94bb408b9ac..604c8d589f9 100644 --- a/addons/website/static/src/js/website.snippets.editor.js +++ b/addons/website/static/src/js/website.snippets.editor.js @@ -4,7 +4,6 @@ odoo.define('website.snippets.editor', function (require) { var ajax = require("web.ajax"); var core = require("web.core"); var Dialog = require("web.Dialog"); -var Model = require("web.Model"); var editor = require("web_editor.editor"); var animation = require('web_editor.snippets.animation'); var options = require('web_editor.snippets.options'); @@ -55,6 +54,7 @@ options.registry.menu_data = options.Class.extend({ options.registry.company_data = options.Class.extend({ start: function () { + var self = this; this._super.apply(this, arguments); var proto = options.registry.company_data.prototype; @@ -62,7 +62,7 @@ options.registry.company_data = options.Class.extend({ if (proto.__link_deferred === undefined) { proto.__link_deferred = $.Deferred(); return ajax.jsonRpc("/web/session/get_session_info", "call").then(function (session) { - return (new Model("res.users")).get_func("read")(session.uid, ["company_id"]).then(function (res) { + return self.performModelRPC("res.users", "read", [session.uid, ["company_id"]]).then(function (res) { proto.__link_deferred.resolve( "/web#action=base.action_res_company_form&view_type=form&id=" + (res && res[0] && res[0].company_id[0] || 1) ); |
