diff --git a/addons/spreadsheet_dashboard/static/src/bundle/dashboard_action/dashboard_action.xml b/addons/spreadsheet_dashboard/static/src/bundle/dashboard_action/dashboard_action.xml index 5d504f01bc6..1bc9c12af4b 100644 --- a/addons/spreadsheet_dashboard/static/src/bundle/dashboard_action/dashboard_action.xml +++ b/addons/spreadsheet_dashboard/static/src/bundle/dashboard_action/dashboard_action.xml @@ -1,6 +1,6 @@ -
+
diff --git a/addons/web/static/src/views/fields/fields.scss b/addons/web/static/src/views/fields/fields.scss index d877330e9e6..b7dd74edeb4 100644 --- a/addons/web/static/src/views/fields/fields.scss +++ b/addons/web/static/src/views/fields/fields.scss @@ -1,3 +1,11 @@ .o_field_cursor_disabled { cursor: not-allowed; } + +// .o_field_highlight is used in several types of view to force fields +// to be displayed with a bottom border even when not hovered (e.g. added +// by mobile detection, in several specific places such as spreadsheet or +// knowledge sidebars, settings view, kanban quick create (not a form view), etc.) +.o_field_highlight .o_field_widget .o_input, .o_field_highlight.o_field_widget .o_input { + border-color: var(--o-input-border-color); +} diff --git a/addons/web/static/src/views/fields/many2many_tags/many2many_tags_field.scss b/addons/web/static/src/views/fields/many2many_tags/many2many_tags_field.scss index 6baf5020ac9..97f9bf8b4ca 100644 --- a/addons/web/static/src/views/fields/many2many_tags/many2many_tags_field.scss +++ b/addons/web/static/src/views/fields/many2many_tags/many2many_tags_field.scss @@ -78,7 +78,7 @@ } } - &.o_form_with_borderless_input { + &:not(.o_field_highlight) { .o_field_many2many_selection { .o_dropdown_button { visibility: hidden; diff --git a/addons/web/static/src/views/fields/many2one/many2one_field.scss b/addons/web/static/src/views/fields/many2one/many2one_field.scss index 8f442eade70..00b8d1ae9f5 100644 --- a/addons/web/static/src/views/fields/many2one/many2one_field.scss +++ b/addons/web/static/src/views/fields/many2one/many2one_field.scss @@ -1,4 +1,4 @@ -.o_form_view.o_form_with_borderless_input { +.o_form_view:not(.o_field_highlight) { .o_field_many2one_selection { .o_external_button, .o_dropdown_button { visibility: hidden; diff --git a/addons/web/static/src/views/fields/url/url_field.scss b/addons/web/static/src/views/fields/url/url_field.scss new file mode 100644 index 00000000000..0c675fd21af --- /dev/null +++ b/addons/web/static/src/views/fields/url/url_field.scss @@ -0,0 +1,7 @@ +body:not(.o_touch_device) .o_field_url { + &:not(:hover):not(:focus-within) { + & input:not(:hover) ~ a { + display: none !important; + } + } +} diff --git a/addons/web/static/src/views/form/form_controller.js b/addons/web/static/src/views/form/form_controller.js index 0d5c57220ae..a497428414b 100644 --- a/addons/web/static/src/views/form/form_controller.js +++ b/addons/web/static/src/views/form/form_controller.js @@ -471,7 +471,7 @@ export class FormController extends Component { if (this.props.className) { result[this.props.className] = true; } - result["o_form_with_borderless_input"] = size > SIZES.SM && !hasTouch(); + result["o_field_highlight"] = size < SIZES.SM || hasTouch(); return result; } } diff --git a/addons/web/static/src/views/form/form_controller.scss b/addons/web/static/src/views/form/form_controller.scss index 471e7f562dc..0ba523779dc 100644 --- a/addons/web/static/src/views/form/form_controller.scss +++ b/addons/web/static/src/views/form/form_controller.scss @@ -202,29 +202,29 @@ flex: 1 1 auto; } - &.o_form_with_borderless_input { - .o_input { - border-color: transparent; - padding: $o-input-padding-y $o-input-padding-x; + // rules for fields borders: only on hover/focus by default + // except when used with o_field_highlight (on parent or on the field) + .o_input { + border-color: transparent; + padding: $o-input-padding-y $o-input-padding-x; - &:hover, &:focus { - border-color: var(--o-input-border-color); - } - } - - &.o_field_invalid .o_input { + &:hover, &:focus { border-color: var(--o-input-border-color); } + } - .o_datepicker { + &.o_field_invalid .o_input { + border-color: var(--o-input-border-color); + } + + .o_datepicker { + .o_datepicker_button { + visibility: hidden; + } + + &:hover, &:focus-within { .o_datepicker_button { - visibility: hidden; - } - - &:hover, &:focus-within { - .o_datepicker_button { - visibility: visible; - } + visibility: visible; } } } @@ -523,6 +523,9 @@ > .o_field_html > .note-editable { min-height: 180px; + &:hover, &:focus { + border-color: transparent; + } } > :first-child { // Reset margin to 0 and use tab-pane's padding diff --git a/addons/web/static/src/views/kanban/kanban_record_quick_create.xml b/addons/web/static/src/views/kanban/kanban_record_quick_create.xml index 82641530d9b..e1fb0984c82 100644 --- a/addons/web/static/src/views/kanban/kanban_record_quick_create.xml +++ b/addons/web/static/src/views/kanban/kanban_record_quick_create.xml @@ -3,7 +3,7 @@
diff --git a/addons/web/static/src/webclient/settings_form_view/settings_form_controller.js b/addons/web/static/src/webclient/settings_form_view/settings_form_controller.js index 829f03f376c..713870ccf0a 100644 --- a/addons/web/static/src/webclient/settings_form_view/settings_form_controller.js +++ b/addons/web/static/src/webclient/settings_form_view/settings_form_controller.js @@ -43,12 +43,6 @@ export class SettingsFormController extends formView.Controller { this.initialApp = "module" in this.props.context && this.props.context.module; } - get className() { - const result = super.className; - result["o_form_with_borderless_input"] = false; - return result; - } - /** * @override */ diff --git a/addons/web/static/src/webclient/settings_form_view/settings_form_view.xml b/addons/web/static/src/webclient/settings_form_view/settings_form_view.xml index b764893b1c9..11dfe5b92ba 100644 --- a/addons/web/static/src/webclient/settings_form_view/settings_form_view.xml +++ b/addons/web/static/src/webclient/settings_form_view/settings_form_view.xml @@ -2,7 +2,7 @@ - o-settings-form-view + o-settings-form-view o_field_highlight diff --git a/addons/web_editor/static/src/scss/web_editor.backend.scss b/addons/web_editor/static/src/scss/web_editor.backend.scss index f2d9e4c1de1..6aa5a7907b2 100644 --- a/addons/web_editor/static/src/scss/web_editor.backend.scss +++ b/addons/web_editor/static/src/scss/web_editor.backend.scss @@ -39,7 +39,7 @@ } } -.o_form_view.o_form_with_borderless_input { +.o_form_view:not(o_field_highlight) { .o_field_html .note-editable { border: $input-border-width solid transparent; border-width: 0 0 $input-border-width 0;