You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Readarr/frontend/src/Settings/Metadata/MetadataProvider/MetadataProvider.js

143 lines
4.3 KiB

import PropTypes from 'prop-types';
import React from 'react';
import FieldSet from 'Components/FieldSet';
import Form from 'Components/Form/Form';
import FormGroup from 'Components/Form/FormGroup';
import FormInputGroup from 'Components/Form/FormInputGroup';
import FormLabel from 'Components/Form/FormLabel';
import LoadingIndicator from 'Components/Loading/LoadingIndicator';
import { inputTypes } from 'Helpers/Props';
import translate from 'Utilities/String/translate';
const writeAudioTagOptions = [
{ key: 'no', value: translate('WriteTagsNo') },
{ key: 'sync', value: translate('WriteTagsSync') },
{ key: 'allFiles', value: translate('WriteTagsAll') },
{ key: 'newFiles', value: translate('WriteTagsNew') }
];
const writeBookTagOptions = [
{ key: 'sync', value: translate('WriteTagsSync') },
{ key: 'allFiles', value: translate('WriteTagsAll') },
{ key: 'newFiles', value: translate('WriteTagsNew') }
];
function MetadataProvider(props) {
const {
isFetching,
error,
settings,
hasSettings,
onInputChange
} = props;
return (
<div>
{
isFetching &&
<LoadingIndicator />
}
{
!isFetching && error &&
<div>
{translate('UnableToLoadMetadataProviderSettings')}
</div>
}
{
hasSettings && !isFetching && !error &&
<Form>
<FieldSet legend={translate('CalibreMetadata')}>
<FormGroup>
<FormLabel>
{translate('SendMetadataToCalibre')}
</FormLabel>
<FormInputGroup
type={inputTypes.SELECT}
name="writeBookTags"
helpTextWarning={translate('WriteBookTagsHelpTextWarning')}
helpLink="https://wiki.servarr.com/readarr/settings#write-metadata-to-book-files"
values={writeBookTagOptions}
onChange={onInputChange}
{...settings.writeBookTags}
/>
</FormGroup>
<FormGroup>
<FormLabel>
{translate('UpdateCovers')}
</FormLabel>
<FormInputGroup
type={inputTypes.CHECK}
name="updateCovers"
helpText={translate('UpdateCoversHelpText')}
onChange={onInputChange}
{...settings.updateCovers}
/>
</FormGroup>
<FormGroup>
<FormLabel>
{translate('EmbedMetadataInBookFiles')}
</FormLabel>
<FormInputGroup
type={inputTypes.CHECK}
name="embedMetadata"
helpText={translate('EmbedMetadataHelpText')}
onChange={onInputChange}
{...settings.embedMetadata}
/>
</FormGroup>
</FieldSet>
<FieldSet legend={translate('AudioFileMetadata')}>
<FormGroup>
<FormLabel>{translate('WriteAudioTags')}</FormLabel>
<FormInputGroup
type={inputTypes.SELECT}
name="writeAudioTags"
helpTextWarning={translate('WriteBookTagsHelpTextWarning')}
helpLink="https://wiki.servarr.com/readarr/settings#write-metadata-to-audio-files"
values={writeAudioTagOptions}
onChange={onInputChange}
{...settings.writeAudioTags}
/>
</FormGroup>
<FormGroup>
<FormLabel>{translate('WriteAudioTagsScrub')}</FormLabel>
<FormInputGroup
type={inputTypes.CHECK}
name="scrubAudioTags"
helpTextWarning={translate('WriteAudioTagsScrubHelp')}
onChange={onInputChange}
{...settings.scrubAudioTags}
/>
</FormGroup>
</FieldSet>
</Form>
}
</div>
);
}
MetadataProvider.propTypes = {
isFetching: PropTypes.bool.isRequired,
error: PropTypes.object,
settings: PropTypes.object.isRequired,
hasSettings: PropTypes.bool.isRequired,
onInputChange: PropTypes.func.isRequired
};
export default MetadataProvider;