Pull request: 6180 fix dashboard tables scroll

Updates #6180

Squashed commit of the following:

commit eee7fa39d4e1d366086a541216a1b00051c3af8a
Author: Ildar Kamalov <ik@adguard.com>
Date:   Tue Oct 17 11:47:41 2023 +0300

    fix scroll

commit 0a86a1a5c3d56902ad8de92a34b28d3e462a00c3
Merge: 07f4550ed 413f48481
Author: Ildar Kamalov <ik@adguard.com>
Date:   Tue Oct 17 10:27:29 2023 +0300

    Merge branch 'master' into ADG-7473-1

commit 07f4550ed0fbb400f4d99a3e9fd60acf8b9f2e2e
Author: Ildar Kamalov <ik@adguard.com>
Date:   Fri Oct 13 17:41:47 2023 +0300

    changelog

commit 28a1a7360344475b1d1d46b7d9ef14b292d82746
Author: Ildar Kamalov <ik@adguard.com>
Date:   Fri Oct 13 16:13:59 2023 +0300

    overflow

commit aa38288326bcfa374245416d270bd57bc217cabd
Author: Ildar Kamalov <ik@adguard.com>
Date:   Fri Oct 13 16:09:05 2023 +0300

    firefox scroll

commit ac98653f2daf57d23f877a3a3f0c8cb9d3b0f536
Author: Ildar Kamalov <ik@adguard.com>
Date:   Fri Oct 13 16:06:49 2023 +0300

    constants

commit a3cdd0acd454934af8c1999d87ecb736dbdca0b9
Merge: 0cd848115 506d71310
Author: Ildar Kamalov <ik@adguard.com>
Date:   Fri Oct 13 16:03:16 2023 +0300

    Merge branch 'master' into ADG-7473-1

commit 0cd8481150d6b3000bc8796bdff963c7a07a2e7d
Author: Ildar Kamalov <ik@adguard.com>
Date:   Thu Oct 12 11:13:14 2023 +0300

    changelog

commit ed678070e7b1e6a144ebd7fefe99137a1529c025
Author: Ildar Kamalov <ik@adguard.com>
Date:   Thu Oct 12 11:00:23 2023 +0300

    fix rows

commit 5e4f35c874de15fc51a312e0ab2ba19018537194
Author: Ildar Kamalov <ik@adguard.com>
Date:   Thu Oct 12 10:58:58 2023 +0300

    ADG-7473 fix dashboard tables scroll
This commit is contained in:
Ildar Kamalov 2023-10-17 16:52:28 +03:00
parent 413f484810
commit f514f365ab
12 changed files with 47 additions and 22 deletions

View File

