//-- copyright // OpenProject is an open source project management software. // Copyright (C) 2012-2020 the OpenProject GmbH // // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License version 3. // // OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: // Copyright (C) 2006-2017 Jean-Philippe Lang // Copyright (C) 2010-2013 the ChiliProject Team // // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License // as published by the Free Software Foundation; either version 2 // of the License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. // // See docs/COPYRIGHT.rdoc for more details. //++ @keyframes fade-out from opacity: 1 to opacity: 0 $input-elements: input, 'input.form--text-field', select, 'select.form--select', '.form--field-affix', 'a.button' .generic-table--container position: relative height: 100% width: 100% overflow: x: hidden y: hidden &.-with-footer padding-bottom: $generic-table--footer-height .generic-table--results-container height: 100% overflow: x: auto y: auto @include styled-scroll-bar .generic-table--action-buttons margin-top: 2rem #generic-table tr.issue &.ng-enter, &.ng-move transition: 0.5s linear all opacity: 0 &.ng-enter.ng-enter-active, &.ng-move.ng-move-active opacity: 1 &.ng-leave @include animation(0.5s fade-out) table.generic-table border-collapse: collapse width: 100% margin: 0 font-size: $generic-table--font-size col &:hover, &.hover background: #f8f8f8 thead height: $generic-table--header-height tr &:hover background: none th font-size: $generic-table--header-font-size text-transform: uppercase text-align: left line-height: 34px padding: 0 // This is needed for a bug in FF as described here // https://www.456bereastreet.com/archive/201305/firefox_and_the_magical_text-overflowellipsis_z-index/ z-index: 1 &.-right text-align: right a text-decoration: none color: $body-font-color &:hover, &:active text-decoration: none color: $body-font-color .-required:after @include default-transition content: '*' color: $primary-color-dark padding: 0 0.2rem .sort &.asc:after @include icon-font-common @include icon-mixin-sort-ascending margin-left: 5px font-size: 1.2em vertical-align: text-bottom &.desc:after @include icon-font-common @include icon-mixin-sort-descending margin-left: 5px font-size: 1.2em vertical-align: text-bottom tfoot tr background: #f6f7f8 border: top: 0 bottom: 0 height: 0 td height: 0 padding: top: 0 bottom: 0 font-weight: bold tbody tr:not(.-no-highlighting) border-bottom: 1px solid $table-row-border-color td:not(.-no-ellipsis) @include text-shortener td max-width: 300px text-align: left line-height: 1.6 padding-top: 0.5rem padding-bottom: 0.5rem vertical-align: middle // Center input fields and select boxes vertically in tables .form--field margin: 0px @each $inputElement in $input-elements #{$inputElement}, #{$inputElement}~.form-label vertical-align: middle input[type="checkbox"], input[type="radio"] margin-top: -0.25rem // In the interactive table the behaviour is like this: // * if there is more space available than is required to render // all columns, the container width is set to 100%. // Then, td.-max will take up all space available and it will cause all other // elements to shrink to their minimum value. td-max will grow even beyond // what is specified as max-width. // * if the contents requires more space than the container width permits, // then the container width is set to the width calculated by summing up // all the column widths. For td.-max, the max-width will be taken to be // the column width because of the combination of max-width and width: 100%. // as a result, td.-max will aways have at least a width of max-width, but it can // become even wider. &.-max width: 100% max-width: 500px // The avatar image is not taken into the width calculation of the table cell by the browser. That is why we add the space manually. &.-contains-avatar text-overflow: clip .wp-table--cell-container padding-right: 35px &.info a text-decoration: none color: $body-font-color &.buttons text-align: right white-space: nowrap &.-no-highlighting background-color: $body-background p padding: 0 8px margin: 0 // Enable sticky headers thead.-sticky th position: sticky top: 0 background: white .generic-table--footer-outer padding: 0 6px line-height: $generic-table--footer-height width: 100% height: $generic-table--footer-height .generic-table--header-outer, .generic-table--sort-header-outer padding: 0 12px 0 6px line-height: $generic-table--header-height height: $generic-table--header-height z-index: 1 border-bottom: 1px solid $table-row-border-color &:hover, &.hover background: #f8f8f8 .generic-table--empty-header padding: 0 6px height: $generic-table--header-height line-height: $generic-table--header-height border-bottom: 1px solid $table-row-border-color z-index: 1 // In case the table header contains invisible content for screen readers .generic-table--header, .generic-table--sort-header visibility: hidden // Matches the min-width of .generic-table--header, .generic-table--sort-header max-width: 40px .generic-table--column-spacer white-space: nowrap padding: 0 6px visibility: hidden height: 0px line-height: 0px .generic-table--header, .generic-table--sort-header white-space: nowrap width: 100% clear: both min-width: 40px display: flex & > a flex: 1 1 width: 100% font-weight: bold &.-inactive color: $button--active-font-color & > op-icon flex: 0 0 0 padding-left: 15px .generic-table--sort-header-outer .dropdown-indicator width: 1em overflow: visible min-width: 1em visibility: hidden position: relative &:hover .dropdown-indicator visibility: visible .generic-table--no-results-container background: $gray-light border: 1px solid $gray border-radius: $global-radius padding: 14px 14px 14px 36px display: block > i, .generic-table--no-results-title display: inline-block font-size: rem-calc(17) line-height: 1.4 vertical-align: top > i margin: 1px 0 0 -24px width: 20px .generic-table--no-results-title border: 0 margin: 0 padding: 0 text-transform: none width: 99% .generic-table--no-results-description font-size: rem-calc(15) line-height: 1.4 margin-top: 4px p:last-child margin-bottom: 0