2018-01-16 11:34:37 +01:00
|
|
|
@flectra-list-group-header-color: lighten(@flectra-brand-lightsecondary, 10%);
|
2018-01-16 06:58:15 +01:00
|
|
|
|
|
|
|
.o_list_view {
|
|
|
|
position: relative;
|
|
|
|
cursor: pointer;
|
2018-01-16 11:34:37 +01:00
|
|
|
background-color: @flectra-view-background-color;
|
2018-01-16 06:58:15 +01:00
|
|
|
margin-bottom: 0px;
|
|
|
|
|
|
|
|
&.table {
|
|
|
|
td, th {
|
|
|
|
vertical-align: middle;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
thead {
|
2018-01-16 11:34:37 +01:00
|
|
|
color: @flectra-main-text-color;
|
2018-01-16 06:58:15 +01:00
|
|
|
border-bottom: 1px solid #cacaca;
|
|
|
|
> tr > th {
|
|
|
|
border-left: 1px solid #dfdfdf;
|
|
|
|
&:not(.o_column_sortable):hover {
|
|
|
|
cursor: default;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
tfoot {
|
|
|
|
cursor: default;
|
2018-01-16 11:34:37 +01:00
|
|
|
color: @flectra-list-footer-color;
|
|
|
|
background-color: @flectra-list-footer-bg-color;
|
|
|
|
font-weight: @flectra-list-footer-font-weight;
|
2018-01-16 06:58:15 +01:00
|
|
|
border-top: 2px solid #cacaca;
|
|
|
|
border-bottom: 1px solid #cacaca;
|
|
|
|
}
|
|
|
|
|
|
|
|
.o_column_sortable {
|
|
|
|
position: relative;
|
|
|
|
.user-select(none); // Prevent unwanted selection while sorting
|
|
|
|
|
|
|
|
&::after {
|
|
|
|
margin-left: 6px;
|
|
|
|
position: absolute;
|
|
|
|
font-family: FontAwesome;
|
|
|
|
content: "\f0d7";
|
|
|
|
opacity: 0;
|
|
|
|
}
|
|
|
|
&.o-sort-up {
|
|
|
|
cursor: n-resize;
|
|
|
|
&::after {
|
|
|
|
content: "\f0d7";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
&.o-sort-down {
|
|
|
|
cursor: s-resize;
|
|
|
|
&::after {
|
|
|
|
content: "\f0d8";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
&:hover::after {
|
|
|
|
opacity: 0.3;
|
|
|
|
}
|
|
|
|
&.o-sort-up, &.o-sort-down {
|
|
|
|
color: @headings-color;
|
|
|
|
&::after {
|
|
|
|
opacity: 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.o_list_record_selector, .o_list_record_delete, .o_handle_cell {
|
|
|
|
width: 1px; // to prevent the column to expand
|
|
|
|
}
|
|
|
|
|
|
|
|
// Decoration of the row
|
|
|
|
.text-bf {
|
|
|
|
font-weight: bold;
|
|
|
|
}
|
|
|
|
.text-it {
|
|
|
|
font-style: italic;
|
|
|
|
}
|
|
|
|
.text-muted {
|
|
|
|
color: lighten(@text-muted, 10%);
|
|
|
|
}
|
|
|
|
|
|
|
|
// Grouped list views
|
|
|
|
tbody > tr.o_group_header {
|
|
|
|
height: 31px;
|
|
|
|
|
|
|
|
.o_group_name {
|
|
|
|
white-space: nowrap;
|
|
|
|
}
|
|
|
|
.o_group_pager {
|
|
|
|
cursor: text;
|
|
|
|
.user-select(none);
|
|
|
|
text-align: right;
|
|
|
|
padding-top: 0;
|
|
|
|
padding-bottom: 0;
|
|
|
|
.o_pager_previous, .o_pager_next {
|
2018-01-16 11:34:37 +01:00
|
|
|
background-color: @flectra-list-group-header-color;
|
2018-01-16 06:58:15 +01:00
|
|
|
&:hover {
|
2018-01-16 11:34:37 +01:00
|
|
|
background-color: darken(@flectra-list-group-header-color, 10%);
|
2018-01-16 06:58:15 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
> td.oe_number{
|
|
|
|
text-align: right;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
tbody + tbody {
|
|
|
|
border-top: none; // Override bootstrap for grouped list views
|
|
|
|
}
|
|
|
|
|
|
|
|
// Values styling
|
|
|
|
.o_list_number {
|
|
|
|
text-align: right;
|
|
|
|
white-space: nowrap;
|
|
|
|
}
|
|
|
|
.o_list_text {
|
|
|
|
white-space: pre-wrap;
|
|
|
|
}
|
|
|
|
|
|
|
|
.o_data_cell.o_invisible_modifier {
|
|
|
|
// Override display: none to keep table cells aligned. Note: cannot use
|
|
|
|
// 'initial' as it will force them to 'inline', not 'table-cell'.
|
|
|
|
display: table-cell!important;
|
|
|
|
}
|
|
|
|
|
|
|
|
//--------------------------------------------------------------------------
|
|
|
|
// Edition
|
|
|
|
//--------------------------------------------------------------------------
|
|
|
|
.o_data_row.o_selected_row > .o_data_cell:not(.o_readonly_modifier) {
|
|
|
|
position: relative;
|
|
|
|
|
|
|
|
// The in-edition elements will overflow other elements (the rows below,
|
|
|
|
// the content below the list view, ...). As those might be using
|
|
|
|
// position: relative, the in-edition elements have to define a z-index.
|
|
|
|
// Technically, creating a stacking context for a meaningful parent
|
|
|
|
// (maybe the .o_content) might be required for safety but we should
|
|
|
|
// consider this later if needed.
|
|
|
|
z-index: 1;
|
|
|
|
|
|
|
|
// The in-edition elements will overflow other elements (the rows below,
|
|
|
|
// the content below the list view, ...). As those might be using
|
|
|
|
// position: relative, the in-edition elements have to define a z-index.
|
|
|
|
// Technically, creating a stacking context for a meaningful parent
|
|
|
|
// (maybe the .o_content) might be required for safety but we should
|
|
|
|
// consider this later if needed.
|
|
|
|
z-index: 1;
|
|
|
|
|
|
|
|
// Field widgets override
|
|
|
|
> .o_field_widget {
|
|
|
|
.o-position-absolute(0, 0, auto, 0);
|
|
|
|
min-height: 100%;
|
|
|
|
|
|
|
|
&:not(.o_field_text) {
|
|
|
|
white-space: nowrap;
|
|
|
|
}
|
|
|
|
|
|
|
|
&.o_field_many2manytags > .badge {
|
|
|
|
&, > .o_badge_text {
|
|
|
|
white-space: normal;
|
|
|
|
max-width: 100%; // Fix a chrome bug where badge would not break on multiple lines
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
> .o_field_translate {
|
|
|
|
.o-position-absolute(0, 5px);
|
|
|
|
width: 16px; // to have some space on the right
|
|
|
|
}
|
|
|
|
.o_input {
|
|
|
|
padding: @table-condensed-cell-padding;
|
|
|
|
background-color: white;
|
|
|
|
|
|
|
|
.o_input {
|
|
|
|
padding: 0!important;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
.o_input_dropdown {
|
|
|
|
min-height: 100%;
|
|
|
|
}
|
|
|
|
.o_field_monetary input {
|
|
|
|
width: 0;
|
|
|
|
}
|
|
|
|
.o_field_boolean {
|
|
|
|
position: relative!important;
|
|
|
|
}
|
|
|
|
.o_field_widget {
|
|
|
|
min-width: 0;
|
|
|
|
}
|
|
|
|
.o_input_dropdown, .o_datepicker {
|
|
|
|
> .o_input {
|
|
|
|
padding-right: 15px; // To prevent caret overlapping
|
|
|
|
}
|
|
|
|
> .o_dropdown_button, .o_datepicker_button {
|
|
|
|
.o-position-absolute(20%, 5px);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
.o_field_widget > .o_external_button {
|
|
|
|
padding: 0;
|
|
|
|
background-color: inherit;
|
|
|
|
margin-left: 3px;
|
|
|
|
}
|
|
|
|
.o_row_handle {
|
|
|
|
visibility: hidden; // Hide sequence when editing
|
|
|
|
}
|
|
|
|
.o_field_boolean {
|
|
|
|
width: auto!important; // Override the width computed in JS (needed for Chrome)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Buttons in ControlPanel
|
|
|
|
.o_list_buttons {
|
|
|
|
.o_list_button_save, .o_list_button_discard {
|
|
|
|
display: none;
|
|
|
|
}
|
|
|
|
&.o-editing { // for list view editable
|
|
|
|
.o_list_button_add {
|
|
|
|
display: none
|
|
|
|
}
|
|
|
|
.o_list_button_save, .o_list_button_discard {
|
|
|
|
display: inline-block
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|