@ -29,11 +29,15 @@ NOTE: Add new changes BELOW THIS COMMENT.
### Fixed ### Fixed
- Dashboard tables scroll issue ([#6180]).
- Issues with QUIC and HTTP/3 upstreams on FreeBSD ([#6301]).
- Panic on clearing query log ([#6304]).
- The time shown in the statistics is one hour less than the current time ([#6296]). - The time shown in the statistics is one hour less than the current time ([#6296]).
- Issues with QUIC and HTTP/3 upstreams on FreeBSD ([#6301]). - Issues with QUIC and HTTP/3 upstreams on FreeBSD ([#6301]).
- Panic on clearing query log ([#6304]). - Panic on clearing query log ([#6304]).
[#684]: https://github.com/AdguardTeam/AdGuardHome/issues/684 [#684]: https://github.com/AdguardTeam/AdGuardHome/issues/684
[#6180]: https://github.com/AdguardTeam/AdGuardHome/issues/6180
[#6296]: https://github.com/AdguardTeam/AdGuardHome/issues/6296 [#6296]: https://github.com/AdguardTeam/AdGuardHome/issues/6296
[#6301]: https://github.com/AdguardTeam/AdGuardHome/issues/6301 [#6301]: https://github.com/AdguardTeam/AdGuardHome/issues/6301
[#6304]: https://github.com/AdguardTeam/AdGuardHome/issues/6304 [#6304]: https://github.com/AdguardTeam/AdGuardHome/issues/6304

View File

@ -8,7 +8,7 @@ import Cell from '../ui/Cell';
import DomainCell from './DomainCell'; import DomainCell from './DomainCell';
import { getPercent } from '../../helpers/helpers'; import { getPercent } from '../../helpers/helpers';
import { STATUS_COLORS } from '../../helpers/constants'; import { DASHBOARD_TABLES_DEFAULT_PAGE_SIZE, STATUS_COLORS, TABLES_MIN_ROWS } from '../../helpers/constants';
const CountCell = (totalBlocked) => function cell(row) { const CountCell = (totalBlocked) => function cell(row) {
const { value } = row; const { value } = row;
@ -62,8 +62,8 @@ const BlockedDomains = ({
]} ]}
showPagination={false} showPagination={false}
noDataText={t('no_domains_found')} noDataText={t('no_domains_found')}
minRows={6} minRows={TABLES_MIN_ROWS}
defaultPageSize={100} defaultPageSize={DASHBOARD_TABLES_DEFAULT_PAGE_SIZE}
className="-highlight card-table-overflow--limited stats__table" className="-highlight card-table-overflow--limited stats__table"
/> />
</Card> </Card>

View File

@ -9,7 +9,12 @@ import Card from '../ui/Card';
import Cell from '../ui/Cell'; import Cell from '../ui/Cell';
import { getPercent, sortIp } from '../../helpers/helpers'; import { getPercent, sortIp } from '../../helpers/helpers';
import { BLOCK_ACTIONS, STATUS_COLORS } from '../../helpers/constants'; import {
BLOCK_ACTIONS,
DASHBOARD_TABLES_DEFAULT_PAGE_SIZE,
STATUS_COLORS,
TABLES_MIN_ROWS,
} from '../../helpers/constants';
import { toggleClientBlock } from '../../actions/access'; import { toggleClientBlock } from '../../actions/access';
import { renderFormattedClientCell } from '../../helpers/renderFormattedClientCell'; import { renderFormattedClientCell } from '../../helpers/renderFormattedClientCell';
import { getStats } from '../../actions/stats'; import { getStats } from '../../actions/stats';
@ -159,8 +164,8 @@ const Clients = ({
]} ]}
showPagination={false} showPagination={false}
noDataText={t('no_clients_found')} noDataText={t('no_clients_found')}
minRows={6} minRows={TABLES_MIN_ROWS}
defaultPageSize={100} defaultPageSize={DASHBOARD_TABLES_DEFAULT_PAGE_SIZE}
className="-highlight card-table-overflow--limited clients__table" className="-highlight card-table-overflow--limited clients__table"
getTrProps={(_state, rowInfo) => { getTrProps={(_state, rowInfo) => {
if (!rowInfo) { if (!rowInfo) {

View File

@ -34,7 +34,8 @@
} }
.table__action .btn-icon { .table__action .btn-icon {
margin: 2px; outline: 0;
box-shadow: none;
} }
.page-title--dashboard { .page-title--dashboard {

View File

@ -7,7 +7,7 @@ import Card from '../ui/Card';
import Cell from '../ui/Cell'; import Cell from '../ui/Cell';
import DomainCell from './DomainCell'; import DomainCell from './DomainCell';
import { STATUS_COLORS } from '../../helpers/constants'; import { DASHBOARD_TABLES_DEFAULT_PAGE_SIZE, STATUS_COLORS, TABLES_MIN_ROWS } from '../../helpers/constants';
import { getPercent } from '../../helpers/helpers'; import { getPercent } from '../../helpers/helpers';
const getQueriedPercentColor = (percent) => { const getQueriedPercentColor = (percent) => {
@ -58,8 +58,8 @@ const QueriedDomains = ({
]} ]}
showPagination={false} showPagination={false}
noDataText={t('no_domains_found')} noDataText={t('no_domains_found')}
minRows={6} minRows={TABLES_MIN_ROWS}
defaultPageSize={100} defaultPageSize={DASHBOARD_TABLES_DEFAULT_PAGE_SIZE}
className="-highlight card-table-overflow--limited stats__table" className="-highlight card-table-overflow--limited stats__table"
/> />
</Card> </Card>

View File

@ -6,6 +6,7 @@ import { withTranslation, Trans } from 'react-i18next';
import Card from '../ui/Card'; import Card from '../ui/Card';
import DomainCell from './DomainCell'; import DomainCell from './DomainCell';
import { DASHBOARD_TABLES_DEFAULT_PAGE_SIZE, TABLES_MIN_ROWS } from '../../helpers/constants';
const TimeCell = ({ value }) => { const TimeCell = ({ value }) => {
if (!value) { if (!value) {
@ -62,8 +63,8 @@ const UpstreamAvgTime = ({
]} ]}
showPagination={false} showPagination={false}
noDataText={t('no_upstreams_data_found')} noDataText={t('no_upstreams_data_found')}
minRows={6} minRows={TABLES_MIN_ROWS}
defaultPageSize={100} defaultPageSize={DASHBOARD_TABLES_DEFAULT_PAGE_SIZE}
className="-highlight card-table-overflow--limited stats__table" className="-highlight card-table-overflow--limited stats__table"
/> />
</Card> </Card>

View File

@ -8,7 +8,7 @@ import Cell from '../ui/Cell';
import DomainCell from './DomainCell'; import DomainCell from './DomainCell';
import { getPercent } from '../../helpers/helpers'; import { getPercent } from '../../helpers/helpers';
import { STATUS_COLORS } from '../../helpers/constants'; import { DASHBOARD_TABLES_DEFAULT_PAGE_SIZE, STATUS_COLORS, TABLES_MIN_ROWS } from '../../helpers/constants';
const CountCell = (totalBlocked) => ( const CountCell = (totalBlocked) => (
function cell(row) { function cell(row) {
@ -64,8 +64,8 @@ const UpstreamResponses = ({
]} ]}
showPagination={false} showPagination={false}
noDataText={t('no_upstreams_data_found')} noDataText={t('no_upstreams_data_found')}
minRows={6} minRows={TABLES_MIN_ROWS}
defaultPageSize={100} defaultPageSize={DASHBOARD_TABLES_DEFAULT_PAGE_SIZE}
className="-highlight card-table-overflow--limited stats__table" className="-highlight card-table-overflow--limited stats__table"
/> />
</Card> </Card>

View File

@ -3,7 +3,7 @@ import PropTypes from 'prop-types';
import ReactTable from 'react-table'; import ReactTable from 'react-table';
import { withTranslation } from 'react-i18next'; import { withTranslation } from 'react-i18next';
import { sortIp } from '../../../helpers/helpers'; import { sortIp } from '../../../helpers/helpers';
import { MODAL_TYPE } from '../../../helpers/constants'; import { MODAL_TYPE, TABLES_MIN_ROWS } from '../../../helpers/constants';
import { LocalStorageHelper, LOCAL_STORAGE_KEYS } from '../../../helpers/localStorageHelper'; import { LocalStorageHelper, LOCAL_STORAGE_KEYS } from '../../../helpers/localStorageHelper';
class Table extends Component { class Table extends Component {
@ -88,7 +88,7 @@ class Table extends Component {
showPagination showPagination
defaultPageSize={LocalStorageHelper.getItem(LOCAL_STORAGE_KEYS.REWRITES_PAGE_SIZE) || 10} defaultPageSize={LocalStorageHelper.getItem(LOCAL_STORAGE_KEYS.REWRITES_PAGE_SIZE) || 10}
onPageSizeChange={(size) => LocalStorageHelper.setItem(LOCAL_STORAGE_KEYS.REWRITES_PAGE_SIZE, size)} onPageSizeChange={(size) => LocalStorageHelper.setItem(LOCAL_STORAGE_KEYS.REWRITES_PAGE_SIZE, size)}
minRows={5} minRows={TABLES_MIN_ROWS}
ofText="/" ofText="/"
previousText={t('previous_btn')} previousText={t('previous_btn')}
nextText={t('next_btn')} nextText={t('next_btn')}

View File

@ -10,6 +10,7 @@ import whoisCell from './whoisCell';
import LogsSearchLink from '../../ui/LogsSearchLink'; import LogsSearchLink from '../../ui/LogsSearchLink';
import { sortIp } from '../../../helpers/helpers'; import { sortIp } from '../../../helpers/helpers';
import { LocalStorageHelper, LOCAL_STORAGE_KEYS } from '../../../helpers/localStorageHelper'; import { LocalStorageHelper, LOCAL_STORAGE_KEYS } from '../../../helpers/localStorageHelper';
import { TABLES_MIN_ROWS } from '../../../helpers/constants';
const COLUMN_MIN_WIDTH = 200; const COLUMN_MIN_WIDTH = 200;
@ -90,7 +91,7 @@ class AutoClients extends Component {
onPageSizeChange={(size) => ( onPageSizeChange={(size) => (
LocalStorageHelper.setItem(LOCAL_STORAGE_KEYS.AUTO_CLIENTS_PAGE_SIZE, size) LocalStorageHelper.setItem(LOCAL_STORAGE_KEYS.AUTO_CLIENTS_PAGE_SIZE, size)
)} )}
minRows={5} minRows={TABLES_MIN_ROWS}
ofText="/" ofText="/"
previousText={t('previous_btn')} previousText={t('previous_btn')}
nextText={t('next_btn')} nextText={t('next_btn')}

View File

@ -14,7 +14,7 @@ import {
sortIp, sortIp,
getService, getService,
} from '../../../../helpers/helpers'; } from '../../../../helpers/helpers';
import { MODAL_TYPE, LOCAL_TIMEZONE_VALUE } from '../../../../helpers/constants'; import { MODAL_TYPE, LOCAL_TIMEZONE_VALUE, TABLES_MIN_ROWS } from '../../../../helpers/constants';
import Card from '../../../ui/Card'; import Card from '../../../ui/Card';
import CellWrap from '../../../ui/CellWrap'; import CellWrap from '../../../ui/CellWrap';
import LogsSearchLink from '../../../ui/LogsSearchLink'; import LogsSearchLink from '../../../ui/LogsSearchLink';
@ -347,7 +347,7 @@ const ClientsTable = ({
onPageSizeChange={(size) => ( onPageSizeChange={(size) => (
LocalStorageHelper.setItem(LOCAL_STORAGE_KEYS.CLIENTS_PAGE_SIZE, size) LocalStorageHelper.setItem(LOCAL_STORAGE_KEYS.CLIENTS_PAGE_SIZE, size)
)} )}
minRows={5} minRows={TABLES_MIN_ROWS}
ofText="/" ofText="/"
previousText={t('previous_btn')} previousText={t('previous_btn')}
nextText={t('next_btn')} nextText={t('next_btn')}

View File

@ -2,6 +2,7 @@
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
padding: 0.6rem 1.5rem; padding: 0.6rem 1.5rem;
flex-shrink: 0;
} }
.card-subtitle { .card-subtitle {
@ -19,8 +20,16 @@
max-height: 17.5rem; max-height: 17.5rem;
} }
.dashboard .card-table {
overflow: hidden;
}
.dashboard .card-table-overflow--limited { .dashboard .card-table-overflow--limited {
max-height: 18rem; max-height: 292px;
}
.dashboard .ReactTable .rt-tr-group {
min-height: 52px;
} }
.card-actions { .card-actions {
@ -125,7 +134,7 @@
@media (min-width: 992px) { @media (min-width: 992px) {
.dashboard .card:not(.card--full) { .dashboard .card:not(.card--full) {
height: 22rem; height: 360px;
} }
} }

View File

@ -555,6 +555,10 @@ export const DISABLE_PROTECTION_TIMINGS = {
export const LOCAL_TIMEZONE_VALUE = 'Local'; export const LOCAL_TIMEZONE_VALUE = 'Local';
export const TABLES_MIN_ROWS = 5;
export const DASHBOARD_TABLES_DEFAULT_PAGE_SIZE = 100;
export const TIME_UNITS = { export const TIME_UNITS = {
HOURS: 'hours', HOURS: 'hours',
DAYS: 'days', DAYS: 'days',