1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
odoo.define('website.settings', function (require) {
const BaseSettingController = require('base.settings').Controller;
const core = require('web.core');
const Dialog = require('web.Dialog');
const FieldBoolean = require('web.basic_fields').FieldBoolean;
const fieldRegistry = require('web.field_registry');
const FormController = require('web.FormController');
const QWeb = core.qweb;
const _t = core._t;
BaseSettingController.include({
//--------------------------------------------------------------------------
// Handlers
//--------------------------------------------------------------------------
/**
* Bypasses the discard confirmation dialog when going to a website because
* the target website will be the one selected and when selecting a theme
* because the theme will be installed on the selected website.
*
* Without this override, it is impossible to go to a website other than the
* first because discarding will revert it back to the default value.
*
* Without this override, it is impossible to edit robots.txt website other than the
* first because discarding will revert it back to the default value.
*
* Without this override, it is impossible to submit sitemap to google other than for the
* first website because discarding will revert it back to the default value.
*
* Without this override, it is impossible to install a theme on a website
* other than the first because discarding will revert it back to the
* default value.
*
* @override
*/
_onButtonClicked: function (ev) {
if (ev.data.attrs.name === 'website_go_to'
|| ev.data.attrs.name === 'action_open_robots'
|| ev.data.attrs.name === 'action_ping_sitemap'
|| ev.data.attrs.name === 'install_theme_on_current_website') {
FormController.prototype._onButtonClicked.apply(this, arguments);
} else {
this._super.apply(this, arguments);
}
},
});
const WebsiteCookiesbarField = FieldBoolean.extend({
xmlDependencies: ['/website/static/src/xml/website.res_config_settings.xml'],
_onChange: function () {
const checked = this.$input[0].checked;
if (!checked) {
return this._setValue(checked);
}
const cancelCallback = () => this.$input[0].checked = !checked;
Dialog.confirm(this, null, {
title: _t("Please confirm"),
$content: QWeb.render('website.res_config_settings.cookies_modal_main'),
buttons: [{
text: _t('Do not activate'),
classes: 'btn-primary',
close: true,
click: cancelCallback,
},
{
text: _t('Activate anyway'),
close: true,
click: () => this._setValue(checked),
}],
cancel_callback: cancelCallback,
});
},
});
fieldRegistry.add('website_cookiesbar_field', WebsiteCookiesbarField);
});
|