Show Indexer Status on Indexer Table

This commit is contained in:
Qstick
2021-02-11 21:54:00 -05:00
parent a41ae141cd
commit 56d5356f1e
10 changed files with 174 additions and 3 deletions
@@ -3,12 +3,16 @@ import React from 'react';
import Icon from 'Components/Icon';
import VirtualTableRowCell from 'Components/Table/Cells/TableRowCell';
import { icons, kinds } from 'Helpers/Props';
import formatDateTime from 'Utilities/Date/formatDateTime';
import styles from './IndexerStatusCell.css';
function IndexerStatusCell(props) {
const {
className,
enabled,
status,
longDateFormat,
timeFormat,
component: Component,
...otherProps
} = props;
@@ -26,6 +30,15 @@ function IndexerStatusCell(props) {
title={enabled ? 'Indexer is Enabled' : 'Indexer is Disabled'}
/>
}
{
status &&
<Icon
className={styles.statusIcon}
kind={kinds.DANGER}
name={icons.WARNING}
title={`Indexer is Disabled due to failures until ${formatDateTime(status.disabledTill, longDateFormat, timeFormat)}`}
/>
}
</Component>
);
}
@@ -33,6 +46,9 @@ function IndexerStatusCell(props) {
IndexerStatusCell.propTypes = {
className: PropTypes.string.isRequired,
enabled: PropTypes.bool.isRequired,
status: PropTypes.object,
longDateFormat: PropTypes.string.isRequired,
timeFormat: PropTypes.string.isRequired,
component: PropTypes.elementType
};
@@ -68,9 +68,12 @@ class MovieIndexRow extends Component {
protocol,
privacy,
priority,
status,
added,
capabilities,
columns,
longDateFormat,
timeFormat,
isMovieEditorActive,
isSelected,
onSelectedChange
@@ -113,6 +116,8 @@ class MovieIndexRow extends Component {
className={styles[column.name]}
enabled={enableRss || enableAutomaticSearch || enableInteractiveSearch}
status={status}
longDateFormat={longDateFormat}
timeFormat={timeFormat}
component={VirtualTableRowCell}
/>
);
@@ -253,6 +258,7 @@ MovieIndexRow.propTypes = {
enableRss: PropTypes.bool.isRequired,
enableAutomaticSearch: PropTypes.bool.isRequired,
enableInteractiveSearch: PropTypes.bool.isRequired,
status: PropTypes.object,
capabilities: PropTypes.object.isRequired,
added: PropTypes.string.isRequired,
tags: PropTypes.arrayOf(PropTypes.number).isRequired,
@@ -260,7 +266,9 @@ MovieIndexRow.propTypes = {
isSearchingMovie: PropTypes.bool.isRequired,
isMovieEditorActive: PropTypes.bool.isRequired,
isSelected: PropTypes.bool,
onSelectedChange: PropTypes.func.isRequired
onSelectedChange: PropTypes.func.isRequired,
longDateFormat: PropTypes.string.isRequired,
timeFormat: PropTypes.string.isRequired
};
MovieIndexRow.defaultProps = {