Convert visitors of your website into leads and perform data enrichment based on their IP address.
diff --git a/addons/crm_reveal/views/res_config_settings_views.xml b/addons/crm_reveal/views/res_config_settings_views.xml
index 4bd801e9a6b..713ec572e2a 100644
--- a/addons/crm_reveal/views/res_config_settings_views.xml
+++ b/addons/crm_reveal/views/res_config_settings_views.xml
@@ -1,16 +1,13 @@
- res.config.settings.view.form.inherit.crm_reveal
+ res.config.settings.view.form.inherit.crm.reveal
res.config.settings
-
-
-
-
-
-
+
+
+
diff --git a/addons/iap/static/src/js/iap_buy_more_credits.js b/addons/iap/static/src/js/iap_buy_more_credits.js
new file mode 100644
index 00000000000..a9ed1c472bd
--- /dev/null
+++ b/addons/iap/static/src/js/iap_buy_more_credits.js
@@ -0,0 +1,59 @@
+odoo.define('iap.buy_more_credits', function (require) {
+'use strict';
+
+var widgetRegistry = require('web.widget_registry');
+var Widget = require('web.Widget');
+
+var core = require('web.core');
+var rpc = require('web.rpc');
+
+var QWeb = core.qweb;
+
+var IAPBuyMoreCreditsWidget = Widget.extend({
+ className: 'o_field_iap_buy_more_credits',
+
+ /**
+ * @constructor
+ * Prepares the basic rendering of edit mode by setting the root to be a
+ * div.dropdown.open.
+ * @see FieldChar.init
+ */
+ init: function (parent, data, options) {
+ this._super.apply(this, arguments);
+ this.service_name = options.attrs.service_name;
+ },
+
+ /**
+ * @override
+ */
+ start: function () {
+ this.$widget = $(QWeb.render('iap.buy_more_credits'));
+ this.$buyLink = this.$widget.find('.buy_credits');
+ this.$widget.appendTo(this.$el);
+ this.$buyLink.click(this._getLink.bind(this));
+ },
+
+ //--------------------------------------------------------------------------
+ // Private
+ //--------------------------------------------------------------------------
+ _getLink: function () {
+ var self = this;
+ return rpc.query({
+ model: 'iap.account',
+ method: 'get_credits_url',
+ args: [this.service_name],
+ }, {
+ shadow: true,
+ }).then(function (url) {
+ return self.do_action({
+ type: 'ir.actions.act_url',
+ url: url,
+ });
+ });
+ },
+});
+
+widgetRegistry.add('iap_buy_more_credits', IAPBuyMoreCreditsWidget);
+
+return IAPBuyMoreCreditsWidget;
+});
diff --git a/addons/iap/static/src/js/iap_credit_checker_widget.js b/addons/iap/static/src/js/iap_credit_checker_widget.js
deleted file mode 100644
index 88275f3e167..00000000000
--- a/addons/iap/static/src/js/iap_credit_checker_widget.js
+++ /dev/null
@@ -1,110 +0,0 @@
-odoo.define('iap.credit.checker', function (require) {
-'use strict';
-
-var widgetRegistry = require('web.widget_registry');
-var Widget = require('web.Widget');
-
-var core = require('web.core');
-var rpc = require('web.rpc');
-
-var QWeb = core.qweb;
-
-var IAPCreditChecker = Widget.extend({
- className: 'o_field_iap_credit_checker',
-
- /**
- * @constructor
- * Prepares the basic rendering of edit mode by setting the root to be a
- * div.dropdown.open.
- * @see FieldChar.init
- */
- init: function (parent, data, options) {
- this._super.apply(this, arguments);
- this.service_name = options.attrs.service_name;
- },
-
- /**
- * @override
- */
- start: function () {
- this.$widget = $(QWeb.render('iap.credit_checker'));
- this.$loading = this.$widget.find('.loading');
- this.$sufficient = this.$widget.find('.sufficient');
- this.$insufficient = this.$widget.find('.insufficient');
- this.$error = this.$widget.find('.error');
- this.$buyLink = this.$widget.find('.buy_credits');
-
- this.$widget.appendTo(this.$el);
-
- this.$buyLink.click(this._getLink.bind(this));
-
- this._getCredits();
- },
-
- //--------------------------------------------------------------------------
- // Private
- //--------------------------------------------------------------------------
- _getCredits: function () {
- var self = this;
- this._showLoading();
-
- return rpc.query({
- model: 'iap.account',
- method: 'get_credits',
- args: [this.service_name],
- }, {
- shadow: true,
- }).then(function (credit) {
- if (credit > 0) self._showSufficient(credit);
- else if (credit < 0) self._showError();
- else self._showInsufficient();
- });
- },
-
- _getLink: function () {
- console.log(true)
- var self = this;
- return rpc.query({
- model: 'iap.account',
- method: 'get_credits_url',
- args: [this.service_name],
- }, {
- shadow: true,
- }).then(function (url) {
- return self.do_action({
- type: 'ir.actions.act_url',
- url: url,
- });
- });
- },
-
- _showLoading: function () {
- this.$loading.show();
- this.$sufficient.hide();
- this.$insufficient.hide();
- this.$error.hide();
- },
- _showSufficient: function (credits) {
- this.$loading.hide();
- this.$sufficient.show().find('.remaining_credits').text(credits);
- this.$insufficient.hide();
- this.$error.hide();
- },
- _showInsufficient: function () {
- this.$loading.hide();
- this.$sufficient.hide();
- this.$insufficient.show();
- this.$error.hide();
- },
- _showError: function () {
- this.$loading.hide();
- this.$sufficient.hide();
- this.$insufficient.hide();
- this.$error.show();
- },
-});
-
-widgetRegistry.add('iap_credit_checker', IAPCreditChecker);
-
-return IAPCreditChecker;
-});
diff --git a/addons/iap/static/src/xml/iap_templates.xml b/addons/iap/static/src/xml/iap_templates.xml
index 10969dddd3d..42f1f1ec035 100644
--- a/addons/iap/static/src/xml/iap_templates.xml
+++ b/addons/iap/static/src/xml/iap_templates.xml
@@ -34,23 +34,9 @@
-
-
- Checking remaining credit ...
-
-
- Insufficient credit
-
-
- Remaining : credits
-
-
- Temporarily unavailable
-
-
+
- Buy more credits
+ Buy credits
diff --git a/addons/iap/views/assets.xml b/addons/iap/views/assets.xml
index a47c80355cc..936bb947577 100644
--- a/addons/iap/views/assets.xml
+++ b/addons/iap/views/assets.xml
@@ -5,7 +5,7 @@
-
+
diff --git a/addons/partner_autocomplete/views/res_config_settings_views.xml b/addons/partner_autocomplete/views/res_config_settings_views.xml
index 13889bc52a2..48303fa45d4 100644
--- a/addons/partner_autocomplete/views/res_config_settings_views.xml
+++ b/addons/partner_autocomplete/views/res_config_settings_views.xml
@@ -6,22 +6,8 @@
-
+
-
-
-
-
- You don't have credits to auto-complete companies' data anymore.
-
-
- Buy more credits
-
-
- ×
-
-
-
diff --git a/addons/sms/__manifest__.py b/addons/sms/__manifest__.py
index c47ed128a8a..574a13810d3 100644
--- a/addons/sms/__manifest__.py
+++ b/addons/sms/__manifest__.py
@@ -13,6 +13,7 @@ The service is provided by the In App Purchase Odoo platform.
'depends': ['base', 'iap', 'mail'],
'data': [
'wizard/send_sms_views.xml',
+ 'views/res_config_settings_views.xml',
'views/res_partner_views.xml',
'views/templates.xml',
],
diff --git a/addons/sms/views/res_config_settings_views.xml b/addons/sms/views/res_config_settings_views.xml
new file mode 100644
index 00000000000..f85b590f452
--- /dev/null
+++ b/addons/sms/views/res_config_settings_views.xml
@@ -0,0 +1,13 @@
+
+
+
+ res.config.settings.view.form.inherit.sms
+ res.config.settings
+
+
+
+
+
+
+
+
diff --git a/addons/snailmail_account/views/res_config_settings_views.xml b/addons/snailmail_account/views/res_config_settings_views.xml
index 2bb518f5f10..7c8b4714389 100644
--- a/addons/snailmail_account/views/res_config_settings_views.xml
+++ b/addons/snailmail_account/views/res_config_settings_views.xml
@@ -7,26 +7,15 @@
-