New: Filter by Monitor New Items

Closes #3707
pull/4548/head
Qstick 3 months ago
parent aecf5bba49
commit 3702fa773c

@ -36,6 +36,7 @@ interface Artist extends ModelBase {
nextAlbum?: Album;
qualityProfileId: number;
metadataProfileId: number;
monitorNewItems: string;
ratings: Ratings;
rootFolderPath: string;
sortName: string;

@ -67,6 +67,7 @@
flex: 1 0 125px;
}
.monitorNewItems,
.nextAlbum,
.lastAlbum,
.added,

@ -14,6 +14,7 @@ interface CssExports {
'lastAlbum': string;
'link': string;
'metadataProfileId': string;
'monitorNewItems': string;
'nextAlbum': string;
'overlayTitle': string;
'path': string;

@ -24,6 +24,7 @@ import TagListConnector from 'Components/TagListConnector';
import { icons } from 'Helpers/Props';
import { executeCommand } from 'Store/Actions/commandActions';
import formatBytes from 'Utilities/Number/formatBytes';
import titleCase from 'Utilities/String/titleCase';
import translate from 'Utilities/String/translate';
import AlbumsCell from './AlbumsCell';
import hasGrowableColumns from './hasGrowableColumns';
@ -56,6 +57,7 @@ function ArtistIndexRow(props: ArtistIndexRowProps) {
monitored,
status,
path,
monitorNewItems,
nextAlbum,
lastAlbum,
added,
@ -238,6 +240,14 @@ function ArtistIndexRow(props: ArtistIndexRowProps) {
);
}
if (name === 'monitorNewItems') {
return (
<VirtualTableRowCell key={name} className={styles[name]}>
{titleCase(monitorNewItems)}
</VirtualTableRowCell>
);
}
if (name === 'nextAlbum') {
if (nextAlbum) {
return (

@ -31,6 +31,7 @@
flex: 1 0 125px;
}
.monitorNewItems,
.nextAlbum,
.lastAlbum,
.added,

@ -11,6 +11,7 @@ interface CssExports {
'lastAlbum': string;
'latestAlbum': string;
'metadataProfileId': string;
'monitorNewItems': string;
'nextAlbum': string;
'path': string;
'qualityProfileId': string;

@ -11,6 +11,7 @@ import FilterBuilderRowValueConnector from './FilterBuilderRowValueConnector';
import HistoryEventTypeFilterBuilderRowValue from './HistoryEventTypeFilterBuilderRowValue';
import IndexerFilterBuilderRowValueConnector from './IndexerFilterBuilderRowValueConnector';
import MetadataProfileFilterBuilderRowValueConnector from './MetadataProfileFilterBuilderRowValueConnector';
import MonitorNewItemsFilterBuilderRowValue from './MonitorNewItemsFilterBuilderRowValue';
import ProtocolFilterBuilderRowValue from './ProtocolFilterBuilderRowValue';
import QualityFilterBuilderRowValueConnector from './QualityFilterBuilderRowValueConnector';
import QualityProfileFilterBuilderRowValueConnector from './QualityProfileFilterBuilderRowValueConnector';
@ -68,6 +69,9 @@ function getRowValueConnector(selectedFilterBuilderProp) {
case filterBuilderValueTypes.METADATA_PROFILE:
return MetadataProfileFilterBuilderRowValueConnector;
case filterBuilderValueTypes.MONITOR_NEW_ITEMS:
return MonitorNewItemsFilterBuilderRowValue;
case filterBuilderValueTypes.PROTOCOL:
return ProtocolFilterBuilderRowValue;

@ -0,0 +1,19 @@
import React from 'react';
import FilterBuilderRowValue from './FilterBuilderRowValue';
const options = [
{ id: 'all', name: 'All Albums' },
{ id: 'new', name: 'New' },
{ id: 'none', name: 'None' }
];
function MonitorNewItemsFilterBuilderRowValue(props) {
return (
<FilterBuilderRowValue
tagList={options}
{...props}
/>
);
}
export default MonitorNewItemsFilterBuilderRowValue;

@ -5,6 +5,7 @@ export const DEFAULT = 'default';
export const HISTORY_EVENT_TYPE = 'historyEventType';
export const INDEXER = 'indexer';
export const METADATA_PROFILE = 'metadataProfile';
export const MONITOR_NEW_ITEMS = 'monitorNewItems';
export const PROTOCOL = 'protocol';
export const QUALITY = 'quality';
export const QUALITY_PROFILE = 'qualityProfile';

@ -94,6 +94,12 @@ export const defaultState = {
isSortable: true,
isVisible: false
},
{
name: 'monitorNewItems',
label: () => translate('MonitorNewItems'),
isSortable: true,
isVisible: false
},
{
name: 'nextAlbum',
label: () => translate('NextAlbum'),
@ -267,6 +273,12 @@ export const defaultState = {
type: filterBuilderTypes.EXACT,
valueType: filterBuilderValueTypes.METADATA_PROFILE
},
{
name: 'monitorNewItems',
label: () => translate('MonitorNewItems'),
type: filterBuilderTypes.EXACT,
valueType: filterBuilderValueTypes.MONITOR_NEW_ITEMS
},
{
name: 'nextAlbum',
label: () => translate('NextAlbum'),

Loading…
Cancel
Save