Fixed: Status color for unreleased albums

This commit is contained in:
Bogdan 2025-07-20 11:54:05 +03:00 committed by bakerboy448
parent b892d1e9ea
commit 4dd5411461
5 changed files with 25 additions and 6 deletions

View file

@ -595,6 +595,7 @@ class AlbumDetails extends Component {
key={medium.mediumNumber} key={medium.mediumNumber}
albumId={id} albumId={id}
albumMonitored={monitored} albumMonitored={monitored}
albumReleaseDate={releaseDate}
{...medium} {...medium}
isExpanded={expandedState[medium.mediumNumber]} isExpanded={expandedState[medium.mediumNumber]}
onExpandPress={this.onExpandPress} onExpandPress={this.onExpandPress}

View file

@ -7,6 +7,7 @@ import Link from 'Components/Link/Link';
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, kinds, sizes } from 'Helpers/Props'; import { icons, kinds, sizes } from 'Helpers/Props';
import isAfter from 'Utilities/Date/isAfter';
import translate from 'Utilities/String/translate'; import translate from 'Utilities/String/translate';
import TrackRowConnector from './TrackRowConnector'; import TrackRowConnector from './TrackRowConnector';
import styles from './AlbumDetailsMedium.css'; import styles from './AlbumDetailsMedium.css';
@ -31,11 +32,15 @@ function getMediumStatistics(tracks) {
}; };
} }
function getTrackCountKind(monitored, trackFileCount, trackCount) { function getTrackCountKind(monitored, releaseDate, trackFileCount, trackCount) {
if (trackFileCount === trackCount && trackCount > 0) { if (trackFileCount === trackCount && trackCount > 0) {
return kinds.SUCCESS; return kinds.SUCCESS;
} }
if (!releaseDate || isAfter(releaseDate)) {
return kinds.DISABLED;
}
if (!monitored) { if (!monitored) {
return kinds.WARNING; return kinds.WARNING;
} }
@ -90,6 +95,7 @@ class AlbumDetailsMedium extends Component {
mediumNumber, mediumNumber,
mediumFormat, mediumFormat,
albumMonitored, albumMonitored,
albumReleaseDate,
items, items,
columns, columns,
onTableOptionChange, onTableOptionChange,
@ -119,7 +125,7 @@ class AlbumDetailsMedium extends Component {
<Label <Label
title={translate('TotalTrackCountTracksTotalTrackFileCountTracksWithFilesInterp', [totalTrackCount, trackFileCount])} title={translate('TotalTrackCountTracksTotalTrackFileCountTracksWithFilesInterp', [totalTrackCount, trackFileCount])}
kind={getTrackCountKind(albumMonitored, trackFileCount, trackCount)} kind={getTrackCountKind(albumMonitored, albumReleaseDate, trackFileCount, trackCount)}
size={sizes.LARGE} size={sizes.LARGE}
> >
{ {
@ -194,6 +200,7 @@ class AlbumDetailsMedium extends Component {
AlbumDetailsMedium.propTypes = { AlbumDetailsMedium.propTypes = {
albumId: PropTypes.number.isRequired, albumId: PropTypes.number.isRequired,
albumMonitored: PropTypes.bool.isRequired, albumMonitored: PropTypes.bool.isRequired,
albumReleaseDate: PropTypes.string,
mediumNumber: PropTypes.number.isRequired, mediumNumber: PropTypes.number.isRequired,
mediumFormat: PropTypes.string.isRequired, mediumFormat: PropTypes.string.isRequired,
items: PropTypes.arrayOf(PropTypes.object).isRequired, items: PropTypes.arrayOf(PropTypes.object).isRequired,

View file

@ -57,6 +57,7 @@ class AlbumDetailsMediumConnector extends Component {
AlbumDetailsMediumConnector.propTypes = { AlbumDetailsMediumConnector.propTypes = {
albumId: PropTypes.number.isRequired, albumId: PropTypes.number.isRequired,
albumMonitored: PropTypes.bool.isRequired, albumMonitored: PropTypes.bool.isRequired,
albumReleaseDate: PropTypes.string,
mediumNumber: PropTypes.number.isRequired, mediumNumber: PropTypes.number.isRequired,
setTracksTableOption: PropTypes.func.isRequired, setTracksTableOption: PropTypes.func.isRequired,
executeCommand: PropTypes.func.isRequired executeCommand: PropTypes.func.isRequired

View file

@ -10,15 +10,20 @@ import TableRowCell from 'Components/Table/Cells/TableRowCell';
import TableRow from 'Components/Table/TableRow'; import TableRow from 'Components/Table/TableRow';
import { kinds, sizes } from 'Helpers/Props'; import { kinds, sizes } from 'Helpers/Props';
import formatTimeSpan from 'Utilities/Date/formatTimeSpan'; import formatTimeSpan from 'Utilities/Date/formatTimeSpan';
import isAfter from 'Utilities/Date/isAfter';
import formatBytes from 'Utilities/Number/formatBytes'; import formatBytes from 'Utilities/Number/formatBytes';
import translate from 'Utilities/String/translate'; import translate from 'Utilities/String/translate';
import styles from './AlbumRow.css'; import styles from './AlbumRow.css';
function getTrackCountKind(monitored, trackFileCount, trackCount) { function getTrackCountKind(monitored, releaseDate, trackFileCount, trackCount) {
if (trackFileCount === trackCount && trackCount > 0) { if (trackFileCount === trackCount && trackCount > 0) {
return kinds.SUCCESS; return kinds.SUCCESS;
} }
if (!releaseDate || isAfter(releaseDate)) {
return kinds.DISABLED;
}
if (!monitored) { if (!monitored) {
return kinds.WARNING; return kinds.WARNING;
} }
@ -215,7 +220,7 @@ class AlbumRow extends Component {
> >
<Label <Label
title={translate('TotalTrackCountTracksTotalTrackFileCountTracksWithFilesInterp', [totalTrackCount, trackFileCount])} title={translate('TotalTrackCountTracksTotalTrackFileCountTracksWithFilesInterp', [totalTrackCount, trackFileCount])}
kind={getTrackCountKind(monitored, trackFileCount, trackCount)} kind={getTrackCountKind(monitored, releaseDate, trackFileCount, trackCount)}
size={sizes.MEDIUM} size={sizes.MEDIUM}
> >
{ {

View file

@ -5,14 +5,19 @@ import RelativeDateCellConnector from 'Components/Table/Cells/RelativeDateCellCo
import TableRowCell from 'Components/Table/Cells/TableRowCell'; import TableRowCell from 'Components/Table/Cells/TableRowCell';
import TableRow from 'Components/Table/TableRow'; import TableRow from 'Components/Table/TableRow';
import { kinds, sizes } from 'Helpers/Props'; import { kinds, sizes } from 'Helpers/Props';
import isAfter from 'Utilities/Date/isAfter';
import translate from 'Utilities/String/translate'; import translate from 'Utilities/String/translate';
import styles from './SelectAlbumRow.css'; import styles from './SelectAlbumRow.css';
function getTrackCountKind(monitored, trackFileCount, trackCount) { function getTrackCountKind(monitored, releaseDate, trackFileCount, trackCount) {
if (trackFileCount === trackCount && trackCount > 0) { if (trackFileCount === trackCount && trackCount > 0) {
return kinds.SUCCESS; return kinds.SUCCESS;
} }
if (!releaseDate || isAfter(releaseDate)) {
return kinds.DISABLED;
}
if (!monitored) { if (!monitored) {
return kinds.WARNING; return kinds.WARNING;
} }
@ -99,7 +104,7 @@ class SelectAlbumRow extends Component {
> >
<Label <Label
title={translate('TotalTrackCountTracksTotalTrackFileCountTracksWithFilesInterp', [totalTrackCount, trackFileCount])} title={translate('TotalTrackCountTracksTotalTrackFileCountTracksWithFilesInterp', [totalTrackCount, trackFileCount])}
kind={getTrackCountKind(monitored, trackFileCount, trackCount)} kind={getTrackCountKind(monitored, releaseDate, trackFileCount, trackCount)}
size={sizes.MEDIUM} size={sizes.MEDIUM}
> >
{ {