summaryrefslogtreecommitdiff
path: root/addons/iap/static/src/js/crash_manager.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/iap/static/src/js/crash_manager.js
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/iap/static/src/js/crash_manager.js')
-rw-r--r--addons/iap/static/src/js/crash_manager.js72
1 files changed, 72 insertions, 0 deletions
diff --git a/addons/iap/static/src/js/crash_manager.js b/addons/iap/static/src/js/crash_manager.js
new file mode 100644
index 00000000..11324fb6
--- /dev/null
+++ b/addons/iap/static/src/js/crash_manager.js
@@ -0,0 +1,72 @@
+odoo.define('iap.CrashManager', function (require) {
+"use strict";
+
+var ajax = require('web.ajax');
+var core = require('web.core');
+var CrashManager = require('web.CrashManager').CrashManager;
+var Dialog = require('web.Dialog');
+
+var _t = core._t;
+var QWeb = core.qweb;
+
+CrashManager.include({
+ /**
+ * Change button string depending if it's Enterprise and trial available
+ * (Only change the text message in the button, doesn't change IAP side validation)
+ *
+ * @param {boolean} isTrial
+ * @returns {string}
+ * @private
+ */
+ _getButtonMessage: function (isTrial){
+ var isEnterprise = _.last(odoo.session_info.server_version_info) === 'e';
+ return isTrial && isEnterprise ? _t('Start a Trial at Odoo') : _t('Buy credits');
+ },
+ /**
+ * @override
+ */
+ rpc_error: function (error) {
+ var self = this;
+ if (error.data.name === "odoo.addons.iap.tools.iap_tools.InsufficientCreditError") {
+ var error_data = JSON.parse(error.data.message);
+ ajax.jsonRpc('/web/dataset/call_kw', 'call', {
+ model: 'iap.account',
+ method: 'get_credits_url',
+ args: [],
+ kwargs: {
+ base_url: error_data.base_url,
+ service_name: error_data.service_name,
+ credit: error_data.credit,
+ trial: error_data.trial
+ }
+ }).then(function (url) {
+ var content = $(QWeb.render('iap.redirect_to_odoo_credit', {
+ data: error_data,
+ }));
+ if (error_data.body) {
+ content.css('padding', 0);
+ }
+ new Dialog(this, {
+ size: 'large',
+ title: error_data.title || _t("Insufficient Balance"),
+ $content: content,
+ buttons: [{
+ text: self._getButtonMessage(error_data.trial),
+ classes : "btn-primary",
+ click: function () {
+ window.open(url, '_blank');
+ },
+ close:true,
+ }, {
+ text: _t("Cancel"),
+ close: true,
+ }],
+ }).open();
+ });
+ } else {
+ this._super.apply(this, arguments);
+ }
+ },
+});
+
+});