diff --git a/frontend/src/Artist/Artist.ts b/frontend/src/Artist/Artist.ts
index 61266a8d4..d89e32f34 100644
--- a/frontend/src/Artist/Artist.ts
+++ b/frontend/src/Artist/Artist.ts
@@ -36,6 +36,7 @@ interface Artist extends ModelBase {
nextAlbum?: Album;
qualityProfileId: number;
metadataProfileId: number;
+ monitorNewItems: string;
ratings: Ratings;
rootFolderPath: string;
sortName: string;
diff --git a/frontend/src/Artist/Index/Table/ArtistIndexRow.css b/frontend/src/Artist/Index/Table/ArtistIndexRow.css
index b75ad6afd..35d03c263 100644
--- a/frontend/src/Artist/Index/Table/ArtistIndexRow.css
+++ b/frontend/src/Artist/Index/Table/ArtistIndexRow.css
@@ -67,6 +67,7 @@
flex: 1 0 125px;
}
+.monitorNewItems,
.nextAlbum,
.lastAlbum,
.added,
diff --git a/frontend/src/Artist/Index/Table/ArtistIndexRow.css.d.ts b/frontend/src/Artist/Index/Table/ArtistIndexRow.css.d.ts
index fd8d84e17..4855aec75 100644
--- a/frontend/src/Artist/Index/Table/ArtistIndexRow.css.d.ts
+++ b/frontend/src/Artist/Index/Table/ArtistIndexRow.css.d.ts
@@ -14,6 +14,7 @@ interface CssExports {
'lastAlbum': string;
'link': string;
'metadataProfileId': string;
+ 'monitorNewItems': string;
'nextAlbum': string;
'overlayTitle': string;
'path': string;
diff --git a/frontend/src/Artist/Index/Table/ArtistIndexRow.tsx b/frontend/src/Artist/Index/Table/ArtistIndexRow.tsx
index e87545093..bff0eb24f 100644
--- a/frontend/src/Artist/Index/Table/ArtistIndexRow.tsx
+++ b/frontend/src/Artist/Index/Table/ArtistIndexRow.tsx
@@ -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 (
+
+ {titleCase(monitorNewItems)}
+
+ );
+ }
+
if (name === 'nextAlbum') {
if (nextAlbum) {
return (
diff --git a/frontend/src/Artist/Index/Table/ArtistIndexTableHeader.css b/frontend/src/Artist/Index/Table/ArtistIndexTableHeader.css
index 6da0be920..7ea4e94aa 100644
--- a/frontend/src/Artist/Index/Table/ArtistIndexTableHeader.css
+++ b/frontend/src/Artist/Index/Table/ArtistIndexTableHeader.css
@@ -31,6 +31,7 @@
flex: 1 0 125px;
}
+.monitorNewItems,
.nextAlbum,
.lastAlbum,
.added,
diff --git a/frontend/src/Artist/Index/Table/ArtistIndexTableHeader.css.d.ts b/frontend/src/Artist/Index/Table/ArtistIndexTableHeader.css.d.ts
index 4d9dcd20b..467b401bb 100644
--- a/frontend/src/Artist/Index/Table/ArtistIndexTableHeader.css.d.ts
+++ b/frontend/src/Artist/Index/Table/ArtistIndexTableHeader.css.d.ts
@@ -11,6 +11,7 @@ interface CssExports {
'lastAlbum': string;
'latestAlbum': string;
'metadataProfileId': string;
+ 'monitorNewItems': string;
'nextAlbum': string;
'path': string;
'qualityProfileId': string;
diff --git a/frontend/src/Components/Filter/Builder/FilterBuilderRow.js b/frontend/src/Components/Filter/Builder/FilterBuilderRow.js
index f613d20bc..8be71aaff 100644
--- a/frontend/src/Components/Filter/Builder/FilterBuilderRow.js
+++ b/frontend/src/Components/Filter/Builder/FilterBuilderRow.js
@@ -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;
diff --git a/frontend/src/Components/Filter/Builder/MonitorNewItemsFilterBuilderRowValue.js b/frontend/src/Components/Filter/Builder/MonitorNewItemsFilterBuilderRowValue.js
new file mode 100644
index 000000000..3b178da06
--- /dev/null
+++ b/frontend/src/Components/Filter/Builder/MonitorNewItemsFilterBuilderRowValue.js
@@ -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 (
+
+ );
+}
+
+export default MonitorNewItemsFilterBuilderRowValue;
diff --git a/frontend/src/Helpers/Props/filterBuilderValueTypes.js b/frontend/src/Helpers/Props/filterBuilderValueTypes.js
index b19d16c8a..005ea0b7a 100644
--- a/frontend/src/Helpers/Props/filterBuilderValueTypes.js
+++ b/frontend/src/Helpers/Props/filterBuilderValueTypes.js
@@ -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';
diff --git a/frontend/src/Store/Actions/artistIndexActions.js b/frontend/src/Store/Actions/artistIndexActions.js
index 756a6ee25..72cb20142 100644
--- a/frontend/src/Store/Actions/artistIndexActions.js
+++ b/frontend/src/Store/Actions/artistIndexActions.js
@@ -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'),