[FIX] website: fix conditional visibility depending on date field
Since commit [1], the "tempusdominus" date(time) picker has been replaced by the OWL date(time) picker. This change resulted in a modification of the HTML structure for date(time) input fields. Consequently, a bug emerged in the visibility options for fields reliant on a date(time) field. Specifically, the time condition selector failed to display the time conditions because they are rendered based on the HTML structure of the fields. Since the code was not adjusted to fit the new structure, this functionality stopped functioning. [1]: https://github.com/odoo/odoo/commit/910897fc97d87b08f01627094ec8c159f5267628 task-3790809 Part-of: odoo/odoo#158288
This commit is contained in:
@@ -1227,18 +1227,18 @@ options.registry.WebsiteFieldEditor = FieldEditor.extend({
|
||||
const dependencyEl = this._getDependencyEl();
|
||||
switch (widgetName) {
|
||||
case 'hidden_condition_time_comparators_opt':
|
||||
return dependencyEl && dependencyEl.dataset.target;
|
||||
return dependencyEl?.classList.contains("datetimepicker-input");
|
||||
case 'hidden_condition_date_between':
|
||||
return dependencyEl && dependencyEl.dataset.target && dependencyEl.dataset.target.includes('#datepicker')
|
||||
return dependencyEl?.closest(".s_website_form_date")
|
||||
&& ['between', '!between'].includes(this.$target[0].getAttribute('data-visibility-comparator'));
|
||||
case 'hidden_condition_datetime_between':
|
||||
return dependencyEl && dependencyEl.dataset.target && dependencyEl.dataset.target.includes('#datetimepicker')
|
||||
return dependencyEl?.closest(".s_website_form_datetime")
|
||||
&& ['between', '!between'].includes(this.$target[0].dataset.visibilityComparator);
|
||||
case 'hidden_condition_additional_datetime':
|
||||
return dependencyEl && dependencyEl.dataset.target && dependencyEl.dataset.target.includes('#datetimepicker')
|
||||
return dependencyEl?.closest(".s_website_form_datetime")
|
||||
&& !['set', '!set'].includes(this.$target[0].dataset.visibilityComparator);
|
||||
case 'hidden_condition_additional_date':
|
||||
return dependencyEl && dependencyEl.dataset.target && dependencyEl.dataset.target.includes('#datepicker')
|
||||
return dependencyEl && dependencyEl?.closest(".s_website_form_date")
|
||||
&& !['set', '!set'].includes(this.$target[0].dataset.visibilityComparator);
|
||||
case 'hidden_condition_additional_text':
|
||||
if (!this.$target[0].classList.contains('s_website_form_field_hidden_if') ||
|
||||
@@ -1248,7 +1248,7 @@ options.registry.WebsiteFieldEditor = FieldEditor.extend({
|
||||
if (!dependencyEl) {
|
||||
return true;
|
||||
}
|
||||
if (dependencyEl.dataset.target && dependencyEl.dataset.target.includes('#date')) {
|
||||
if (dependencyEl?.classList.contains("datetimepicker-input")) {
|
||||
return false;
|
||||
}
|
||||
return (['text', 'email', 'tel', 'url', 'search', 'password', 'number'].includes(dependencyEl.type)
|
||||
@@ -1258,16 +1258,16 @@ options.registry.WebsiteFieldEditor = FieldEditor.extend({
|
||||
case 'hidden_condition_num_opt':
|
||||
return dependencyEl && dependencyEl.type === 'number';
|
||||
case 'hidden_condition_text_opt':
|
||||
if (!this.$target[0].classList.contains('s_website_form_field_hidden_if') || (dependencyEl &&
|
||||
dependencyEl.dataset.target && dependencyEl.dataset.target.includes('#date'))) {
|
||||
if (!this.$target[0].classList.contains('s_website_form_field_hidden_if') ||
|
||||
(dependencyEl?.classList.contains("datetimepicker-input"))) {
|
||||
return false;
|
||||
}
|
||||
return !dependencyEl || (['text', 'email', 'tel', 'url', 'search', 'password'].includes(dependencyEl.type) ||
|
||||
dependencyEl.nodeName === 'TEXTAREA');
|
||||
case 'hidden_condition_date_opt':
|
||||
return dependencyEl && dependencyEl.dataset.target && dependencyEl.dataset.target.includes('#datepicker');
|
||||
return dependencyEl?.closest(".s_website_form_date");
|
||||
case 'hidden_condition_datetime_opt':
|
||||
return dependencyEl && dependencyEl.dataset.target && dependencyEl.dataset.target.includes('#datetimepicker');
|
||||
return dependencyEl?.closest(".s_website_form_datetime");
|
||||
case 'hidden_condition_file_opt':
|
||||
return dependencyEl && dependencyEl.type === 'file';
|
||||
case 'hidden_condition_opt':
|
||||
|
||||
Reference in New Issue
Block a user