summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/services/ajax_service.js
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/web/static/src/js/services/ajax_service.js
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/web/static/src/js/services/ajax_service.js')
-rw-r--r--addons/web/static/src/js/services/ajax_service.js41
1 files changed, 41 insertions, 0 deletions
diff --git a/addons/web/static/src/js/services/ajax_service.js b/addons/web/static/src/js/services/ajax_service.js
new file mode 100644
index 00000000..da3d436c
--- /dev/null
+++ b/addons/web/static/src/js/services/ajax_service.js
@@ -0,0 +1,41 @@
+odoo.define('web.AjaxService', function (require) {
+"use strict";
+
+var AbstractService = require('web.AbstractService');
+var ajax = require('web.ajax');
+var core = require('web.core');
+var session = require('web.session');
+
+var AjaxService = AbstractService.extend({
+ /**
+ * @param {Object} libs - @see ajax.loadLibs
+ * @param {Object} [context] - @see ajax.loadLibs
+ * @param {Object} [tplRoute] - @see ajax.loadLibs
+ */
+ loadLibs: function (libs, context, tplRoute) {
+ return ajax.loadLibs(libs, context, tplRoute);
+ },
+ rpc: function (route, args, options, target) {
+ var rpcPromise;
+ var promise = new Promise(function (resolve, reject) {
+ rpcPromise = session.rpc(route, args, options);
+ rpcPromise.then(function (result) {
+ if (!target.isDestroyed()) {
+ resolve(result);
+ }
+ }).guardedCatch(function (reason) {
+ if (!target.isDestroyed()) {
+ reject(reason);
+ }
+ });
+ });
+ promise.abort = rpcPromise.abort.bind(rpcPromise);
+ return promise;
+ },
+});
+
+core.serviceRegistry.add('ajax', AjaxService);
+
+return AjaxService;
+
+});