New: Default name when adding providers

This commit is contained in:
Bogdan 2023-08-14 02:27:59 +03:00 committed by GitHub
parent 465a584486
commit 16d95ea6bf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
19 changed files with 59 additions and 26 deletions

View File

@ -41,7 +41,7 @@ function EditSpecificationModalContent(props) {
return ( return (
<ModalContent onModalClose={onCancelPress}> <ModalContent onModalClose={onCancelPress}>
<ModalHeader> <ModalHeader>
{`${id ? translate('EditCondition') : translate('AddCondition')} - ${implementationName}`} {id ? translate('EditConditionImplementation', { implementationName }) : translate('AddConditionImplementation', { implementationName })}
</ModalHeader> </ModalHeader>
<ModalBody> <ModalBody>

View File

@ -58,7 +58,7 @@ class EditDownloadClientModalContent extends Component {
return ( return (
<ModalContent onModalClose={onModalClose}> <ModalContent onModalClose={onModalClose}>
<ModalHeader> <ModalHeader>
{`${id ? translate('Edit') : translate('Add')} ${translate('DownloadClient')} - ${implementationName}`} {id ? translate('EditDownloadClientImplementation', { implementationName }) : translate('AddDownloadClientImplementation', { implementationName })}
</ModalHeader> </ModalHeader>
<ModalBody> <ModalBody>

View File

@ -16,10 +16,12 @@ class AddImportListItem extends Component {
onImportListSelect = () => { onImportListSelect = () => {
const { const {
implementation implementation,
implementationName,
minRefreshInterval
} = this.props; } = this.props;
this.props.onImportListSelect({ implementation }); this.props.onImportListSelect({ implementation, implementationName, minRefreshInterval });
}; };
// //
@ -29,6 +31,7 @@ class AddImportListItem extends Component {
const { const {
implementation, implementation,
implementationName, implementationName,
minRefreshInterval,
infoLink, infoLink,
presets, presets,
onImportListSelect onImportListSelect
@ -56,7 +59,7 @@ class AddImportListItem extends Component {
<span> <span>
<Button <Button
size={sizes.SMALL} size={sizes.SMALL}
onPress={this.onListSelect} onPress={this.onImportListSelect}
> >
{translate('Custom')} {translate('Custom')}
</Button> </Button>
@ -77,6 +80,8 @@ class AddImportListItem extends Component {
key={preset.name} key={preset.name}
name={preset.name} name={preset.name}
implementation={implementation} implementation={implementation}
implementationName={implementationName}
minRefreshInterval={minRefreshInterval}
onPress={onImportListSelect} onPress={onImportListSelect}
/> />
); );
@ -103,6 +108,7 @@ class AddImportListItem extends Component {
AddImportListItem.propTypes = { AddImportListItem.propTypes = {
implementation: PropTypes.string.isRequired, implementation: PropTypes.string.isRequired,
implementationName: PropTypes.string.isRequired, implementationName: PropTypes.string.isRequired,
minRefreshInterval: PropTypes.string.isRequired,
infoLink: PropTypes.string.isRequired, infoLink: PropTypes.string.isRequired,
presets: PropTypes.arrayOf(PropTypes.object), presets: PropTypes.arrayOf(PropTypes.object),
onImportListSelect: PropTypes.func.isRequired onImportListSelect: PropTypes.func.isRequired

View File

@ -49,8 +49,8 @@ class AddImportListModalContentConnector extends Component {
// //
// Listeners // Listeners
onImportListSelect = ({ implementation, name }) => { onImportListSelect = ({ implementation, implementationName, name, minRefreshInterval }) => {
this.props.selectImportListSchema({ implementation, presetName: name }); this.props.selectImportListSchema({ implementation, implementationName, presetName: name, minRefreshInterval });
this.props.onModalClose({ listSelected: true }); this.props.onModalClose({ listSelected: true });
}; };

View File

@ -10,12 +10,16 @@ class AddImportListPresetMenuItem extends Component {
onPress = () => { onPress = () => {
const { const {
name, name,
implementation implementation,
implementationName,
minRefreshInterval
} = this.props; } = this.props;
this.props.onPress({ this.props.onPress({
name, name,
implementation implementation,
implementationName,
minRefreshInterval
}); });
}; };
@ -26,6 +30,8 @@ class AddImportListPresetMenuItem extends Component {
const { const {
name, name,
implementation, implementation,
implementationName,
minRefreshInterval,
...otherProps ...otherProps
} = this.props; } = this.props;
@ -43,6 +49,8 @@ class AddImportListPresetMenuItem extends Component {
AddImportListPresetMenuItem.propTypes = { AddImportListPresetMenuItem.propTypes = {
name: PropTypes.string.isRequired, name: PropTypes.string.isRequired,
implementation: PropTypes.string.isRequired, implementation: PropTypes.string.isRequired,
implementationName: PropTypes.string.isRequired,
minRefreshInterval: PropTypes.string.isRequired,
onPress: PropTypes.func.isRequired onPress: PropTypes.func.isRequired
}; };

View File

@ -43,6 +43,7 @@ function EditImportListModalContent(props) {
const { const {
id, id,
implementationName,
name, name,
enableAutomaticAdd, enableAutomaticAdd,
minRefreshInterval, minRefreshInterval,
@ -58,7 +59,7 @@ function EditImportListModalContent(props) {
return ( return (
<ModalContent onModalClose={onModalClose}> <ModalContent onModalClose={onModalClose}>
<ModalHeader> <ModalHeader>
{id ? translate('EditImportList') : translate('AddImportList')} {id ? translate('EditImportListImplementation', { implementationName }) : translate('AddImportListImplementation', { implementationName })}
</ModalHeader> </ModalHeader>
<ModalBody> <ModalBody>

View File

@ -16,10 +16,11 @@ class AddIndexerItem extends Component {
onIndexerSelect = () => { onIndexerSelect = () => {
const { const {
implementation implementation,
implementationName
} = this.props; } = this.props;
this.props.onIndexerSelect({ implementation }); this.props.onIndexerSelect({ implementation, implementationName });
}; };
// //
@ -77,6 +78,7 @@ class AddIndexerItem extends Component {
key={preset.name} key={preset.name}
name={preset.name} name={preset.name}
implementation={implementation} implementation={implementation}
implementationName={implementationName}
onPress={onIndexerSelect} onPress={onIndexerSelect}
/> />
); );

View File

@ -48,8 +48,8 @@ class AddIndexerModalContentConnector extends Component {
// //
// Listeners // Listeners
onIndexerSelect = ({ implementation, name }) => { onIndexerSelect = ({ implementation, implementationName, name }) => {
this.props.selectIndexerSchema({ implementation, presetName: name }); this.props.selectIndexerSchema({ implementation, implementationName, presetName: name });
this.props.onModalClose({ indexerSelected: true }); this.props.onModalClose({ indexerSelected: true });
}; };

View File

@ -10,12 +10,14 @@ class AddIndexerPresetMenuItem extends Component {
onPress = () => { onPress = () => {
const { const {
name, name,
implementation implementation,
implementationName
} = this.props; } = this.props;
this.props.onPress({ this.props.onPress({
name, name,
implementation implementation,
implementationName
}); });
}; };
@ -26,6 +28,7 @@ class AddIndexerPresetMenuItem extends Component {
const { const {
name, name,
implementation, implementation,
implementationName,
...otherProps ...otherProps
} = this.props; } = this.props;
@ -43,6 +46,7 @@ class AddIndexerPresetMenuItem extends Component {
AddIndexerPresetMenuItem.propTypes = { AddIndexerPresetMenuItem.propTypes = {
name: PropTypes.string.isRequired, name: PropTypes.string.isRequired,
implementation: PropTypes.string.isRequired, implementation: PropTypes.string.isRequired,
implementationName: PropTypes.string.isRequired,
onPress: PropTypes.func.isRequired onPress: PropTypes.func.isRequired
}; };

View File

@ -56,7 +56,7 @@ function EditIndexerModalContent(props) {
return ( return (
<ModalContent onModalClose={onModalClose}> <ModalContent onModalClose={onModalClose}>
<ModalHeader> <ModalHeader>
{`${id ? translate('EditIndexer') : translate('AddIndexer')} - ${implementationName}`} {id ? translate('EditIndexerImplementation', { implementationName }) : translate('AddIndexerImplementation', { implementationName })}
</ModalHeader> </ModalHeader>
<ModalBody> <ModalBody>

View File

@ -28,7 +28,7 @@ class AddNotificationModalContent extends Component {
return ( return (
<ModalContent onModalClose={onModalClose}> <ModalContent onModalClose={onModalClose}>
<ModalHeader> <ModalHeader>
{translate('AddNotification')} {translate('AddConnection')}
</ModalHeader> </ModalHeader>
<ModalBody> <ModalBody>

View File

@ -48,7 +48,7 @@ function EditNotificationModalContent(props) {
return ( return (
<ModalContent onModalClose={onModalClose}> <ModalContent onModalClose={onModalClose}>
<ModalHeader> <ModalHeader>
{`${id ? translate('EditConnection') : translate('AddConnection')} - ${implementationName}`} {id ? translate('EditConnectionImplementation', { implementationName }) : translate('AddConnectionImplementation', { implementationName })}
</ModalHeader> </ModalHeader>
<ModalBody> <ModalBody>

View File

@ -72,7 +72,7 @@ function EditSpecificationModalContent(props) {
return ( return (
<ModalContent onModalClose={onCancelPress}> <ModalContent onModalClose={onCancelPress}>
<ModalHeader> <ModalHeader>
{`${id ? translate('EditCondition') : translate('AddCondition')} - ${implementationName}`} {id ? translate('EditConditionImplementation', { implementationName }) : translate('AddConditionImplementation', { implementationName })}
</ModalHeader> </ModalHeader>
<ModalBody> <ModalBody>

View File

@ -117,6 +117,7 @@ export default {
[SELECT_DOWNLOAD_CLIENT_SCHEMA]: (state, { payload }) => { [SELECT_DOWNLOAD_CLIENT_SCHEMA]: (state, { payload }) => {
return selectProviderSchema(state, section, payload, (selectedSchema) => { return selectProviderSchema(state, section, payload, (selectedSchema) => {
selectedSchema.name = selectedSchema.implementationName;
selectedSchema.enable = true; selectedSchema.enable = true;
return selectedSchema; return selectedSchema;

View File

@ -116,10 +116,14 @@ export default {
[SELECT_IMPORT_LIST_SCHEMA]: (state, { payload }) => { [SELECT_IMPORT_LIST_SCHEMA]: (state, { payload }) => {
return selectProviderSchema(state, section, payload, (selectedSchema) => { return selectProviderSchema(state, section, payload, (selectedSchema) => {
selectedSchema.name = payload.presetName ?? payload.implementationName;
selectedSchema.implementationName = payload.implementationName;
selectedSchema.minRefreshInterval = payload.minRefreshInterval;
selectedSchema.enableAutomaticAdd = true; selectedSchema.enableAutomaticAdd = true;
selectedSchema.shouldMonitor = 'all'; selectedSchema.shouldMonitor = 'all';
selectedSchema.seriesType = 'standard'; selectedSchema.seriesType = 'standard';
selectedSchema.seasonFolder = true; selectedSchema.seasonFolder = true;
selectedSchema.rootFolderPath = '';
return selectedSchema; return selectedSchema;
}); });

View File

@ -121,6 +121,8 @@ export default {
[SELECT_INDEXER_SCHEMA]: (state, { payload }) => { [SELECT_INDEXER_SCHEMA]: (state, { payload }) => {
return selectProviderSchema(state, section, payload, (selectedSchema) => { return selectProviderSchema(state, section, payload, (selectedSchema) => {
selectedSchema.name = payload.presetName ?? payload.implementationName;
selectedSchema.implementationName = payload.implementationName;
selectedSchema.enableRss = selectedSchema.supportsRss; selectedSchema.enableRss = selectedSchema.supportsRss;
selectedSchema.enableAutomaticSearch = selectedSchema.supportsSearch; selectedSchema.enableAutomaticSearch = selectedSchema.supportsSearch;
selectedSchema.enableInteractiveSearch = selectedSchema.supportsSearch; selectedSchema.enableInteractiveSearch = selectedSchema.supportsSearch;

View File

@ -102,6 +102,7 @@ export default {
[SELECT_NOTIFICATION_SCHEMA]: (state, { payload }) => { [SELECT_NOTIFICATION_SCHEMA]: (state, { payload }) => {
return selectProviderSchema(state, section, payload, (selectedSchema) => { return selectProviderSchema(state, section, payload, (selectedSchema) => {
selectedSchema.name = selectedSchema.implementationName;
selectedSchema.onGrab = selectedSchema.supportsOnGrab; selectedSchema.onGrab = selectedSchema.supportsOnGrab;
selectedSchema.onDownload = selectedSchema.supportsOnDownload; selectedSchema.onDownload = selectedSchema.supportsOnDownload;
selectedSchema.onUpgrade = selectedSchema.supportsOnUpgrade; selectedSchema.onUpgrade = selectedSchema.supportsOnUpgrade;

View File

@ -44,7 +44,6 @@ namespace NzbDrone.Core.ImportLists
yield return new ImportListDefinition yield return new ImportListDefinition
{ {
Name = GetType().Name,
EnableAutomaticAdd = config.Validate().IsValid, EnableAutomaticAdd = config.Validate().IsValid,
Implementation = GetType().Name, Implementation = GetType().Name,
Settings = config Settings = config

View File

@ -11,19 +11,24 @@
"AddAutoTagError": "Unable to add a new auto tag, please try again.", "AddAutoTagError": "Unable to add a new auto tag, please try again.",
"AddCondition": "Add Condition", "AddCondition": "Add Condition",
"AddConditionError": "Unable to add a new condition, please try again.", "AddConditionError": "Unable to add a new condition, please try again.",
"AddConditionImplementation": "Add Condition - {implementationName}",
"AddConnection": "Add Connection", "AddConnection": "Add Connection",
"AddConnectionImplementation": "Add Connection - {implementationName}",
"AddCustomFilter": "Add Custom Filter", "AddCustomFilter": "Add Custom Filter",
"AddCustomFormat": "Add Custom Format", "AddCustomFormat": "Add Custom Format",
"AddCustomFormatError": "Unable to add a new custom format, please try again.", "AddCustomFormatError": "Unable to add a new custom format, please try again.",
"AddDelayProfile": "Add Delay Profile", "AddDelayProfile": "Add Delay Profile",
"AddDownloadClient": "Add Download Client", "AddDownloadClient": "Add Download Client",
"AddDownloadClientError": "Unable to add a new download client, please try again.", "AddDownloadClientError": "Unable to add a new download client, please try again.",
"AddDownloadClientImplementation": "Add Download Client - {implementationName}",
"AddExclusion": "Add Exclusion", "AddExclusion": "Add Exclusion",
"AddImportList": "Add Import List", "AddImportList": "Add Import List",
"AddImportListExclusion": "Add Import List Exclusion", "AddImportListExclusion": "Add Import List Exclusion",
"AddImportListExclusionError": "Unable to add a new import list exclusion, please try again.", "AddImportListExclusionError": "Unable to add a new import list exclusion, please try again.",
"AddImportListImplementation": "Add Import List - {implementationName}",
"AddIndexer": "Add Indexer", "AddIndexer": "Add Indexer",
"AddIndexerError": "Unable to add a new indexer, please try again.", "AddIndexerError": "Unable to add a new indexer, please try again.",
"AddIndexerImplementation": "Add Indexer - {implementationName}",
"AddList": "Add List", "AddList": "Add List",
"AddListError": "Unable to add a new list, please try again.", "AddListError": "Unable to add a new list, please try again.",
"AddListExclusionError": "Unable to add a new list exclusion, please try again.", "AddListExclusionError": "Unable to add a new list exclusion, please try again.",
@ -35,7 +40,6 @@
"AddNewSeriesRootFolderHelpText": "'{folder}' subfolder will be created automatically", "AddNewSeriesRootFolderHelpText": "'{folder}' subfolder will be created automatically",
"AddNewSeriesSearchForCutoffUnmetEpisodes": "Start search for cutoff unmet episodes", "AddNewSeriesSearchForCutoffUnmetEpisodes": "Start search for cutoff unmet episodes",
"AddNewSeriesSearchForMissingEpisodes": "Start search for missing episodes", "AddNewSeriesSearchForMissingEpisodes": "Start search for missing episodes",
"AddNotification": "Add Notification",
"AddNotificationError": "Unable to add a new notification, please try again.", "AddNotificationError": "Unable to add a new notification, please try again.",
"AddQualityProfile": "Add Quality Profile", "AddQualityProfile": "Add Quality Profile",
"AddQualityProfileError": "Unable to add a new quality profile, please try again.", "AddQualityProfileError": "Unable to add a new quality profile, please try again.",
@ -329,14 +333,15 @@
"Duration": "Duration", "Duration": "Duration",
"Edit": "Edit", "Edit": "Edit",
"EditAutoTag": "Edit Auto Tag", "EditAutoTag": "Edit Auto Tag",
"EditCondition": "Edit Condition", "EditConditionImplementation": "Edit Condition - {implementationName}",
"EditConnection": "Edit Connection", "EditConnectionImplementation": "Edit Connection - {implementationName}",
"EditCustomFormat": "Edit Custom Format", "EditCustomFormat": "Edit Custom Format",
"EditDelayProfile": "Edit Delay Profile", "EditDelayProfile": "Edit Delay Profile",
"EditDownloadClientImplementation": "Edit Download Client - {implementationName}",
"EditGroups": "Edit Groups", "EditGroups": "Edit Groups",
"EditImportList": "Edit Import List",
"EditImportListExclusion": "Edit Import List Exclusion", "EditImportListExclusion": "Edit Import List Exclusion",
"EditIndexer": "Edit Indexer", "EditImportListImplementation": "Edit Import List - {implementationName}",
"EditIndexerImplementation": "Edit Indexer - {implementationName}",
"EditListExclusion": "Edit List Exclusion", "EditListExclusion": "Edit List Exclusion",
"EditMetadata": "Edit {metadataType} Metadata", "EditMetadata": "Edit {metadataType} Metadata",
"EditQualityProfile": "Edit Quality Profile", "EditQualityProfile": "Edit Quality Profile",