More translations for columns

(cherry picked from commit aee8579d1823b7dfb94c0055fe33b5fb5a7fbf17)

Closes #3932
This commit is contained in:
Bogdan 2023-07-29 04:39:06 +03:00
parent 7406e0e3b7
commit 2cc4d639e9
22 changed files with 184 additions and 177 deletions

View file

@ -206,9 +206,11 @@ class FilterBuilderRow extends Component {
const selectedFilterBuilderProp = this.selectedFilterBuilderProp; const selectedFilterBuilderProp = this.selectedFilterBuilderProp;
const keyOptions = filterBuilderProps.map((availablePropFilter) => { const keyOptions = filterBuilderProps.map((availablePropFilter) => {
const { name, label } = availablePropFilter;
return { return {
key: availablePropFilter.name, key: name,
value: availablePropFilter.label value: typeof label === 'function' ? label() : label
}; };
}).sort((a, b) => a.value.localeCompare(b.value)); }).sort((a, b) => a.value.localeCompare(b.value));

View file

@ -61,7 +61,7 @@ class SelectInput extends Component {
value={key} value={key}
{...otherOptionProps} {...otherOptionProps}
> >
{optionValue} {typeof optionValue === 'function' ? optionValue() : optionValue}
</option> </option>
); );
}) })
@ -75,7 +75,7 @@ SelectInput.propTypes = {
className: PropTypes.string, className: PropTypes.string,
disabledClassName: PropTypes.string, disabledClassName: PropTypes.string,
name: PropTypes.string.isRequired, name: PropTypes.string.isRequired,
value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), value: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]).isRequired,
values: PropTypes.arrayOf(PropTypes.object).isRequired, values: PropTypes.arrayOf(PropTypes.object).isRequired,
isDisabled: PropTypes.bool, isDisabled: PropTypes.bool,
hasError: PropTypes.bool, hasError: PropTypes.bool,

View file

@ -33,7 +33,7 @@ class FilterMenuContent extends Component {
selectedFilterKey={selectedFilterKey} selectedFilterKey={selectedFilterKey}
onPress={onFilterSelect} onPress={onFilterSelect}
> >
{filter.label} {typeof filter.label === 'function' ? filter.label() : filter.label}
</FilterMenuItem> </FilterMenuItem>
); );
}) })

View file

@ -1,8 +1,10 @@
import React from 'react'; import React from 'react';
type PropertyFunction<T> = () => T;
interface Column { interface Column {
name: string; name: string;
label: string | React.ReactNode; label: string | PropertyFunction<string> | React.ReactNode;
columnLabel?: string; columnLabel?: string;
isSortable?: boolean; isSortable?: boolean;
isVisible: boolean; isVisible: boolean;

View file

@ -107,7 +107,7 @@ function Table(props) {
{...getTableHeaderCellProps(otherProps)} {...getTableHeaderCellProps(otherProps)}
{...column} {...column}
> >
{column.label} {typeof column.label === 'function' ? column.label() : column.label}
</TableHeaderCell> </TableHeaderCell>
); );
}) })

View file

