summaryrefslogtreecommitdiff
path: root/addons/website/static/src/js/website.model.js
diff options
context:
space:
mode:
Diffstat (limited to 'addons/website/static/src/js/website.model.js')
-rw-r--r--addons/website/static/src/js/website.model.js41
1 files changed, 41 insertions, 0 deletions
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());
+});