mirror of
https://github.com/lidarr/lidarr.git
synced 2025-07-06 13:02:23 -07:00
More translations for columns
(cherry picked from commit aee8579d1823b7dfb94c0055fe33b5fb5a7fbf17) Closes #3932
This commit is contained in:
parent
7406e0e3b7
commit
2cc4d639e9
22 changed files with 184 additions and 177 deletions
|
@ -206,9 +206,11 @@ class FilterBuilderRow extends Component {
|
|||
const selectedFilterBuilderProp = this.selectedFilterBuilderProp;
|
||||
|
||||
const keyOptions = filterBuilderProps.map((availablePropFilter) => {
|
||||
const { name, label } = availablePropFilter;
|
||||
|
||||
return {
|
||||
key: availablePropFilter.name,
|
||||
value: availablePropFilter.label
|
||||
key: name,
|
||||
value: typeof label === 'function' ? label() : label
|
||||
};
|
||||
}).sort((a, b) => a.value.localeCompare(b.value));
|
||||
|
||||
|
|
|
@ -61,7 +61,7 @@ class SelectInput extends Component {
|
|||
value={key}
|
||||
{...otherOptionProps}
|
||||
>
|
||||
{optionValue}
|
||||
{typeof optionValue === 'function' ? optionValue() : optionValue}
|
||||
</option>
|
||||
);
|
||||
})
|
||||
|
@ -75,7 +75,7 @@ SelectInput.propTypes = {
|
|||
className: PropTypes.string,
|
||||
disabledClassName: PropTypes.string,
|
||||
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,
|
||||
isDisabled: PropTypes.bool,
|
||||
hasError: PropTypes.bool,
|
||||
|
|
|
@ -33,7 +33,7 @@ class FilterMenuContent extends Component {
|
|||
selectedFilterKey={selectedFilterKey}
|
||||
onPress={onFilterSelect}
|
||||
>
|
||||
{filter.label}
|
||||
{typeof filter.label === 'function' ? filter.label() : filter.label}
|
||||
</FilterMenuItem>
|
||||
);
|
||||
})
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
import React from 'react';
|
||||
|
||||
type PropertyFunction<T> = () => T;
|
||||
|
||||
interface Column {
|
||||
name: string;
|
||||
label: string | React.ReactNode;
|
||||
label: string | PropertyFunction<string> | React.ReactNode;
|
||||
columnLabel?: string;
|
||||
isSortable?: boolean;
|
||||
isVisible: boolean;
|
||||
|
|
|
@ -107,7 +107,7 @@ function Table(props) {
|
|||
{...getTableHeaderCellProps(otherProps)}
|
||||
{...column}
|
||||
>
|
||||
{column.label}
|
||||
{typeof column.label === 'function' ? column.label() : column.label}
|
||||
</TableHeaderCell>
|
||||
);
|
||||
})
|
||||
|
|
|
@ -30,6 +30,7 @@ class TableHeaderCell extends Component {
|
|||
const {
|
||||
className,
|
||||
name,
|
||||
label,
|
||||
columnLabel,
|
||||
isSortable,
|
||||
isVisible,
|
||||
|
@ -53,7 +54,8 @@ class TableHeaderCell extends Component {
|
|||
{...otherProps}
|
||||
component="th"
|
||||
className={className}
|
||||
title={columnLabel}
|
||||
label={typeof label === 'function' ? label() : label}
|
||||
title={typeof columnLabel === 'function' ? columnLabel() : columnLabel}
|
||||
onPress={this.onPress}
|
||||
>
|
||||
{children}
|
||||
|
@ -77,7 +79,8 @@ class TableHeaderCell extends Component {
|
|||
TableHeaderCell.propTypes = {
|
||||
className: PropTypes.string,
|
||||
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,
|
||||
isVisible: PropTypes.bool,
|
||||
isModifiable: PropTypes.bool,
|
||||
|
|
|
@ -35,7 +35,7 @@ function TableOptionsColumn(props) {
|
|||
isDisabled={isModifiable === false}
|
||||
onChange={onVisibleChange}
|
||||
/>
|
||||
{label}
|
||||
{typeof label === 'function' ? label() : label}
|
||||
</label>
|
||||
|
||||
{
|
||||
|
@ -56,7 +56,7 @@ function TableOptionsColumn(props) {
|
|||
|
||||
TableOptionsColumn.propTypes = {
|
||||
name: PropTypes.string.isRequired,
|
||||
label: PropTypes.string.isRequired,
|
||||
label: PropTypes.oneOfType([PropTypes.string, PropTypes.func]).isRequired,
|
||||
isVisible: PropTypes.bool.isRequired,
|
||||
isModifiable: PropTypes.bool.isRequired,
|
||||
index: PropTypes.number.isRequired,
|
||||
|
|
|
@ -112,7 +112,7 @@ class TableOptionsColumnDragSource extends Component {
|
|||
|
||||
<TableOptionsColumn
|
||||
name={name}
|
||||
label={label}
|
||||
label={typeof label === 'function' ? label() : label}
|
||||
isVisible={isVisible}
|
||||
isModifiable={isModifiable}
|
||||
index={index}
|
||||
|
@ -138,7 +138,7 @@ class TableOptionsColumnDragSource extends Component {
|
|||
|
||||
TableOptionsColumnDragSource.propTypes = {
|
||||
name: PropTypes.string.isRequired,
|
||||
label: PropTypes.string.isRequired,
|
||||
label: PropTypes.oneOfType([PropTypes.string, PropTypes.func]).isRequired,
|
||||
isVisible: PropTypes.bool.isRequired,
|
||||
isModifiable: PropTypes.bool.isRequired,
|
||||
index: PropTypes.number.isRequired,
|
||||
|
|
|
@ -42,59 +42,59 @@ export const defaultState = {
|
|||
columns: [
|
||||
{
|
||||
name: 'monitored',
|
||||
columnLabel: translate('Monitored'),
|
||||
columnLabel: () => translate('Monitored'),
|
||||
isSortable: true,
|
||||
isVisible: true,
|
||||
isModifiable: false
|
||||
},
|
||||
{
|
||||
name: 'title',
|
||||
label: translate('Title'),
|
||||
label: () => translate('Title'),
|
||||
isSortable: true,
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
name: 'releaseDate',
|
||||
label: translate('ReleaseDate'),
|
||||
label: () => translate('ReleaseDate'),
|
||||
isSortable: true,
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
name: 'secondaryTypes',
|
||||
label: translate('SecondaryTypes'),
|
||||
label: () => translate('SecondaryTypes'),
|
||||
isSortable: true,
|
||||
isVisible: false
|
||||
},
|
||||
{
|
||||
name: 'mediumCount',
|
||||
label: translate('MediaCount'),
|
||||
label: () => translate('MediaCount'),
|
||||
isVisible: false
|
||||
},
|
||||
{
|
||||
name: 'trackCount',
|
||||
label: translate('TrackCount'),
|
||||
label: () => translate('TrackCount'),
|
||||
isVisible: false
|
||||
},
|
||||
{
|
||||
name: 'duration',
|
||||
label: translate('Duration'),
|
||||
label: () => translate('Duration'),
|
||||
isSortable: true,
|
||||
isVisible: false
|
||||
},
|
||||
{
|
||||
name: 'rating',
|
||||
label: translate('Rating'),
|
||||
label: () => translate('Rating'),
|
||||
isSortable: true,
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
name: 'status',
|
||||
label: translate('Status'),
|
||||
label: () => translate('Status'),
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
name: 'actions',
|
||||
columnLabel: translate('Actions'),
|
||||
columnLabel: () => translate('Actions'),
|
||||
isVisible: true,
|
||||
isModifiable: false
|
||||
}
|
||||
|
|
|
@ -32,41 +32,41 @@ export const defaultState = {
|
|||
filterBuilderProps: [
|
||||
{
|
||||
name: 'monitored',
|
||||
label: translate('Monitored'),
|
||||
label: () => translate('Monitored'),
|
||||
type: filterBuilderTypes.EXACT,
|
||||
valueType: filterBuilderValueTypes.BOOL
|
||||
},
|
||||
{
|
||||
name: 'status',
|
||||
label: translate('Status'),
|
||||
label: () => translate('Status'),
|
||||
type: filterBuilderTypes.EXACT,
|
||||
valueType: filterBuilderValueTypes.ARTIST_STATUS
|
||||
},
|
||||
{
|
||||
name: 'artistType',
|
||||
label: translate('ArtistType'),
|
||||
label: () => translate('ArtistType'),
|
||||
type: filterBuilderTypes.EXACT
|
||||
},
|
||||
{
|
||||
name: 'qualityProfileId',
|
||||
label: translate('QualityProfile'),
|
||||
label: () => translate('QualityProfile'),
|
||||
type: filterBuilderTypes.EXACT,
|
||||
valueType: filterBuilderValueTypes.QUALITY_PROFILE
|
||||
},
|
||||
{
|
||||
name: 'metadataProfileId',
|
||||
label: translate('MetadataProfile'),
|
||||
label: () => translate('MetadataProfile'),
|
||||
type: filterBuilderTypes.EXACT,
|
||||
valueType: filterBuilderValueTypes.METADATA_PROFILE
|
||||
},
|
||||
{
|
||||
name: 'rootFolderPath',
|
||||
label: translate('RootFolderPath'),
|
||||
label: () => translate('RootFolderPath'),
|
||||
type: filterBuilderTypes.EXACT
|
||||
},
|
||||
{
|
||||
name: 'tags',
|
||||
label: translate('Tags'),
|
||||
label: () => translate('Tags'),
|
||||
type: filterBuilderTypes.ARRAY,
|
||||
valueType: filterBuilderValueTypes.TAG
|
||||
}
|
||||
|
|
|
@ -21,12 +21,12 @@ export const section = 'artist';
|
|||
export const filters = [
|
||||
{
|
||||
key: 'all',
|
||||
label: translate('All'),
|
||||
label: () => translate('All'),
|
||||
filters: []
|
||||
},
|
||||
{
|
||||
key: 'monitored',
|
||||
label: translate('MonitoredOnly'),
|
||||
label: () => translate('MonitoredOnly'),
|
||||
filters: [
|
||||
{
|
||||
key: 'monitored',
|
||||
|
@ -37,7 +37,7 @@ export const filters = [
|
|||
},
|
||||
{
|
||||
key: 'unmonitored',
|
||||
label: translate('UnmonitoredOnly'),
|
||||
label: () => translate('UnmonitoredOnly'),
|
||||
filters: [
|
||||
{
|
||||
key: 'monitored',
|
||||
|
@ -48,7 +48,7 @@ export const filters = [
|
|||
},
|
||||
{
|
||||
key: 'continuing',
|
||||
label: translate('ContinuingOnly'),
|
||||
label: () => translate('ContinuingOnly'),
|
||||
filters: [
|
||||
{
|
||||
key: 'status',
|
||||
|
@ -59,7 +59,7 @@ export const filters = [
|
|||
},
|
||||
{
|
||||
key: 'ended',
|
||||
label: translate('EndedOnly'),
|
||||
label: () => translate('EndedOnly'),
|
||||
filters: [
|
||||
{
|
||||
key: 'status',
|
||||
|
@ -70,7 +70,7 @@ export const filters = [
|
|||
},
|
||||
{
|
||||
key: 'missing',
|
||||
label: translate('MissingTracks'),
|
||||
label: () => translate('MissingTracks'),
|
||||
filters: [
|
||||
{
|
||||
key: 'missing',
|
||||
|
|
|
@ -35,50 +35,50 @@ export const defaultState = {
|
|||
columns: [
|
||||
{
|
||||
name: 'status',
|
||||
columnLabel: translate('Status'),
|
||||
columnLabel: () => translate('Status'),
|
||||
isSortable: true,
|
||||
isVisible: true,
|
||||
isModifiable: false
|
||||
},
|
||||
{
|
||||
name: 'sortName',
|
||||
label: translate('Name'),
|
||||
label: () => translate('Name'),
|
||||
isSortable: true,
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
name: 'monitorNewItems',
|
||||
label: translate('MonitorNewItems'),
|
||||
label: () => translate('MonitorNewItems'),
|
||||
isSortable: true,
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
name: 'qualityProfileId',
|
||||
label: translate('QualityProfile'),
|
||||
label: () => translate('QualityProfile'),
|
||||
isSortable: true,
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
name: 'metadataProfileId',
|
||||
label: translate('MetadataProfile'),
|
||||
label: () => translate('MetadataProfile'),
|
||||
isSortable: true,
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
name: 'path',
|
||||
label: translate('Path'),
|
||||
label: () => translate('Path'),
|
||||
isSortable: true,
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
name: 'sizeOnDisk',
|
||||
label: translate('SizeOnDisk'),
|
||||
label: () => translate('SizeOnDisk'),
|
||||
isSortable: true,
|
||||
isVisible: false
|
||||
},
|
||||
{
|
||||
name: 'tags',
|
||||
label: translate('Tags'),
|
||||
label: () => translate('Tags'),
|
||||
isSortable: true,
|
||||
isVisible: true
|
||||
}
|
||||
|
@ -87,47 +87,47 @@ export const defaultState = {
|
|||
filterBuilderProps: [
|
||||
{
|
||||
name: 'monitored',
|
||||
label: translate('Monitored'),
|
||||
label: () => translate('Monitored'),
|
||||
type: filterBuilderTypes.EXACT,
|
||||
valueType: filterBuilderValueTypes.BOOL
|
||||
},
|
||||
{
|
||||
name: 'status',
|
||||
label: translate('Status'),
|
||||
label: () => translate('Status'),
|
||||
type: filterBuilderTypes.EXACT,
|
||||
valueType: filterBuilderValueTypes.ARTIST_STATUS
|
||||
},
|
||||
{
|
||||
name: 'qualityProfileId',
|
||||
label: translate('QualityProfile'),
|
||||
label: () => translate('QualityProfile'),
|
||||
type: filterBuilderTypes.EXACT,
|
||||
valueType: filterBuilderValueTypes.QUALITY_PROFILE
|
||||
},
|
||||
{
|
||||
name: 'metadataProfileId',
|
||||
label: translate('MetadataProfile'),
|
||||
label: () => translate('MetadataProfile'),
|
||||
type: filterBuilderTypes.EXACT,
|
||||
valueType: filterBuilderValueTypes.METADATA_PROFILE
|
||||
},
|
||||
{
|
||||
name: 'path',
|
||||
label: translate('Path'),
|
||||
label: () => translate('Path'),
|
||||
type: filterBuilderTypes.STRING
|
||||
},
|
||||
{
|
||||
name: 'rootFolderPath',
|
||||
label: translate('RootFolderPath'),
|
||||
label: () => translate('RootFolderPath'),
|
||||
type: filterBuilderTypes.EXACT
|
||||
},
|
||||
{
|
||||
name: 'sizeOnDisk',
|
||||
label: translate('SizeOnDisk'),
|
||||
label: () => translate('SizeOnDisk'),
|
||||
type: filterBuilderTypes.NUMBER,
|
||||
valueType: filterBuilderValueTypes.BYTES
|
||||
},
|
||||
{
|
||||
name: 'tags',
|
||||
label: translate('Tags'),
|
||||
label: () => translate('Tags'),
|
||||
type: filterBuilderTypes.ARRAY,
|
||||
valueType: filterBuilderValueTypes.TAG
|
||||
}
|
||||
|
|
|
@ -63,105 +63,105 @@ export const defaultState = {
|
|||
columns: [
|
||||
{
|
||||
name: 'status',
|
||||
columnLabel: translate('Status'),
|
||||
columnLabel: () => translate('Status'),
|
||||
isSortable: true,
|
||||
isVisible: true,
|
||||
isModifiable: false
|
||||
},
|
||||
{
|
||||
name: 'sortName',
|
||||
label: translate('ArtistName'),
|
||||
label: () => translate('ArtistName'),
|
||||
isSortable: true,
|
||||
isVisible: true,
|
||||
isModifiable: false
|
||||
},
|
||||
{
|
||||
name: 'artistType',
|
||||
label: translate('Type'),
|
||||
label: () => translate('Type'),
|
||||
isSortable: true,
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
name: 'qualityProfileId',
|
||||
label: translate('QualityProfile'),
|
||||
label: () => translate('QualityProfile'),
|
||||
isSortable: true,
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
name: 'metadataProfileId',
|
||||
label: translate('MetadataProfile'),
|
||||
label: () => translate('MetadataProfile'),
|
||||
isSortable: true,
|
||||
isVisible: false
|
||||
},
|
||||
{
|
||||
name: 'nextAlbum',
|
||||
label: translate('NextAlbum'),
|
||||
label: () => translate('NextAlbum'),
|
||||
isSortable: true,
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
name: 'lastAlbum',
|
||||
label: translate('LastAlbum'),
|
||||
label: () => translate('LastAlbum'),
|
||||
isSortable: true,
|
||||
isVisible: false
|
||||
},
|
||||
{
|
||||
name: 'added',
|
||||
label: translate('Added'),
|
||||
label: () => translate('Added'),
|
||||
isSortable: true,
|
||||
isVisible: false
|
||||
},
|
||||
{
|
||||
name: 'albumCount',
|
||||
label: translate('Albums'),
|
||||
label: () => translate('Albums'),
|
||||
isSortable: true,
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
name: 'trackProgress',
|
||||
label: translate('Tracks'),
|
||||
label: () => translate('Tracks'),
|
||||
isSortable: true,
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
name: 'trackCount',
|
||||
label: translate('TrackCount'),
|
||||
label: () => translate('TrackCount'),
|
||||
isSortable: true,
|
||||
isVisible: false
|
||||
},
|
||||
{
|
||||
name: 'path',
|
||||
label: translate('Path'),
|
||||
label: () => translate('Path'),
|
||||
isSortable: true,
|
||||
isVisible: false
|
||||
},
|
||||
{
|
||||
name: 'sizeOnDisk',
|
||||
label: translate('SizeOnDisk'),
|
||||
label: () => translate('SizeOnDisk'),
|
||||
isSortable: true,
|
||||
isVisible: false
|
||||
},
|
||||
{
|
||||
name: 'genres',
|
||||
label: translate('Genres'),
|
||||
label: () => translate('Genres'),
|
||||
isSortable: false,
|
||||
isVisible: false
|
||||
},
|
||||
{
|
||||
name: 'ratings',
|
||||
label: translate('Rating'),
|
||||
label: () => translate('Rating'),
|
||||
isSortable: true,
|
||||
isVisible: false
|
||||
},
|
||||
{
|
||||
name: 'tags',
|
||||
label: translate('Tags'),
|
||||
label: () => translate('Tags'),
|
||||
isSortable: true,
|
||||
isVisible: false
|
||||
},
|
||||
{
|
||||
name: 'actions',
|
||||
columnLabel: translate('Actions'),
|
||||
columnLabel: () => translate('Actions'),
|
||||
isVisible: true,
|
||||
isModifiable: false
|
||||
}
|
||||
|
@ -244,70 +244,70 @@ export const defaultState = {
|
|||
filterBuilderProps: [
|
||||
{
|
||||
name: 'monitored',
|
||||
label: translate('Monitored'),
|
||||
label: () => translate('Monitored'),
|
||||
type: filterBuilderTypes.EXACT,
|
||||
valueType: filterBuilderValueTypes.BOOL
|
||||
},
|
||||
{
|
||||
name: 'status',
|
||||
label: translate('Status'),
|
||||
label: () => translate('Status'),
|
||||
type: filterBuilderTypes.EXACT,
|
||||
valueType: filterBuilderValueTypes.ARTIST_STATUS
|
||||
},
|
||||
{
|
||||
name: 'qualityProfileId',
|
||||
label: translate('QualityProfile'),
|
||||
label: () => translate('QualityProfile'),
|
||||
type: filterBuilderTypes.EXACT,
|
||||
valueType: filterBuilderValueTypes.QUALITY_PROFILE
|
||||
},
|
||||
{
|
||||
name: 'metadataProfileId',
|
||||
label: translate('MetadataProfile'),
|
||||
label: () => translate('MetadataProfile'),
|
||||
type: filterBuilderTypes.EXACT,
|
||||
valueType: filterBuilderValueTypes.METADATA_PROFILE
|
||||
},
|
||||
{
|
||||
name: 'nextAlbum',
|
||||
label: translate('NextAlbum'),
|
||||
label: () => translate('NextAlbum'),
|
||||
type: filterBuilderTypes.DATE,
|
||||
valueType: filterBuilderValueTypes.DATE
|
||||
},
|
||||
{
|
||||
name: 'lastAlbum',
|
||||
label: translate('LastAlbum'),
|
||||
label: () => translate('LastAlbum'),
|
||||
type: filterBuilderTypes.DATE,
|
||||
valueType: filterBuilderValueTypes.DATE
|
||||
},
|
||||
{
|
||||
name: 'added',
|
||||
label: translate('Added'),
|
||||
label: () => translate('Added'),
|
||||
type: filterBuilderTypes.DATE,
|
||||
valueType: filterBuilderValueTypes.DATE
|
||||
},
|
||||
{
|
||||
name: 'albumCount',
|
||||
label: translate('AlbumCount'),
|
||||
label: () => translate('AlbumCount'),
|
||||
type: filterBuilderTypes.NUMBER
|
||||
},
|
||||
{
|
||||
name: 'trackProgress',
|
||||
label: translate('TrackProgress'),
|
||||
label: () => translate('TrackProgress'),
|
||||
type: filterBuilderTypes.NUMBER
|
||||
},
|
||||
{
|
||||
name: 'path',
|
||||
label: translate('Path'),
|
||||
label: () => translate('Path'),
|
||||
type: filterBuilderTypes.STRING
|
||||
},
|
||||
{
|
||||
name: 'sizeOnDisk',
|
||||
label: translate('SizeOnDisk'),
|
||||
label: () => translate('SizeOnDisk'),
|
||||
type: filterBuilderTypes.NUMBER,
|
||||
valueType: filterBuilderValueTypes.BYTES
|
||||
},
|
||||
{
|
||||
name: 'genres',
|
||||
label: translate('Genres'),
|
||||
label: () => translate('Genres'),
|
||||
type: filterBuilderTypes.ARRAY,
|
||||
optionsSelector: function(items) {
|
||||
const tagList = items.reduce((acc, artist) => {
|
||||
|
@ -326,12 +326,12 @@ export const defaultState = {
|
|||
},
|
||||
{
|
||||
name: 'ratings',
|
||||
label: translate('Rating'),
|
||||
label: () => translate('Rating'),
|
||||
type: filterBuilderTypes.NUMBER
|
||||
},
|
||||
{
|
||||
name: 'tags',
|
||||
label: translate('Tags'),
|
||||
label: () => translate('Tags'),
|
||||
type: filterBuilderTypes.ARRAY,
|
||||
valueType: filterBuilderValueTypes.TAG
|
||||
}
|
||||
|
|
|
@ -33,19 +33,19 @@ export const defaultState = {
|
|||
columns: [
|
||||
{
|
||||
name: 'artists.sortName',
|
||||
label: translate('ArtistName'),
|
||||
label: () => translate('ArtistName'),
|
||||
isSortable: true,
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
name: 'sourceTitle',
|
||||
label: translate('SourceTitle'),
|
||||
label: () => translate('SourceTitle'),
|
||||
isSortable: true,
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
name: 'quality',
|
||||
label: translate('Quality'),
|
||||
label: () => translate('Quality'),
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
|
@ -56,19 +56,19 @@ export const defaultState = {
|
|||
},
|
||||
{
|
||||
name: 'date',
|
||||
label: translate('Date'),
|
||||
label: () => translate('Date'),
|
||||
isSortable: true,
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
name: 'indexer',
|
||||
label: translate('Indexer'),
|
||||
label: () => translate('Indexer'),
|
||||
isSortable: true,
|
||||
isVisible: false
|
||||
},
|
||||
{
|
||||
name: 'actions',
|
||||
columnLabel: translate('Actions'),
|
||||
columnLabel: () => translate('Actions'),
|
||||
isVisible: true,
|
||||
isModifiable: false
|
||||
}
|
||||
|
|
|
@ -51,7 +51,7 @@ export const defaultState = {
|
|||
filters: [
|
||||
{
|
||||
key: 'all',
|
||||
label: translate('All'),
|
||||
label: () => translate('All'),
|
||||
filters: [
|
||||
{
|
||||
key: 'monitored',
|
||||
|
@ -62,7 +62,7 @@ export const defaultState = {
|
|||
},
|
||||
{
|
||||
key: 'monitored',
|
||||
label: translate('MonitoredOnly'),
|
||||
label: () => translate('MonitoredOnly'),
|
||||
filters: [
|
||||
{
|
||||
key: 'monitored',
|
||||
|
|
|
@ -32,30 +32,30 @@ export const defaultState = {
|
|||
columns: [
|
||||
{
|
||||
name: 'eventType',
|
||||
columnLabel: translate('EventType'),
|
||||
columnLabel: () => translate('EventType'),
|
||||
isVisible: true,
|
||||
isModifiable: false
|
||||
},
|
||||
{
|
||||
name: 'artists.sortName',
|
||||
label: translate('Artist'),
|
||||
label: () => translate('Artist'),
|
||||
isSortable: true,
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
name: 'albums.title',
|
||||
label: translate('AlbumTitle'),
|
||||
label: () => translate('AlbumTitle'),
|
||||
isSortable: true,
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
name: 'trackTitle',
|
||||
label: translate('TrackTitle'),
|
||||
label: () => translate('TrackTitle'),
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
name: 'quality',
|
||||
label: translate('Quality'),
|
||||
label: () => translate('Quality'),
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
|
@ -66,28 +66,28 @@ export const defaultState = {
|
|||
},
|
||||
{
|
||||
name: 'date',
|
||||
label: translate('Date'),
|
||||
label: () => translate('Date'),
|
||||
isSortable: true,
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
name: 'downloadClient',
|
||||
label: translate('DownloadClient'),
|
||||
label: () => translate('DownloadClient'),
|
||||
isVisible: false
|
||||
},
|
||||
{
|
||||
name: 'indexer',
|
||||
label: translate('Indexer'),
|
||||
label: () => translate('Indexer'),
|
||||
isVisible: false
|
||||
},
|
||||
{
|
||||
name: 'releaseGroup',
|
||||
label: translate('ReleaseGroup'),
|
||||
label: () => translate('ReleaseGroup'),
|
||||
isVisible: false
|
||||
},
|
||||
{
|
||||
name: 'sourceTitle',
|
||||
label: translate('SourceTitle'),
|
||||
label: () => translate('SourceTitle'),
|
||||
isVisible: false
|
||||
},
|
||||
{
|
||||
|
@ -106,7 +106,7 @@ export const defaultState = {
|
|||
},
|
||||
{
|
||||
name: 'details',
|
||||
columnLabel: translate('Details'),
|
||||
columnLabel: () => translate('Details'),
|
||||
isVisible: true,
|
||||
isModifiable: false
|
||||
}
|
||||
|
@ -117,12 +117,12 @@ export const defaultState = {
|
|||
filters: [
|
||||
{
|
||||
key: 'all',
|
||||
label: translate('All'),
|
||||
label: () => translate('All'),
|
||||
filters: []
|
||||
},
|
||||
{
|
||||
key: 'grabbed',
|
||||
label: translate('Grabbed'),
|
||||
label: () => translate('Grabbed'),
|
||||
filters: [
|
||||
{
|
||||
key: 'eventType',
|
||||
|
@ -133,7 +133,7 @@ export const defaultState = {
|
|||
},
|
||||
{
|
||||
key: 'trackFileImported',
|
||||
label: translate('TrackImported'),
|
||||
label: () => translate('TrackImported'),
|
||||
filters: [
|
||||
{
|
||||
key: 'eventType',
|
||||
|
@ -144,7 +144,7 @@ export const defaultState = {
|
|||
},
|
||||
{
|
||||
key: 'failed',
|
||||
label: translate('DownloadFailed'),
|
||||
label: () => translate('DownloadFailed'),
|
||||
filters: [
|
||||
{
|
||||
key: 'eventType',
|
||||
|
@ -155,7 +155,7 @@ export const defaultState = {
|
|||
},
|
||||
{
|
||||
key: 'importFailed',
|
||||
label: translate('ImportFailed'),
|
||||
label: () => translate('ImportFailed'),
|
||||
filters: [
|
||||
{
|
||||
key: 'eventType',
|
||||
|
@ -166,7 +166,7 @@ export const defaultState = {
|
|||
},
|
||||
{
|
||||
key: 'downloadImported',
|
||||
label: translate('DownloadImported'),
|
||||
label: () => translate('DownloadImported'),
|
||||
filters: [
|
||||
{
|
||||
key: 'eventType',
|
||||
|
@ -177,7 +177,7 @@ export const defaultState = {
|
|||
},
|
||||
{
|
||||
key: 'deleted',
|
||||
label: translate('Deleted'),
|
||||
label: () => translate('Deleted'),
|
||||
filters: [
|
||||
{
|
||||
key: 'eventType',
|
||||
|
@ -188,7 +188,7 @@ export const defaultState = {
|
|||
},
|
||||
{
|
||||
key: 'renamed',
|
||||
label: translate('Renamed'),
|
||||
label: () => translate('Renamed'),
|
||||
filters: [
|
||||
{
|
||||
key: 'eventType',
|
||||
|
@ -199,7 +199,7 @@ export const defaultState = {
|
|||
},
|
||||
{
|
||||
key: 'retagged',
|
||||
label: translate('Retagged'),
|
||||
label: () => translate('Retagged'),
|
||||
filters: [
|
||||
{
|
||||
key: 'eventType',
|
||||
|
@ -210,7 +210,7 @@ export const defaultState = {
|
|||
},
|
||||
{
|
||||
key: 'ignored',
|
||||
label: translate('Ignored'),
|
||||
label: () => translate('Ignored'),
|
||||
filters: [
|
||||
{
|
||||
key: 'eventType',
|
||||
|
|
|
@ -60,32 +60,32 @@ export const defaultState = {
|
|||
columns: [
|
||||
{
|
||||
name: 'status',
|
||||
columnLabel: translate('Status'),
|
||||
columnLabel: () => translate('Status'),
|
||||
isSortable: true,
|
||||
isVisible: true,
|
||||
isModifiable: false
|
||||
},
|
||||
{
|
||||
name: 'artists.sortName',
|
||||
label: translate('Artist'),
|
||||
label: () => translate('Artist'),
|
||||
isSortable: true,
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
name: 'albums.title',
|
||||
label: translate('AlbumTitle'),
|
||||
label: () => translate('AlbumTitle'),
|
||||
isSortable: true,
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
name: 'albums.releaseDate',
|
||||
label: translate('AlbumReleaseDate'),
|
||||
label: () => translate('AlbumReleaseDate'),
|
||||
isSortable: true,
|
||||
isVisible: false
|
||||
},
|
||||
{
|
||||
name: 'quality',
|
||||
label: translate('Quality'),
|
||||
label: () => translate('Quality'),
|
||||
isSortable: true,
|
||||
isVisible: true
|
||||
},
|
||||
|
@ -97,7 +97,7 @@ export const defaultState = {
|
|||
},
|
||||
{
|
||||
name: 'customFormatScore',
|
||||
columnLabel: translate('CustomFormatScore'),
|
||||
columnLabel: () => translate('CustomFormatScore'),
|
||||
label: React.createElement(Icon, {
|
||||
name: icons.SCORE,
|
||||
title: () => translate('CustomFormatScore')
|
||||
|
@ -106,55 +106,55 @@ export const defaultState = {
|
|||
},
|
||||
{
|
||||
name: 'protocol',
|
||||
label: translate('Protocol'),
|
||||
label: () => translate('Protocol'),
|
||||
isSortable: true,
|
||||
isVisible: false
|
||||
},
|
||||
{
|
||||
name: 'indexer',
|
||||
label: translate('Indexer'),
|
||||
label: () => translate('Indexer'),
|
||||
isSortable: true,
|
||||
isVisible: false
|
||||
},
|
||||
{
|
||||
name: 'downloadClient',
|
||||
label: translate('DownloadClient'),
|
||||
label: () => translate('DownloadClient'),
|
||||
isSortable: true,
|
||||
isVisible: false
|
||||
},
|
||||
{
|
||||
name: 'title',
|
||||
label: translate('ReleaseTitle'),
|
||||
label: () => translate('ReleaseTitle'),
|
||||
isSortable: true,
|
||||
isVisible: false
|
||||
},
|
||||
{
|
||||
name: 'size',
|
||||
label: translate('Size'),
|
||||
label: () => translate('Size'),
|
||||
isSortable: true,
|
||||
isVisibile: false
|
||||
},
|
||||
{
|
||||
name: 'outputPath',
|
||||
label: translate('OutputPath'),
|
||||
label: () => translate('OutputPath'),
|
||||
isSortable: false,
|
||||
isVisible: false
|
||||
},
|
||||
{
|
||||
name: 'estimatedCompletionTime',
|
||||
label: translate('TimeLeft'),
|
||||
label: () => translate('TimeLeft'),
|
||||
isSortable: true,
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
name: 'progress',
|
||||
label: translate('Progress'),
|
||||
label: () => translate('Progress'),
|
||||
isSortable: true,
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
name: 'actions',
|
||||
columnLabel: translate('Actions'),
|
||||
columnLabel: () => translate('Actions'),
|
||||
isVisible: true,
|
||||
isModifiable: false
|
||||
}
|
||||
|
|
|
@ -52,12 +52,12 @@ export const defaultState = {
|
|||
filters: [
|
||||
{
|
||||
key: 'all',
|
||||
label: translate('All'),
|
||||
label: () => translate('All'),
|
||||
filters: []
|
||||
},
|
||||
{
|
||||
key: 'discography-pack',
|
||||
label: translate('Discography'),
|
||||
label: () => translate('Discography'),
|
||||
filters: [
|
||||
{
|
||||
key: 'discography',
|
||||
|
@ -68,7 +68,7 @@ export const defaultState = {
|
|||
},
|
||||
{
|
||||
key: 'not-discography-pack',
|
||||
label: translate('NotDiscography'),
|
||||
label: () => translate('NotDiscography'),
|
||||
filters: [
|
||||
{
|
||||
key: 'discography',
|
||||
|
@ -155,56 +155,56 @@ export const defaultState = {
|
|||
filterBuilderProps: [
|
||||
{
|
||||
name: 'title',
|
||||
label: translate('Title'),
|
||||
label: () => translate('Title'),
|
||||
type: filterBuilderTypes.STRING
|
||||
},
|
||||
{
|
||||
name: 'age',
|
||||
label: translate('Age'),
|
||||
label: () => translate('Age'),
|
||||
type: filterBuilderTypes.NUMBER
|
||||
},
|
||||
{
|
||||
name: 'protocol',
|
||||
label: translate('Protocol'),
|
||||
label: () => translate('Protocol'),
|
||||
type: filterBuilderTypes.EXACT,
|
||||
valueType: filterBuilderValueTypes.PROTOCOL
|
||||
},
|
||||
{
|
||||
name: 'indexerId',
|
||||
label: translate('Indexer'),
|
||||
label: () => translate('Indexer'),
|
||||
type: filterBuilderTypes.EXACT,
|
||||
valueType: filterBuilderValueTypes.INDEXER
|
||||
},
|
||||
{
|
||||
name: 'size',
|
||||
label: translate('Size'),
|
||||
label: () => translate('Size'),
|
||||
type: filterBuilderTypes.NUMBER,
|
||||
valueType: filterBuilderValueTypes.BYTES
|
||||
},
|
||||
{
|
||||
name: 'seeders',
|
||||
label: translate('Seeders'),
|
||||
label: () => translate('Seeders'),
|
||||
type: filterBuilderTypes.NUMBER
|
||||
},
|
||||
{
|
||||
name: 'leechers',
|
||||
label: translate('Peers'),
|
||||
label: () => translate('Peers'),
|
||||
type: filterBuilderTypes.NUMBER
|
||||
},
|
||||
{
|
||||
name: 'quality',
|
||||
label: translate('Quality'),
|
||||
label: () => translate('Quality'),
|
||||
type: filterBuilderTypes.EXACT,
|
||||
valueType: filterBuilderValueTypes.QUALITY
|
||||
},
|
||||
{
|
||||
name: 'customFormatScore',
|
||||
label: translate('CustomFormatScore'),
|
||||
label: () => translate('CustomFormatScore'),
|
||||
type: filterBuilderTypes.NUMBER
|
||||
},
|
||||
{
|
||||
name: 'rejectionCount',
|
||||
label: translate('RejectionCount'),
|
||||
label: () => translate('RejectionCount'),
|
||||
type: filterBuilderTypes.NUMBER
|
||||
}
|
||||
],
|
||||
|
|
|
@ -82,34 +82,34 @@ export const defaultState = {
|
|||
columns: [
|
||||
{
|
||||
name: 'level',
|
||||
columnLabel: translate('Level'),
|
||||
columnLabel: () => translate('Level'),
|
||||
isSortable: false,
|
||||
isVisible: true,
|
||||
isModifiable: false
|
||||
},
|
||||
{
|
||||
name: 'time',
|
||||
label: translate('Time'),
|
||||
label: () => translate('Time'),
|
||||
isSortable: true,
|
||||
isVisible: true,
|
||||
isModifiable: false
|
||||
},
|
||||
{
|
||||
name: 'logger',
|
||||
label: translate('Component'),
|
||||
label: () => translate('Component'),
|
||||
isSortable: false,
|
||||
isVisible: true,
|
||||
isModifiable: false
|
||||
},
|
||||
{
|
||||
name: 'message',
|
||||
label: translate('Message'),
|
||||
label: () => translate('Message'),
|
||||
isVisible: true,
|
||||
isModifiable: false
|
||||
},
|
||||
{
|
||||
name: 'actions',
|
||||
columnLabel: translate('Actions'),
|
||||
columnLabel: () => translate('Actions'),
|
||||
isSortable: true,
|
||||
isVisible: true,
|
||||
isModifiable: false
|
||||
|
@ -121,12 +121,12 @@ export const defaultState = {
|
|||
filters: [
|
||||
{
|
||||
key: 'all',
|
||||
label: translate('All'),
|
||||
label: () => translate('All'),
|
||||
filters: []
|
||||
},
|
||||
{
|
||||
key: 'info',
|
||||
label: translate('Info'),
|
||||
label: () => translate('Info'),
|
||||
filters: [
|
||||
{
|
||||
key: 'level',
|
||||
|
@ -137,7 +137,7 @@ export const defaultState = {
|
|||
},
|
||||
{
|
||||
key: 'warn',
|
||||
label: translate('Warn'),
|
||||
label: () => translate('Warn'),
|
||||
filters: [
|
||||
{
|
||||
key: 'level',
|
||||
|
@ -148,7 +148,7 @@ export const defaultState = {
|
|||
},
|
||||
{
|
||||
key: 'error',
|
||||
label: translate('Error'),
|
||||
label: () => translate('Error'),
|
||||
filters: [
|
||||
{
|
||||
key: 'level',
|
||||
|
|
|
@ -30,32 +30,32 @@ export const defaultState = {
|
|||
columns: [
|
||||
{
|
||||
name: 'medium',
|
||||
label: translate('Medium'),
|
||||
label: () => translate('Medium'),
|
||||
isVisible: false
|
||||
},
|
||||
{
|
||||
name: 'absoluteTrackNumber',
|
||||
label: translate('Track'),
|
||||
label: () => translate('Track'),
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
name: 'title',
|
||||
label: translate('Title'),
|
||||
label: () => translate('Title'),
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
name: 'path',
|
||||
label: translate('Path'),
|
||||
label: () => translate('Path'),
|
||||
isVisible: false
|
||||
},
|
||||
{
|
||||
name: 'duration',
|
||||
label: translate('Duration'),
|
||||
label: () => translate('Duration'),
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
name: 'audioInfo',
|
||||
label: translate('AudioInfo'),
|
||||
label: () => translate('AudioInfo'),
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
|
@ -65,7 +65,7 @@ export const defaultState = {
|
|||
},
|
||||
{
|
||||
name: 'customFormatScore',
|
||||
columnLabel: translate('CustomFormatScore'),
|
||||
columnLabel: () => translate('CustomFormatScore'),
|
||||
label: React.createElement(Icon, {
|
||||
name: icons.SCORE,
|
||||
title: () => translate('CustomFormatScore')
|
||||
|
@ -74,12 +74,12 @@ export const defaultState = {
|
|||
},
|
||||
{
|
||||
name: 'status',
|
||||
label: translate('Status'),
|
||||
label: () => translate('Status'),
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
name: 'actions',
|
||||
columnLabel: translate('Actions'),
|
||||
columnLabel: () => translate('Actions'),
|
||||
isVisible: true,
|
||||
isModifiable: false
|
||||
}
|
||||
|
|
|
@ -52,32 +52,32 @@ export const defaultState = {
|
|||
},
|
||||
{
|
||||
name: 'path',
|
||||
label: translate('Path'),
|
||||
label: () => translate('Path'),
|
||||
isSortable: true,
|
||||
isVisible: true,
|
||||
isModifiable: false
|
||||
},
|
||||
{
|
||||
name: 'size',
|
||||
label: translate('Size'),
|
||||
label: () => translate('Size'),
|
||||
isSortable: true,
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
name: 'dateAdded',
|
||||
label: translate('DateAdded'),
|
||||
label: () => translate('DateAdded'),
|
||||
isSortable: true,
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
name: 'quality',
|
||||
label: translate('Quality'),
|
||||
label: () => translate('Quality'),
|
||||
isSortable: true,
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
name: 'actions',
|
||||
columnLabel: translate('Actions'),
|
||||
columnLabel: () => translate('Actions'),
|
||||
isVisible: true,
|
||||
isModifiable: false
|
||||
}
|
||||
|
|
|
@ -30,25 +30,25 @@ export const defaultState = {
|
|||
columns: [
|
||||
{
|
||||
name: 'artists.sortName',
|
||||
label: translate('ArtistName'),
|
||||
label: () => translate('ArtistName'),
|
||||
isSortable: true,
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
name: 'albums.title',
|
||||
label: translate('AlbumTitle'),
|
||||
label: () => translate('AlbumTitle'),
|
||||
isSortable: true,
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
name: 'albumType',
|
||||
label: translate('AlbumType'),
|
||||
label: () => translate('AlbumType'),
|
||||
isSortable: true,
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
name: 'releaseDate',
|
||||
label: translate('ReleaseDate'),
|
||||
label: () => translate('ReleaseDate'),
|
||||
isSortable: true,
|
||||
isVisible: true
|
||||
},
|
||||
|
@ -59,7 +59,7 @@ export const defaultState = {
|
|||
// },
|
||||
{
|
||||
name: 'actions',
|
||||
columnLabel: translate('Actions'),
|
||||
columnLabel: () => translate('Actions'),
|
||||
isVisible: true,
|
||||
isModifiable: false
|
||||
}
|
||||
|
@ -70,7 +70,7 @@ export const defaultState = {
|
|||
filters: [
|
||||
{
|
||||
key: 'monitored',
|
||||
label: translate('Monitored'),
|
||||
label: () => translate('Monitored'),
|
||||
filters: [
|
||||
{
|
||||
key: 'monitored',
|
||||
|
@ -81,7 +81,7 @@ export const defaultState = {
|
|||
},
|
||||
{
|
||||
key: 'unmonitored',
|
||||
label: translate('Unmonitored'),
|
||||
label: () => translate('Unmonitored'),
|
||||
filters: [
|
||||
{
|
||||
key: 'monitored',
|
||||
|
@ -104,25 +104,25 @@ export const defaultState = {
|
|||
columns: [
|
||||
{
|
||||
name: 'artists.sortName',
|
||||
label: translate('ArtistName'),
|
||||
label: () => translate('ArtistName'),
|
||||
isSortable: true,
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
name: 'albums.title',
|
||||
label: translate('AlbumTitle'),
|
||||
label: () => translate('AlbumTitle'),
|
||||
isSortable: true,
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
name: 'albumType',
|
||||
label: translate('AlbumType'),
|
||||
label: () => translate('AlbumType'),
|
||||
isSortable: true,
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
name: 'releaseDate',
|
||||
label: translate('ReleaseDate'),
|
||||
label: () => translate('ReleaseDate'),
|
||||
isSortable: true,
|
||||
isVisible: true
|
||||
},
|
||||
|
@ -133,7 +133,7 @@ export const defaultState = {
|
|||
// },
|
||||
{
|
||||
name: 'actions',
|
||||
columnLabel: translate('Actions'),
|
||||
columnLabel: () => translate('Actions'),
|
||||
isVisible: true,
|
||||
isModifiable: false
|
||||
}
|
||||
|
@ -144,7 +144,7 @@ export const defaultState = {
|
|||
filters: [
|
||||
{
|
||||
key: 'monitored',
|
||||
label: translate('Monitored'),
|
||||
label: () => translate('Monitored'),
|
||||
filters: [
|
||||
{
|
||||
key: 'monitored',
|
||||
|
@ -155,7 +155,7 @@ export const defaultState = {
|
|||
},
|
||||
{
|
||||
key: 'unmonitored',
|
||||
label: translate('Unmonitored'),
|
||||
label: () => translate('Unmonitored'),
|
||||
filters: [
|
||||
{
|
||||
key: 'monitored',
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue