New: Improve empty list messaging

(cherry picked from commit ee843259bca2d9764a3919b123524a51a3a16cce)

Closes #3820
This commit is contained in:
Bogdan 2023-06-27 01:18:03 +03:00
parent 67e9ce909a
commit 9457fecb65
7 changed files with 30 additions and 21 deletions

View file

@ -1,7 +1,9 @@
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import React from 'react'; import React from 'react';
import Alert from 'Components/Alert';
import FieldSet from 'Components/FieldSet'; import FieldSet from 'Components/FieldSet';
import PageSectionContent from 'Components/Page/PageSectionContent'; import PageSectionContent from 'Components/Page/PageSectionContent';
import { kinds } from 'Helpers/Props';
import translate from 'Utilities/String/translate'; import translate from 'Utilities/String/translate';
import TagConnector from './TagConnector'; import TagConnector from './TagConnector';
import styles from './Tags.css'; import styles from './Tags.css';
@ -14,9 +16,9 @@ function Tags(props) {
if (!items.length) { if (!items.length) {
return ( return (
<div> <Alert kind={kinds.INFO}>
{translate('NoTagsHaveBeenAddedYet')} {translate('NoTagsHaveBeenAddedYet')}
</div> </Alert>
); );
} }

View file

@ -1,5 +1,6 @@
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import React from 'react'; import React from 'react';
import Alert from 'Components/Alert';
import LoadingIndicator from 'Components/Loading/LoadingIndicator'; import LoadingIndicator from 'Components/Loading/LoadingIndicator';
import FilterMenu from 'Components/Menu/FilterMenu'; import FilterMenu from 'Components/Menu/FilterMenu';
import PageContent from 'Components/Page/PageContent'; import PageContent from 'Components/Page/PageContent';
@ -11,7 +12,7 @@ import Table from 'Components/Table/Table';
import TableBody from 'Components/Table/TableBody'; import TableBody from 'Components/Table/TableBody';
import TableOptionsModalWrapper from 'Components/Table/TableOptions/TableOptionsModalWrapper'; import TableOptionsModalWrapper from 'Components/Table/TableOptions/TableOptionsModalWrapper';
import TablePager from 'Components/Table/TablePager'; import TablePager from 'Components/Table/TablePager';
import { align, icons } from 'Helpers/Props'; import { align, icons, kinds } from 'Helpers/Props';
import translate from 'Utilities/String/translate'; import translate from 'Utilities/String/translate';
import LogsTableRow from './LogsTableRow'; import LogsTableRow from './LogsTableRow';
@ -82,9 +83,9 @@ function LogsTable(props) {
{ {
isPopulated && !error && !items.length && isPopulated && !error && !items.length &&
<div> <Alert kind={kinds.INFO}>
No logs found {translate('NoEventsFound')}
</div> </Alert>
} }
{ {

View file

@ -11,7 +11,7 @@ import PageToolbarSection from 'Components/Page/Toolbar/PageToolbarSection';
import PageToolbarSeparator from 'Components/Page/Toolbar/PageToolbarSeparator'; import PageToolbarSeparator from 'Components/Page/Toolbar/PageToolbarSeparator';
import Table from 'Components/Table/Table'; import Table from 'Components/Table/Table';
import TableBody from 'Components/Table/TableBody'; import TableBody from 'Components/Table/TableBody';
import { icons } from 'Helpers/Props'; import { icons, kinds } from 'Helpers/Props';
import translate from 'Utilities/String/translate'; import translate from 'Utilities/String/translate';
import LogsNavMenu from '../LogsNavMenu'; import LogsNavMenu from '../LogsNavMenu';
import LogFilesTableRow from './LogFilesTableRow'; import LogFilesTableRow from './LogFilesTableRow';
@ -118,9 +118,9 @@ class LogFiles extends Component {
{ {
!isFetching && !items.length && !isFetching && !items.length &&
<div> <Alert kind={kinds.INFO}>
{translate('NoLogFiles')} {translate('NoLogFiles')}
</div> </Alert>
} }
</PageContentBody> </PageContentBody>
</PageContent> </PageContent>

View file

@ -1,6 +1,7 @@
import _ from 'lodash'; import _ from 'lodash';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import React, { Component, Fragment } from 'react'; import React, { Component, Fragment } from 'react';
import Alert from 'Components/Alert';
import Icon from 'Components/Icon'; import Icon from 'Components/Icon';
import Label from 'Components/Label'; import Label from 'Components/Label';
import SpinnerButton from 'Components/Link/SpinnerButton'; import SpinnerButton from 'Components/Link/SpinnerButton';
@ -61,9 +62,9 @@ class Updates extends Component {
{ {
noUpdates && noUpdates &&
<div> <Alert kind={kinds.INFO}>
{translate('NoUpdatesAreAvailable')} {translate('NoUpdatesAreAvailable')}
</div> </Alert>
} }
{ {

View file

@ -1,5 +1,6 @@
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import React, { Component } from 'react'; import React, { Component } from 'react';
import Alert from 'Components/Alert';
import LoadingIndicator from 'Components/Loading/LoadingIndicator'; import LoadingIndicator from 'Components/Loading/LoadingIndicator';
import FilterMenu from 'Components/Menu/FilterMenu'; import FilterMenu from 'Components/Menu/FilterMenu';
import ConfirmModal from 'Components/Modal/ConfirmModal'; import ConfirmModal from 'Components/Modal/ConfirmModal';
@ -190,16 +191,16 @@ class CutoffUnmet extends Component {
{ {
!isAnyFetching && error && !isAnyFetching && error &&
<div> <Alert kind={kinds.DANGER}>
Error fetching cutoff unmet Error fetching cutoff unmet
</div> </Alert>
} }
{ {
isAllPopulated && !error && !items.length && isAllPopulated && !error && !items.length &&
<div> <Alert kind={kinds.INFO}>
No cutoff unmet items {translate('NoCutoffUnmetItems')}
</div> </Alert>
} }
{ {

View file

@ -1,5 +1,6 @@
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import React, { Component } from 'react'; import React, { Component } from 'react';
import Alert from 'Components/Alert';
import LoadingIndicator from 'Components/Loading/LoadingIndicator'; import LoadingIndicator from 'Components/Loading/LoadingIndicator';
import FilterMenu from 'Components/Menu/FilterMenu'; import FilterMenu from 'Components/Menu/FilterMenu';
import ConfirmModal from 'Components/Modal/ConfirmModal'; import ConfirmModal from 'Components/Modal/ConfirmModal';
@ -207,16 +208,16 @@ class Missing extends Component {
{ {
!isAnyFetching && error && !isAnyFetching && error &&
<div> <Alert kind={kinds.DANGER}>
Error fetching missing items Error fetching missing items
</div> </Alert>
} }
{ {
isAllPopulated && !error && !items.length && isAllPopulated && !error && !items.length &&
<div> <Alert kind={kinds.INFO}>
No missing items {translate('NoMissingItems')}
</div> </Alert>
} }
{ {

View file

@ -555,12 +555,15 @@
"NextExecution": "Next Execution", "NextExecution": "Next Execution",
"NoAlbums": "No albums", "NoAlbums": "No albums",
"NoBackupsAreAvailable": "No backups are available", "NoBackupsAreAvailable": "No backups are available",
"NoCutoffUnmetItems": "No cutoff unmet items",
"NoEventsFound": "No events found",
"NoHistory": "No history.", "NoHistory": "No history.",
"NoHistoryBlocklist": "No history blocklist", "NoHistoryBlocklist": "No history blocklist",
"NoLeaveIt": "No, Leave It", "NoLeaveIt": "No, Leave It",
"NoLimitForAnyRuntime": "No limit for any runtime", "NoLimitForAnyRuntime": "No limit for any runtime",
"NoLogFiles": "No log files", "NoLogFiles": "No log files",
"NoMinimumForAnyRuntime": "No minimum for any runtime", "NoMinimumForAnyRuntime": "No minimum for any runtime",
"NoMissingItems": "No missing items",
"NoResults": "No Results Found", "NoResults": "No Results Found",
"NoTagsHaveBeenAddedYet": "No tags have been added yet", "NoTagsHaveBeenAddedYet": "No tags have been added yet",
"NoUpdatesAreAvailable": "No updates are available", "NoUpdatesAreAvailable": "No updates are available",