mirror of
https://github.com/Readarr/Readarr
synced 2026-05-08 12:42:51 +02:00
New: Advanced settings toggle in indexer edit/add modal
(cherry picked from commit 94a8ef63044f47b615facbb6e04200bdd3797189) Fixes #2506
This commit is contained in:
parent
751ade0338
commit
1a3e5fd738
4 changed files with 40 additions and 12 deletions
|
|
@ -10,13 +10,14 @@ import styles from './AdvancedSettingsButton.css';
|
||||||
function AdvancedSettingsButton(props) {
|
function AdvancedSettingsButton(props) {
|
||||||
const {
|
const {
|
||||||
advancedSettings,
|
advancedSettings,
|
||||||
onAdvancedSettingsPress
|
onAdvancedSettingsPress,
|
||||||
|
showLabel
|
||||||
} = props;
|
} = props;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Link
|
<Link
|
||||||
className={styles.button}
|
className={styles.button}
|
||||||
title={advancedSettings ? translate('AdvancedSettingsShownClickToHide') : translate('AdvancedSettingsHiddenClickToShow')}
|
title={advancedSettings ? translate('ShownClickToHide') : translate('HiddenClickToShow')}
|
||||||
onPress={onAdvancedSettingsPress}
|
onPress={onAdvancedSettingsPress}
|
||||||
>
|
>
|
||||||
<Icon
|
<Icon
|
||||||
|
|
@ -43,18 +44,27 @@ function AdvancedSettingsButton(props) {
|
||||||
/>
|
/>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<div className={styles.labelContainer}>
|
{
|
||||||
<div className={styles.label}>
|
showLabel ?
|
||||||
{advancedSettings ? 'Hide Advanced' : 'Show Advanced'}
|
<div className={styles.labelContainer}>
|
||||||
</div>
|
<div className={styles.label}>
|
||||||
</div>
|
{advancedSettings ? translate('HideAdvanced') : translate('ShowAdvanced')}
|
||||||
|
</div>
|
||||||
|
</div> :
|
||||||
|
null
|
||||||
|
}
|
||||||
</Link>
|
</Link>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
AdvancedSettingsButton.propTypes = {
|
AdvancedSettingsButton.propTypes = {
|
||||||
advancedSettings: PropTypes.bool.isRequired,
|
advancedSettings: PropTypes.bool.isRequired,
|
||||||
onAdvancedSettingsPress: PropTypes.func.isRequired
|
onAdvancedSettingsPress: PropTypes.func.isRequired,
|
||||||
|
showLabel: PropTypes.bool.isRequired
|
||||||
|
};
|
||||||
|
|
||||||
|
AdvancedSettingsButton.defaultProps = {
|
||||||
|
showLabel: true
|
||||||
};
|
};
|
||||||
|
|
||||||
export default AdvancedSettingsButton;
|
export default AdvancedSettingsButton;
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ import ModalContent from 'Components/Modal/ModalContent';
|
||||||
import ModalFooter from 'Components/Modal/ModalFooter';
|
import ModalFooter from 'Components/Modal/ModalFooter';
|
||||||
import ModalHeader from 'Components/Modal/ModalHeader';
|
import ModalHeader from 'Components/Modal/ModalHeader';
|
||||||
import { inputTypes, kinds } from 'Helpers/Props';
|
import { inputTypes, kinds } from 'Helpers/Props';
|
||||||
|
import AdvancedSettingsButton from 'Settings/AdvancedSettingsButton';
|
||||||
import translate from 'Utilities/String/translate';
|
import translate from 'Utilities/String/translate';
|
||||||
import styles from './EditIndexerModalContent.css';
|
import styles from './EditIndexerModalContent.css';
|
||||||
|
|
||||||
|
|
@ -31,6 +32,7 @@ function EditIndexerModalContent(props) {
|
||||||
onSavePress,
|
onSavePress,
|
||||||
onTestPress,
|
onTestPress,
|
||||||
onDeleteIndexerPress,
|
onDeleteIndexerPress,
|
||||||
|
onAdvancedSettingsPress,
|
||||||
...otherProps
|
...otherProps
|
||||||
} = props;
|
} = props;
|
||||||
|
|
||||||
|
|
@ -212,6 +214,12 @@ function EditIndexerModalContent(props) {
|
||||||
</Button>
|
</Button>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
<AdvancedSettingsButton
|
||||||
|
advancedSettings={advancedSettings}
|
||||||
|
onAdvancedSettingsPress={onAdvancedSettingsPress}
|
||||||
|
showLabel={false}
|
||||||
|
/>
|
||||||
|
|
||||||
<SpinnerErrorButton
|
<SpinnerErrorButton
|
||||||
isSpinning={isTesting}
|
isSpinning={isTesting}
|
||||||
error={saveError}
|
error={saveError}
|
||||||
|
|
@ -251,6 +259,7 @@ EditIndexerModalContent.propTypes = {
|
||||||
onModalClose: PropTypes.func.isRequired,
|
onModalClose: PropTypes.func.isRequired,
|
||||||
onSavePress: PropTypes.func.isRequired,
|
onSavePress: PropTypes.func.isRequired,
|
||||||
onTestPress: PropTypes.func.isRequired,
|
onTestPress: PropTypes.func.isRequired,
|
||||||
|
onAdvancedSettingsPress: PropTypes.func.isRequired,
|
||||||
onDeleteIndexerPress: PropTypes.func
|
onDeleteIndexerPress: PropTypes.func
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ import PropTypes from 'prop-types';
|
||||||
import React, { Component } from 'react';
|
import React, { Component } from 'react';
|
||||||
import { connect } from 'react-redux';
|
import { connect } from 'react-redux';
|
||||||
import { createSelector } from 'reselect';
|
import { createSelector } from 'reselect';
|
||||||
import { saveIndexer, setIndexerFieldValue, setIndexerValue, testIndexer } from 'Store/Actions/settingsActions';
|
import { saveIndexer, setIndexerFieldValue, setIndexerValue, testIndexer, toggleAdvancedSettings } from 'Store/Actions/settingsActions';
|
||||||
import createProviderSettingsSelector from 'Store/Selectors/createProviderSettingsSelector';
|
import createProviderSettingsSelector from 'Store/Selectors/createProviderSettingsSelector';
|
||||||
import EditIndexerModalContent from './EditIndexerModalContent';
|
import EditIndexerModalContent from './EditIndexerModalContent';
|
||||||
|
|
||||||
|
|
@ -23,7 +23,8 @@ const mapDispatchToProps = {
|
||||||
setIndexerValue,
|
setIndexerValue,
|
||||||
setIndexerFieldValue,
|
setIndexerFieldValue,
|
||||||
saveIndexer,
|
saveIndexer,
|
||||||
testIndexer
|
testIndexer,
|
||||||
|
toggleAdvancedSettings
|
||||||
};
|
};
|
||||||
|
|
||||||
class EditIndexerModalContentConnector extends Component {
|
class EditIndexerModalContentConnector extends Component {
|
||||||
|
|
@ -56,6 +57,10 @@ class EditIndexerModalContentConnector extends Component {
|
||||||
this.props.testIndexer({ id: this.props.id });
|
this.props.testIndexer({ id: this.props.id });
|
||||||
};
|
};
|
||||||
|
|
||||||
|
onAdvancedSettingsPress = () => {
|
||||||
|
this.props.toggleAdvancedSettings();
|
||||||
|
};
|
||||||
|
|
||||||
//
|
//
|
||||||
// Render
|
// Render
|
||||||
|
|
||||||
|
|
@ -65,6 +70,7 @@ class EditIndexerModalContentConnector extends Component {
|
||||||
{...this.props}
|
{...this.props}
|
||||||
onSavePress={this.onSavePress}
|
onSavePress={this.onSavePress}
|
||||||
onTestPress={this.onTestPress}
|
onTestPress={this.onTestPress}
|
||||||
|
onAdvancedSettingsPress={this.onAdvancedSettingsPress}
|
||||||
onInputChange={this.onInputChange}
|
onInputChange={this.onInputChange}
|
||||||
onFieldChange={this.onFieldChange}
|
onFieldChange={this.onFieldChange}
|
||||||
/>
|
/>
|
||||||
|
|
@ -80,6 +86,7 @@ EditIndexerModalContentConnector.propTypes = {
|
||||||
item: PropTypes.object.isRequired,
|
item: PropTypes.object.isRequired,
|
||||||
setIndexerValue: PropTypes.func.isRequired,
|
setIndexerValue: PropTypes.func.isRequired,
|
||||||
setIndexerFieldValue: PropTypes.func.isRequired,
|
setIndexerFieldValue: PropTypes.func.isRequired,
|
||||||
|
toggleAdvancedSettings: PropTypes.func.isRequired,
|
||||||
saveIndexer: PropTypes.func.isRequired,
|
saveIndexer: PropTypes.func.isRequired,
|
||||||
testIndexer: PropTypes.func.isRequired,
|
testIndexer: PropTypes.func.isRequired,
|
||||||
onModalClose: PropTypes.func.isRequired
|
onModalClose: PropTypes.func.isRequired
|
||||||
|
|
|
||||||
|
|
@ -13,8 +13,6 @@
|
||||||
"AddNewItem": "Add New Item",
|
"AddNewItem": "Add New Item",
|
||||||
"AddedAuthorSettings": "Added Author Settings",
|
"AddedAuthorSettings": "Added Author Settings",
|
||||||
"AddingTag": "Adding tag",
|
"AddingTag": "Adding tag",
|
||||||
"AdvancedSettingsHiddenClickToShow": "Hidden, click to show",
|
|
||||||
"AdvancedSettingsShownClickToHide": "Shown, click to hide",
|
|
||||||
"AgeWhenGrabbed": "Age (when grabbed)",
|
"AgeWhenGrabbed": "Age (when grabbed)",
|
||||||
"All": "All",
|
"All": "All",
|
||||||
"AllAuthorBooks": "All Author Books",
|
"AllAuthorBooks": "All Author Books",
|
||||||
|
|
@ -325,6 +323,8 @@
|
||||||
"HasPendingChangesNoChanges": "No Changes",
|
"HasPendingChangesNoChanges": "No Changes",
|
||||||
"HasPendingChangesSaveChanges": "Save Changes",
|
"HasPendingChangesSaveChanges": "Save Changes",
|
||||||
"HealthNoIssues": "No issues with your configuration",
|
"HealthNoIssues": "No issues with your configuration",
|
||||||
|
"HiddenClickToShow": "Hidden, click to show",
|
||||||
|
"HideAdvanced": "Hide Advanced",
|
||||||
"HideBooks": "Hide books",
|
"HideBooks": "Hide books",
|
||||||
"History": "History",
|
"History": "History",
|
||||||
"Host": "Host",
|
"Host": "Host",
|
||||||
|
|
@ -731,6 +731,7 @@
|
||||||
"ShouldMonitorExistingHelpText": "Automatically monitor books on this list which are already in Readarr",
|
"ShouldMonitorExistingHelpText": "Automatically monitor books on this list which are already in Readarr",
|
||||||
"ShouldMonitorHelpText": "Monitor new authors and books added from this list",
|
"ShouldMonitorHelpText": "Monitor new authors and books added from this list",
|
||||||
"ShouldSearchHelpText": "Search indexers for newly added items. Use with caution for large lists.",
|
"ShouldSearchHelpText": "Search indexers for newly added items. Use with caution for large lists.",
|
||||||
|
"ShowAdvanced": "Show Advanced",
|
||||||
"ShowBanners": "Show Banners",
|
"ShowBanners": "Show Banners",
|
||||||
"ShowBannersHelpText": "Show banners instead of names",
|
"ShowBannersHelpText": "Show banners instead of names",
|
||||||
"ShowBookCount": "Show Book Count",
|
"ShowBookCount": "Show Book Count",
|
||||||
|
|
@ -754,6 +755,7 @@
|
||||||
"ShowTitleHelpText": "Show author name under poster",
|
"ShowTitleHelpText": "Show author name under poster",
|
||||||
"ShowUnknownAuthorItems": "Show Unknown Author Items",
|
"ShowUnknownAuthorItems": "Show Unknown Author Items",
|
||||||
"ShownAboveEachColumnWhenWeekIsTheActiveView": "Shown above each column when week is the active view",
|
"ShownAboveEachColumnWhenWeekIsTheActiveView": "Shown above each column when week is the active view",
|
||||||
|
"ShownClickToHide": "Shown, click to hide",
|
||||||
"Size": " Size",
|
"Size": " Size",
|
||||||
"SizeLimit": "Size Limit",
|
"SizeLimit": "Size Limit",
|
||||||
"SkipBooksWithMissingReleaseDate": "Skip books with missing release date",
|
"SkipBooksWithMissingReleaseDate": "Skip books with missing release date",
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue