summaryrefslogtreecommitdiff
path: root/addons/website/static/src/js
diff options
context:
space:
mode:
authorGéry Debongnie <ged@odoo.com>2017-03-05 09:34:56 +0100
committerAaron Bohy <aab@odoo.com>2017-04-11 19:44:38 +0200
commite5740270568404d71a3bc093074a085c9c2eded8 (patch)
tree7b84740d92c550236de25a37cf37d244760bdbf3 /addons/website/static/src/js
parent0df9968433389e0d504276cd711473c2eef937ae (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')
-rw-r--r--addons/website/static/src/js/web_planner_website.js4
-rw-r--r--addons/website/static/src/js/website.backendDashboard.js3
-rw-r--r--addons/website/static/src/js/website.model.js41
-rw-r--r--addons/website/static/src/js/website.seo.js5
-rw-r--r--addons/website/static/src/js/website.snippets.editor.js4
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)
);