@ -30,6 +30,7 @@ class TableHeaderCell extends Component {
const { const {
className, className,
name, name,
label,
columnLabel, columnLabel,
isSortable, isSortable,
isVisible, isVisible,
@ -53,7 +54,8 @@ class TableHeaderCell extends Component {
{...otherProps} {...otherProps}
component="th" component="th"
className={className} className={className}
title={columnLabel} label={typeof label === 'function' ? label() : label}
title={typeof columnLabel === 'function' ? columnLabel() : columnLabel}
onPress={this.onPress} onPress={this.onPress}
> >
{children} {children}
@ -77,7 +79,8 @@ class TableHeaderCell extends Component {
TableHeaderCell.propTypes = { TableHeaderCell.propTypes = {
className: PropTypes.string, className: PropTypes.string,
name: PropTypes.string.isRequired, name: PropTypes.string.isRequired,
columnLabel: PropTypes.string, label: PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.node]),
columnLabel: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),
isSortable: PropTypes.bool, isSortable: PropTypes.bool,
isVisible: PropTypes.bool, isVisible: PropTypes.bool,
isModifiable: PropTypes.bool, isModifiable: PropTypes.bool,

View file

@ -35,7 +35,7 @@ function TableOptionsColumn(props) {
isDisabled={isModifiable === false} isDisabled={isModifiable === false}
onChange={onVisibleChange} onChange={onVisibleChange}
/> />
{label} {typeof label === 'function' ? label() : label}
</label> </label>
{ {
@ -56,7 +56,7 @@ function TableOptionsColumn(props) {
TableOptionsColumn.propTypes = { TableOptionsColumn.propTypes = {
name: PropTypes.string.isRequired, name: PropTypes.string.isRequired,
label: PropTypes.string.isRequired, label: PropTypes.oneOfType([PropTypes.string, PropTypes.func]).isRequired,
isVisible: PropTypes.bool.isRequired, isVisible: PropTypes.bool.isRequired,
isModifiable: PropTypes.bool.isRequired, isModifiable: PropTypes.bool.isRequired,
index: PropTypes.number.isRequired, index: PropTypes.number.isRequired,

View file

@ -112,7 +112,7 @@ class TableOptionsColumnDragSource extends Component {
<TableOptionsColumn <TableOptionsColumn
name={name} name={name}
label={label} label={typeof label === 'function' ? label() : label}
isVisible={isVisible} isVisible={isVisible}
isModifiable={isModifiable} isModifiable={isModifiable}
index={index} index={index}
@ -138,7 +138,7 @@ class TableOptionsColumnDragSource extends Component {
TableOptionsColumnDragSource.propTypes = { TableOptionsColumnDragSource.propTypes = {
name: PropTypes.string.isRequired, name: PropTypes.string.isRequired,
label: PropTypes.string.isRequired, label: PropTypes.oneOfType([PropTypes.string, PropTypes.func]).isRequired,
isVisible: PropTypes.bool.isRequired, isVisible: PropTypes.bool.isRequired,
isModifiable: PropTypes.bool.isRequired, isModifiable: PropTypes.bool.isRequired,
index: PropTypes.number.isRequired, index: PropTypes.number.isRequired,

View file

@ -42,59 +42,59 @@ export const defaultState = {
columns: [ columns: [
{ {
name: 'monitored', name: 'monitored',
columnLabel: translate('Monitored'), columnLabel: () => translate('Monitored'),
isSortable: true, isSortable: true,
isVisible: true, isVisible: true,
isModifiable: false isModifiable: false
}, },
{ {
name: 'title', name: 'title',
label: translate('Title'), label: () => translate('Title'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'releaseDate', name: 'releaseDate',
label: translate('ReleaseDate'), label: () => translate('ReleaseDate'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'secondaryTypes', name: 'secondaryTypes',
label: translate('SecondaryTypes'), label: () => translate('SecondaryTypes'),
isSortable: true, isSortable: true,
isVisible: false isVisible: false
}, },
{ {
name: 'mediumCount', name: 'mediumCount',
label: translate('MediaCount'), label: () => translate('MediaCount'),
isVisible: false isVisible: false
}, },
{ {
name: 'trackCount', name: 'trackCount',
label: translate('TrackCount'), label: () => translate('TrackCount'),
isVisible: false isVisible: false
}, },
{ {
name: 'duration', name: 'duration',
label: translate('Duration'), label: () => translate('Duration'),
isSortable: true, isSortable: true,
isVisible: false isVisible: false
}, },
{ {
name: 'rating', name: 'rating',
label: translate('Rating'), label: () => translate('Rating'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'status', name: 'status',
label: translate('Status'), label: () => translate('Status'),
isVisible: true isVisible: true
}, },
{ {
name: 'actions', name: 'actions',
columnLabel: translate('Actions'), columnLabel: () => translate('Actions'),
isVisible: true, isVisible: true,
isModifiable: false isModifiable: false
} }

View file

@ -32,41 +32,41 @@ export const defaultState = {
filterBuilderProps: [ filterBuilderProps: [
{ {
name: 'monitored', name: 'monitored',
label: translate('Monitored'), label: () => translate('Monitored'),
type: filterBuilderTypes.EXACT, type: filterBuilderTypes.EXACT,
valueType: filterBuilderValueTypes.BOOL valueType: filterBuilderValueTypes.BOOL
}, },
{ {
name: 'status', name: 'status',
label: translate('Status'), label: () => translate('Status'),
type: filterBuilderTypes.EXACT, type: filterBuilderTypes.EXACT,
valueType: filterBuilderValueTypes.ARTIST_STATUS valueType: filterBuilderValueTypes.ARTIST_STATUS
}, },
{ {
name: 'artistType', name: 'artistType',
label: translate('ArtistType'), label: () => translate('ArtistType'),
type: filterBuilderTypes.EXACT type: filterBuilderTypes.EXACT
}, },
{ {
name: 'qualityProfileId', name: 'qualityProfileId',
label: translate('QualityProfile'), label: () => translate('QualityProfile'),
type: filterBuilderTypes.EXACT, type: filterBuilderTypes.EXACT,
valueType: filterBuilderValueTypes.QUALITY_PROFILE valueType: filterBuilderValueTypes.QUALITY_PROFILE
}, },
{ {
name: 'metadataProfileId', name: 'metadataProfileId',
label: translate('MetadataProfile'), label: () => translate('MetadataProfile'),
type: filterBuilderTypes.EXACT, type: filterBuilderTypes.EXACT,
valueType: filterBuilderValueTypes.METADATA_PROFILE valueType: filterBuilderValueTypes.METADATA_PROFILE
}, },
{ {
name: 'rootFolderPath', name: 'rootFolderPath',
label: translate('RootFolderPath'), label: () => translate('RootFolderPath'),
type: filterBuilderTypes.EXACT type: filterBuilderTypes.EXACT
}, },
{ {
name: 'tags', name: 'tags',
label: translate('Tags'), label: () => translate('Tags'),
type: filterBuilderTypes.ARRAY, type: filterBuilderTypes.ARRAY,
valueType: filterBuilderValueTypes.TAG valueType: filterBuilderValueTypes.TAG
} }

View file

@ -21,12 +21,12 @@ export const section = 'artist';
export const filters = [ export const filters = [
{ {
key: 'all', key: 'all',
label: translate('All'), label: () => translate('All'),
filters: [] filters: []
}, },
{ {
key: 'monitored', key: 'monitored',
label: translate('MonitoredOnly'), label: () => translate('MonitoredOnly'),
filters: [ filters: [
{ {
key: 'monitored', key: 'monitored',
@ -37,7 +37,7 @@ export const filters = [
}, },
{ {
key: 'unmonitored', key: 'unmonitored',
label: translate('UnmonitoredOnly'), label: () => translate('UnmonitoredOnly'),
filters: [ filters: [
{ {
key: 'monitored', key: 'monitored',
@ -48,7 +48,7 @@ export const filters = [
}, },
{ {
key: 'continuing', key: 'continuing',
label: translate('ContinuingOnly'), label: () => translate('ContinuingOnly'),
filters: [ filters: [
{ {
key: 'status', key: 'status',
@ -59,7 +59,7 @@ export const filters = [
}, },
{ {
key: 'ended', key: 'ended',
label: translate('EndedOnly'), label: () => translate('EndedOnly'),
filters: [ filters: [
{ {
key: 'status', key: 'status',
@ -70,7 +70,7 @@ export const filters = [
}, },
{ {
key: 'missing', key: 'missing',
label: translate('MissingTracks'), label: () => translate('MissingTracks'),
filters: [ filters: [
{ {
key: 'missing', key: 'missing',

View file

@ -35,50 +35,50 @@ export const defaultState = {
columns: [ columns: [
{ {
name: 'status', name: 'status',
columnLabel: translate('Status'), columnLabel: () => translate('Status'),
isSortable: true, isSortable: true,
isVisible: true, isVisible: true,
isModifiable: false isModifiable: false
}, },
{ {
name: 'sortName', name: 'sortName',
label: translate('Name'), label: () => translate('Name'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'monitorNewItems', name: 'monitorNewItems',
label: translate('MonitorNewItems'), label: () => translate('MonitorNewItems'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'qualityProfileId', name: 'qualityProfileId',
label: translate('QualityProfile'), label: () => translate('QualityProfile'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'metadataProfileId', name: 'metadataProfileId',
label: translate('MetadataProfile'), label: () => translate('MetadataProfile'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'path', name: 'path',
label: translate('Path'), label: () => translate('Path'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'sizeOnDisk', name: 'sizeOnDisk',
label: translate('SizeOnDisk'), label: () => translate('SizeOnDisk'),
isSortable: true, isSortable: true,
isVisible: false isVisible: false
}, },
{ {
name: 'tags', name: 'tags',
label: translate('Tags'), label: () => translate('Tags'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
} }
@ -87,47 +87,47 @@ export const defaultState = {
filterBuilderProps: [ filterBuilderProps: [
{ {
name: 'monitored', name: 'monitored',
label: translate('Monitored'), label: () => translate('Monitored'),
type: filterBuilderTypes.EXACT, type: filterBuilderTypes.EXACT,
valueType: filterBuilderValueTypes.BOOL valueType: filterBuilderValueTypes.BOOL
}, },
{ {
name: 'status', name: 'status',
label: translate('Status'), label: () => translate('Status'),
type: filterBuilderTypes.EXACT, type: filterBuilderTypes.EXACT,
valueType: filterBuilderValueTypes.ARTIST_STATUS valueType: filterBuilderValueTypes.ARTIST_STATUS
}, },
{ {
name: 'qualityProfileId', name: 'qualityProfileId',
label: translate('QualityProfile'), label: () => translate('QualityProfile'),
type: filterBuilderTypes.EXACT, type: filterBuilderTypes.EXACT,
valueType: filterBuilderValueTypes.QUALITY_PROFILE valueType: filterBuilderValueTypes.QUALITY_PROFILE
}, },
{ {
name: 'metadataProfileId', name: 'metadataProfileId',
label: translate('MetadataProfile'), label: () => translate('MetadataProfile'),
type: filterBuilderTypes.EXACT, type: filterBuilderTypes.EXACT,
valueType: filterBuilderValueTypes.METADATA_PROFILE valueType: filterBuilderValueTypes.METADATA_PROFILE
}, },
{ {
name: 'path', name: 'path',
label: translate('Path'), label: () => translate('Path'),
type: filterBuilderTypes.STRING type: filterBuilderTypes.STRING
}, },
{ {
name: 'rootFolderPath', name: 'rootFolderPath',
label: translate('RootFolderPath'), label: () => translate('RootFolderPath'),
type: filterBuilderTypes.EXACT type: filterBuilderTypes.EXACT
}, },
{ {
name: 'sizeOnDisk', name: 'sizeOnDisk',
label: translate('SizeOnDisk'), label: () => translate('SizeOnDisk'),
type: filterBuilderTypes.NUMBER, type: filterBuilderTypes.NUMBER,
valueType: filterBuilderValueTypes.BYTES valueType: filterBuilderValueTypes.BYTES
}, },
{ {
name: 'tags', name: 'tags',
label: translate('Tags'), label: () => translate('Tags'),
type: filterBuilderTypes.ARRAY, type: filterBuilderTypes.ARRAY,
valueType: filterBuilderValueTypes.TAG valueType: filterBuilderValueTypes.TAG
} }

View file

@ -63,105 +63,105 @@ export const defaultState = {
columns: [ columns: [
{ {
name: 'status', name: 'status',
columnLabel: translate('Status'), columnLabel: () => translate('Status'),
isSortable: true, isSortable: true,
isVisible: true, isVisible: true,
isModifiable: false isModifiable: false
}, },
{ {
name: 'sortName', name: 'sortName',
label: translate('ArtistName'), label: () => translate('ArtistName'),
isSortable: true, isSortable: true,
isVisible: true, isVisible: true,
isModifiable: false isModifiable: false
}, },
{ {
name: 'artistType', name: 'artistType',
label: translate('Type'), label: () => translate('Type'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'qualityProfileId', name: 'qualityProfileId',
label: translate('QualityProfile'), label: () => translate('QualityProfile'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'metadataProfileId', name: 'metadataProfileId',
label: translate('MetadataProfile'), label: () => translate('MetadataProfile'),
isSortable: true, isSortable: true,
isVisible: false isVisible: false
}, },
{ {
name: 'nextAlbum', name: 'nextAlbum',
label: translate('NextAlbum'), label: () => translate('NextAlbum'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'lastAlbum', name: 'lastAlbum',
label: translate('LastAlbum'), label: () => translate('LastAlbum'),
isSortable: true, isSortable: true,
isVisible: false isVisible: false
}, },
{ {
name: 'added', name: 'added',
label: translate('Added'), label: () => translate('Added'),
isSortable: true, isSortable: true,
isVisible: false isVisible: false
}, },
{ {
name: 'albumCount', name: 'albumCount',
label: translate('Albums'), label: () => translate('Albums'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'trackProgress', name: 'trackProgress',
label: translate('Tracks'), label: () => translate('Tracks'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'trackCount', name: 'trackCount',
label: translate('TrackCount'), label: () => translate('TrackCount'),
isSortable: true, isSortable: true,
isVisible: false isVisible: false
}, },
{ {
name: 'path', name: 'path',
label: translate('Path'), label: () => translate('Path'),
isSortable: true, isSortable: true,
isVisible: false isVisible: false
}, },
{ {
name: 'sizeOnDisk', name: 'sizeOnDisk',
label: translate('SizeOnDisk'), label: () => translate('SizeOnDisk'),
isSortable: true, isSortable: true,
isVisible: false isVisible: false
}, },
{ {
name: 'genres', name: 'genres',
label: translate('Genres'), label: () => translate('Genres'),
isSortable: false, isSortable: false,
isVisible: false isVisible: false
}, },
{ {
name: 'ratings', name: 'ratings',
label: translate('Rating'), label: () => translate('Rating'),
isSortable: true, isSortable: true,
isVisible: false isVisible: false
}, },
{ {
name: 'tags', name: 'tags',
label: translate('Tags'), label: () => translate('Tags'),
isSortable: true, isSortable: true,
isVisible: false isVisible: false
}, },
{ {
name: 'actions', name: 'actions',
columnLabel: translate('Actions'), columnLabel: () => translate('Actions'),
isVisible: true, isVisible: true,
isModifiable: false isModifiable: false
} }
@ -244,70 +244,70 @@ export const defaultState = {
filterBuilderProps: [ filterBuilderProps: [
{ {
name: 'monitored', name: 'monitored',
label: translate('Monitored'), label: () => translate('Monitored'),
type: filterBuilderTypes.EXACT, type: filterBuilderTypes.EXACT,
valueType: filterBuilderValueTypes.BOOL valueType: filterBuilderValueTypes.BOOL
}, },
{ {
name: 'status', name: 'status',
label: translate('Status'), label: () => translate('Status'),
type: filterBuilderTypes.EXACT, type: filterBuilderTypes.EXACT,
valueType: filterBuilderValueTypes.ARTIST_STATUS valueType: filterBuilderValueTypes.ARTIST_STATUS
}, },
{ {
name: 'qualityProfileId', name: 'qualityProfileId',
label: translate('QualityProfile'), label: () => translate('QualityProfile'),
type: filterBuilderTypes.EXACT, type: filterBuilderTypes.EXACT,
valueType: filterBuilderValueTypes.QUALITY_PROFILE valueType: filterBuilderValueTypes.QUALITY_PROFILE
}, },
{ {
name: 'metadataProfileId', name: 'metadataProfileId',
label: translate('MetadataProfile'), label: () => translate('MetadataProfile'),
type: filterBuilderTypes.EXACT, type: filterBuilderTypes.EXACT,
valueType: filterBuilderValueTypes.METADATA_PROFILE valueType: filterBuilderValueTypes.METADATA_PROFILE
}, },
{ {
name: 'nextAlbum', name: 'nextAlbum',
label: translate('NextAlbum'), label: () => translate('NextAlbum'),
type: filterBuilderTypes.DATE, type: filterBuilderTypes.DATE,
valueType: filterBuilderValueTypes.DATE valueType: filterBuilderValueTypes.DATE
}, },
{ {
name: 'lastAlbum', name: 'lastAlbum',
label: translate('LastAlbum'), label: () => translate('LastAlbum'),
type: filterBuilderTypes.DATE, type: filterBuilderTypes.DATE,
valueType: filterBuilderValueTypes.DATE valueType: filterBuilderValueTypes.DATE
}, },
{ {
name: 'added', name: 'added',
label: translate('Added'), label: () => translate('Added'),
type: filterBuilderTypes.DATE, type: filterBuilderTypes.DATE,
valueType: filterBuilderValueTypes.DATE valueType: filterBuilderValueTypes.DATE
}, },
{ {
name: 'albumCount', name: 'albumCount',
label: translate('AlbumCount'), label: () => translate('AlbumCount'),
type: filterBuilderTypes.NUMBER type: filterBuilderTypes.NUMBER
}, },
{ {
name: 'trackProgress', name: 'trackProgress',
label: translate('TrackProgress'), label: () => translate('TrackProgress'),
type: filterBuilderTypes.NUMBER type: filterBuilderTypes.NUMBER
}, },
{ {
name: 'path', name: 'path',
label: translate('Path'), label: () => translate('Path'),
type: filterBuilderTypes.STRING type: filterBuilderTypes.STRING
}, },
{ {
name: 'sizeOnDisk', name: 'sizeOnDisk',
label: translate('SizeOnDisk'), label: () => translate('SizeOnDisk'),
type: filterBuilderTypes.NUMBER, type: filterBuilderTypes.NUMBER,
valueType: filterBuilderValueTypes.BYTES valueType: filterBuilderValueTypes.BYTES
}, },
{ {
name: 'genres', name: 'genres',
label: translate('Genres'), label: () => translate('Genres'),
type: filterBuilderTypes.ARRAY, type: filterBuilderTypes.ARRAY,
optionsSelector: function(items) { optionsSelector: function(items) {
const tagList = items.reduce((acc, artist) => { const tagList = items.reduce((acc, artist) => {
@ -326,12 +326,12 @@ export const defaultState = {
}, },
{ {
name: 'ratings', name: 'ratings',
label: translate('Rating'), label: () => translate('Rating'),
type: filterBuilderTypes.NUMBER type: filterBuilderTypes.NUMBER
}, },
{ {
name: 'tags', name: 'tags',
label: translate('Tags'), label: () => translate('Tags'),
type: filterBuilderTypes.ARRAY, type: filterBuilderTypes.ARRAY,
valueType: filterBuilderValueTypes.TAG valueType: filterBuilderValueTypes.TAG
} }

View file

@ -33,19 +33,19 @@ export const defaultState = {
columns: [ columns: [
{ {
name: 'artists.sortName', name: 'artists.sortName',
label: translate('ArtistName'), label: () => translate('ArtistName'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'sourceTitle', name: 'sourceTitle',
label: translate('SourceTitle'), label: () => translate('SourceTitle'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'quality', name: 'quality',
label: translate('Quality'), label: () => translate('Quality'),
isVisible: true isVisible: true
}, },
{ {
@ -56,19 +56,19 @@ export const defaultState = {
}, },
{ {
name: 'date', name: 'date',
label: translate('Date'), label: () => translate('Date'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'indexer', name: 'indexer',
label: translate('Indexer'), label: () => translate('Indexer'),
isSortable: true, isSortable: true,
isVisible: false isVisible: false
}, },
{ {
name: 'actions', name: 'actions',
columnLabel: translate('Actions'), columnLabel: () => translate('Actions'),
isVisible: true, isVisible: true,
isModifiable: false isModifiable: false
} }

View file

@ -51,7 +51,7 @@ export const defaultState = {
filters: [ filters: [
{ {
key: 'all', key: 'all',
label: translate('All'), label: () => translate('All'),
filters: [ filters: [
{ {
key: 'monitored', key: 'monitored',
@ -62,7 +62,7 @@ export const defaultState = {
}, },
{ {
key: 'monitored', key: 'monitored',
label: translate('MonitoredOnly'), label: () => translate('MonitoredOnly'),
filters: [ filters: [
{ {
key: 'monitored', key: 'monitored',

View file

@ -32,30 +32,30 @@ export const defaultState = {
columns: [ columns: [
{ {
name: 'eventType', name: 'eventType',
columnLabel: translate('EventType'), columnLabel: () => translate('EventType'),
isVisible: true, isVisible: true,
isModifiable: false isModifiable: false
}, },
{ {
name: 'artists.sortName', name: 'artists.sortName',
label: translate('Artist'), label: () => translate('Artist'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'albums.title', name: 'albums.title',
label: translate('AlbumTitle'), label: () => translate('AlbumTitle'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'trackTitle', name: 'trackTitle',
label: translate('TrackTitle'), label: () => translate('TrackTitle'),
isVisible: true isVisible: true
}, },
{ {
name: 'quality', name: 'quality',
label: translate('Quality'), label: () => translate('Quality'),
isVisible: true isVisible: true
}, },
{ {
@ -66,28 +66,28 @@ export const defaultState = {
}, },
{ {
name: 'date', name: 'date',
label: translate('Date'), label: () => translate('Date'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'downloadClient', name: 'downloadClient',
label: translate('DownloadClient'), label: () => translate('DownloadClient'),
isVisible: false isVisible: false
}, },
{ {
name: 'indexer', name: 'indexer',
label: translate('Indexer'), label: () => translate('Indexer'),
isVisible: false isVisible: false
}, },
{ {
name: 'releaseGroup', name: 'releaseGroup',
label: translate('ReleaseGroup'), label: () => translate('ReleaseGroup'),
isVisible: false isVisible: false
}, },
{ {
name: 'sourceTitle', name: 'sourceTitle',
label: translate('SourceTitle'), label: () => translate('SourceTitle'),
isVisible: false isVisible: false
}, },
{ {
@ -106,7 +106,7 @@ export const defaultState = {
}, },
{ {
name: 'details', name: 'details',
columnLabel: translate('Details'), columnLabel: () => translate('Details'),
isVisible: true, isVisible: true,
isModifiable: false isModifiable: false
} }
@ -117,12 +117,12 @@ export const defaultState = {
filters: [ filters: [
{ {
key: 'all', key: 'all',
label: translate('All'), label: () => translate('All'),
filters: [] filters: []
}, },
{ {
key: 'grabbed', key: 'grabbed',
label: translate('Grabbed'), label: () => translate('Grabbed'),
filters: [ filters: [
{ {
key: 'eventType', key: 'eventType',
@ -133,7 +133,7 @@ export const defaultState = {
}, },
{ {
key: 'trackFileImported', key: 'trackFileImported',
label: translate('TrackImported'), label: () => translate('TrackImported'),
filters: [ filters: [
{ {
key: 'eventType', key: 'eventType',
@ -144,7 +144,7 @@ export const defaultState = {
}, },
{ {
key: 'failed', key: 'failed',
label: translate('DownloadFailed'), label: () => translate('DownloadFailed'),
filters: [ filters: [
{ {
key: 'eventType', key: 'eventType',
@ -155,7 +155,7 @@ export const defaultState = {
}, },
{ {
key: 'importFailed', key: 'importFailed',
label: translate('ImportFailed'), label: () => translate('ImportFailed'),
filters: [ filters: [
{ {
key: 'eventType', key: 'eventType',
@ -166,7 +166,7 @@ export const defaultState = {
}, },
{ {
key: 'downloadImported', key: 'downloadImported',
label: translate('DownloadImported'), label: () => translate('DownloadImported'),
filters: [ filters: [
{ {
key: 'eventType', key: 'eventType',
@ -177,7 +177,7 @@ export const defaultState = {
}, },
{ {
key: 'deleted', key: 'deleted',
label: translate('Deleted'), label: () => translate('Deleted'),
filters: [ filters: [
{ {
key: 'eventType', key: 'eventType',
@ -188,7 +188,7 @@ export const defaultState = {
}, },
{ {
key: 'renamed', key: 'renamed',
label: translate('Renamed'), label: () => translate('Renamed'),
filters: [ filters: [
{ {
key: 'eventType', key: 'eventType',
@ -199,7 +199,7 @@ export const defaultState = {
}, },
{ {
key: 'retagged', key: 'retagged',
label: translate('Retagged'), label: () => translate('Retagged'),
filters: [ filters: [
{ {
key: 'eventType', key: 'eventType',
@ -210,7 +210,7 @@ export const defaultState = {
}, },
{ {
key: 'ignored', key: 'ignored',
label: translate('Ignored'), label: () => translate('Ignored'),
filters: [ filters: [
{ {
key: 'eventType', key: 'eventType',

View file

@ -60,32 +60,32 @@ export const defaultState = {
columns: [ columns: [
{ {
name: 'status', name: 'status',
columnLabel: translate('Status'), columnLabel: () => translate('Status'),
isSortable: true, isSortable: true,
isVisible: true, isVisible: true,
isModifiable: false isModifiable: false
}, },
{ {
name: 'artists.sortName', name: 'artists.sortName',
label: translate('Artist'), label: () => translate('Artist'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'albums.title', name: 'albums.title',
label: translate('AlbumTitle'), label: () => translate('AlbumTitle'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'albums.releaseDate', name: 'albums.releaseDate',
label: translate('AlbumReleaseDate'), label: () => translate('AlbumReleaseDate'),
isSortable: true, isSortable: true,
isVisible: false isVisible: false
}, },
{ {
name: 'quality', name: 'quality',
label: translate('Quality'), label: () => translate('Quality'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
@ -97,7 +97,7 @@ export const defaultState = {
}, },
{ {
name: 'customFormatScore', name: 'customFormatScore',
columnLabel: translate('CustomFormatScore'), columnLabel: () => translate('CustomFormatScore'),
label: React.createElement(Icon, { label: React.createElement(Icon, {
name: icons.SCORE, name: icons.SCORE,
title: () => translate('CustomFormatScore') title: () => translate('CustomFormatScore')
@ -106,55 +106,55 @@ export const defaultState = {
}, },
{ {
name: 'protocol', name: 'protocol',
label: translate('Protocol'), label: () => translate('Protocol'),
isSortable: true, isSortable: true,
isVisible: false isVisible: false
}, },
{ {
name: 'indexer', name: 'indexer',
label: translate('Indexer'), label: () => translate('Indexer'),
isSortable: true, isSortable: true,
isVisible: false isVisible: false
}, },
{ {
name: 'downloadClient', name: 'downloadClient',
label: translate('DownloadClient'), label: () => translate('DownloadClient'),
isSortable: true, isSortable: true,
isVisible: false isVisible: false
}, },
{ {
name: 'title', name: 'title',
label: translate('ReleaseTitle'), label: () => translate('ReleaseTitle'),
isSortable: true, isSortable: true,
isVisible: false isVisible: false
}, },
{ {
name: 'size', name: 'size',
label: translate('Size'), label: () => translate('Size'),
isSortable: true, isSortable: true,
isVisibile: false isVisibile: false
}, },
{ {
name: 'outputPath', name: 'outputPath',
label: translate('OutputPath'), label: () => translate('OutputPath'),
isSortable: false, isSortable: false,
isVisible: false isVisible: false
}, },
{ {
name: 'estimatedCompletionTime', name: 'estimatedCompletionTime',
label: translate('TimeLeft'), label: () => translate('TimeLeft'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'progress', name: 'progress',
label: translate('Progress'), label: () => translate('Progress'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'actions', name: 'actions',
columnLabel: translate('Actions'), columnLabel: () => translate('Actions'),
isVisible: true, isVisible: true,
isModifiable: false isModifiable: false
} }

View file

@ -52,12 +52,12 @@ export const defaultState = {
filters: [ filters: [
{ {
key: 'all', key: 'all',
label: translate('All'), label: () => translate('All'),
filters: [] filters: []
}, },
{ {
key: 'discography-pack', key: 'discography-pack',
label: translate('Discography'), label: () => translate('Discography'),
filters: [ filters: [
{ {
key: 'discography', key: 'discography',
@ -68,7 +68,7 @@ export const defaultState = {
}, },
{ {
key: 'not-discography-pack', key: 'not-discography-pack',
label: translate('NotDiscography'), label: () => translate('NotDiscography'),
filters: [ filters: [
{ {
key: 'discography', key: 'discography',
@ -155,56 +155,56 @@ export const defaultState = {
filterBuilderProps: [ filterBuilderProps: [
{ {
name: 'title', name: 'title',
label: translate('Title'), label: () => translate('Title'),
type: filterBuilderTypes.STRING type: filterBuilderTypes.STRING
}, },
{ {
name: 'age', name: 'age',
label: translate('Age'), label: () => translate('Age'),
type: filterBuilderTypes.NUMBER type: filterBuilderTypes.NUMBER
}, },
{ {
name: 'protocol', name: 'protocol',
label: translate('Protocol'), label: () => translate('Protocol'),
type: filterBuilderTypes.EXACT, type: filterBuilderTypes.EXACT,
valueType: filterBuilderValueTypes.PROTOCOL valueType: filterBuilderValueTypes.PROTOCOL
}, },
{ {
name: 'indexerId', name: 'indexerId',
label: translate('Indexer'), label: () => translate('Indexer'),
type: filterBuilderTypes.EXACT, type: filterBuilderTypes.EXACT,
valueType: filterBuilderValueTypes.INDEXER valueType: filterBuilderValueTypes.INDEXER
}, },
{ {
name: 'size', name: 'size',
label: translate('Size'), label: () => translate('Size'),
type: filterBuilderTypes.NUMBER, type: filterBuilderTypes.NUMBER,
valueType: filterBuilderValueTypes.BYTES valueType: filterBuilderValueTypes.BYTES
}, },
{ {
name: 'seeders', name: 'seeders',
label: translate('Seeders'), label: () => translate('Seeders'),
type: filterBuilderTypes.NUMBER type: filterBuilderTypes.NUMBER
}, },
{ {
name: 'leechers', name: 'leechers',
label: translate('Peers'), label: () => translate('Peers'),
type: filterBuilderTypes.NUMBER type: filterBuilderTypes.NUMBER
}, },
{ {
name: 'quality', name: 'quality',
label: translate('Quality'), label: () => translate('Quality'),
type: filterBuilderTypes.EXACT, type: filterBuilderTypes.EXACT,
valueType: filterBuilderValueTypes.QUALITY valueType: filterBuilderValueTypes.QUALITY
}, },
{ {
name: 'customFormatScore', name: 'customFormatScore',
label: translate('CustomFormatScore'), label: () => translate('CustomFormatScore'),
type: filterBuilderTypes.NUMBER type: filterBuilderTypes.NUMBER
}, },
{ {
name: 'rejectionCount', name: 'rejectionCount',
label: translate('RejectionCount'), label: () => translate('RejectionCount'),
type: filterBuilderTypes.NUMBER type: filterBuilderTypes.NUMBER
} }
], ],

View file

@ -82,34 +82,34 @@ export const defaultState = {
columns: [ columns: [
{ {
name: 'level', name: 'level',
columnLabel: translate('Level'), columnLabel: () => translate('Level'),
isSortable: false, isSortable: false,
isVisible: true, isVisible: true,
isModifiable: false isModifiable: false
}, },
{ {
name: 'time', name: 'time',
label: translate('Time'), label: () => translate('Time'),
isSortable: true, isSortable: true,
isVisible: true, isVisible: true,
isModifiable: false isModifiable: false
}, },
{ {
name: 'logger', name: 'logger',
label: translate('Component'), label: () => translate('Component'),
isSortable: false, isSortable: false,
isVisible: true, isVisible: true,
isModifiable: false isModifiable: false
}, },
{ {
name: 'message', name: 'message',
label: translate('Message'), label: () => translate('Message'),
isVisible: true, isVisible: true,
isModifiable: false isModifiable: false
}, },
{ {
name: 'actions', name: 'actions',
columnLabel: translate('Actions'), columnLabel: () => translate('Actions'),
isSortable: true, isSortable: true,
isVisible: true, isVisible: true,
isModifiable: false isModifiable: false
@ -121,12 +121,12 @@ export const defaultState = {
filters: [ filters: [
{ {
key: 'all', key: 'all',
label: translate('All'), label: () => translate('All'),
filters: [] filters: []
}, },
{ {
key: 'info', key: 'info',
label: translate('Info'), label: () => translate('Info'),
filters: [ filters: [
{ {
key: 'level', key: 'level',
@ -137,7 +137,7 @@ export const defaultState = {
}, },
{ {
key: 'warn', key: 'warn',
label: translate('Warn'), label: () => translate('Warn'),
filters: [ filters: [
{ {
key: 'level', key: 'level',
@ -148,7 +148,7 @@ export const defaultState = {
}, },
{ {
key: 'error', key: 'error',
label: translate('Error'), label: () => translate('Error'),
filters: [ filters: [
{ {
key: 'level', key: 'level',

View file

@ -30,32 +30,32 @@ export const defaultState = {
columns: [ columns: [
{ {
name: 'medium', name: 'medium',
label: translate('Medium'), label: () => translate('Medium'),
isVisible: false isVisible: false
}, },
{ {
name: 'absoluteTrackNumber', name: 'absoluteTrackNumber',
label: translate('Track'), label: () => translate('Track'),
isVisible: true isVisible: true
}, },
{ {
name: 'title', name: 'title',
label: translate('Title'), label: () => translate('Title'),
isVisible: true isVisible: true
}, },
{ {
name: 'path', name: 'path',
label: translate('Path'), label: () => translate('Path'),
isVisible: false isVisible: false
}, },
{ {
name: 'duration', name: 'duration',
label: translate('Duration'), label: () => translate('Duration'),
isVisible: true isVisible: true
}, },
{ {
name: 'audioInfo', name: 'audioInfo',
label: translate('AudioInfo'), label: () => translate('AudioInfo'),
isVisible: true isVisible: true
}, },
{ {
@ -65,7 +65,7 @@ export const defaultState = {
}, },
{ {
name: 'customFormatScore', name: 'customFormatScore',
columnLabel: translate('CustomFormatScore'), columnLabel: () => translate('CustomFormatScore'),
label: React.createElement(Icon, { label: React.createElement(Icon, {
name: icons.SCORE, name: icons.SCORE,
title: () => translate('CustomFormatScore') title: () => translate('CustomFormatScore')
@ -74,12 +74,12 @@ export const defaultState = {
}, },
{ {
name: 'status', name: 'status',
label: translate('Status'), label: () => translate('Status'),
isVisible: true isVisible: true
}, },
{ {
name: 'actions', name: 'actions',
columnLabel: translate('Actions'), columnLabel: () => translate('Actions'),
isVisible: true, isVisible: true,
isModifiable: false isModifiable: false
} }

View file

@ -52,32 +52,32 @@ export const defaultState = {
}, },
{ {
name: 'path', name: 'path',
label: translate('Path'), label: () => translate('Path'),
isSortable: true, isSortable: true,
isVisible: true, isVisible: true,
isModifiable: false isModifiable: false
}, },
{ {
name: 'size', name: 'size',
label: translate('Size'), label: () => translate('Size'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'dateAdded', name: 'dateAdded',
label: translate('DateAdded'), label: () => translate('DateAdded'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'quality', name: 'quality',
label: translate('Quality'), label: () => translate('Quality'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'actions', name: 'actions',
columnLabel: translate('Actions'), columnLabel: () => translate('Actions'),
isVisible: true, isVisible: true,
isModifiable: false isModifiable: false
} }

View file

@ -30,25 +30,25 @@ export const defaultState = {
columns: [ columns: [
{ {
name: 'artists.sortName', name: 'artists.sortName',
label: translate('ArtistName'), label: () => translate('ArtistName'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'albums.title', name: 'albums.title',
label: translate('AlbumTitle'), label: () => translate('AlbumTitle'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'albumType', name: 'albumType',
label: translate('AlbumType'), label: () => translate('AlbumType'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'releaseDate', name: 'releaseDate',
label: translate('ReleaseDate'), label: () => translate('ReleaseDate'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
@ -59,7 +59,7 @@ export const defaultState = {
// }, // },
{ {
name: 'actions', name: 'actions',
columnLabel: translate('Actions'), columnLabel: () => translate('Actions'),
isVisible: true, isVisible: true,
isModifiable: false isModifiable: false
} }
@ -70,7 +70,7 @@ export const defaultState = {
filters: [ filters: [
{ {
key: 'monitored', key: 'monitored',
label: translate('Monitored'), label: () => translate('Monitored'),
filters: [ filters: [
{ {
key: 'monitored', key: 'monitored',
@ -81,7 +81,7 @@ export const defaultState = {
}, },
{ {
key: 'unmonitored', key: 'unmonitored',
label: translate('Unmonitored'), label: () => translate('Unmonitored'),
filters: [ filters: [
{ {
key: 'monitored', key: 'monitored',
@ -104,25 +104,25 @@ export const defaultState = {
columns: [ columns: [
{ {
name: 'artists.sortName', name: 'artists.sortName',
label: translate('ArtistName'), label: () => translate('ArtistName'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'albums.title', name: 'albums.title',
label: translate('AlbumTitle'), label: () => translate('AlbumTitle'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'albumType', name: 'albumType',
label: translate('AlbumType'), label: () => translate('AlbumType'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'releaseDate', name: 'releaseDate',
label: translate('ReleaseDate'), label: () => translate('ReleaseDate'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
@ -133,7 +133,7 @@ export const defaultState = {
// }, // },
{ {
name: 'actions', name: 'actions',
columnLabel: translate('Actions'), columnLabel: () => translate('Actions'),
isVisible: true, isVisible: true,
isModifiable: false isModifiable: false
} }
@ -144,7 +144,7 @@ export const defaultState = {
filters: [ filters: [
{ {
key: 'monitored', key: 'monitored',
label: translate('Monitored'), label: () => translate('Monitored'),
filters: [ filters: [
{ {
key: 'monitored', key: 'monitored',
@ -155,7 +155,7 @@ export const defaultState = {
}, },
{ {
key: 'unmonitored', key: 'unmonitored',
label: translate('Unmonitored'), label: () => translate('Unmonitored'),
filters: [ filters: [
{ {
key: 'monitored', key: 'monitored',