New: (UI) Add priority to Indexer Editor

pull/1765/head
Bogdan 2 years ago
parent 96340909f1
commit ab5b321385

@ -5,6 +5,7 @@ import { connect } from 'react-redux';
import { createSelector } from 'reselect'; import { createSelector } from 'reselect';
import createSortedSectionSelector from 'Store/Selectors/createSortedSectionSelector'; import createSortedSectionSelector from 'Store/Selectors/createSortedSectionSelector';
import sortByName from 'Utilities/Array/sortByName'; import sortByName from 'Utilities/Array/sortByName';
import translate from 'Utilities/String/translate';
import SelectInput from './SelectInput'; import SelectInput from './SelectInput';
function createMapStateToProps() { function createMapStateToProps() {
@ -23,7 +24,7 @@ function createMapStateToProps() {
if (includeNoChange) { if (includeNoChange) {
values.unshift({ values.unshift({
key: 'noChange', key: 'noChange',
value: 'No Change', value: translate('NoChange'),
disabled: true disabled: true
}); });
} }

@ -262,6 +262,8 @@ FormInputGroup.propTypes = {
values: PropTypes.arrayOf(PropTypes.any), values: PropTypes.arrayOf(PropTypes.any),
type: PropTypes.string.isRequired, type: PropTypes.string.isRequired,
kind: PropTypes.oneOf(kinds.all), kind: PropTypes.oneOf(kinds.all),
min: PropTypes.number,
max: PropTypes.number,
unit: PropTypes.string, unit: PropTypes.string,
buttons: PropTypes.oneOfType([PropTypes.node, PropTypes.arrayOf(PropTypes.node)]), buttons: PropTypes.oneOfType([PropTypes.node, PropTypes.arrayOf(PropTypes.node)]),
helpText: PropTypes.string, helpText: PropTypes.string,

@ -14,6 +14,7 @@ import styles from './EditIndexerModalContent.css';
interface SavePayload { interface SavePayload {
enable?: boolean; enable?: boolean;
appProfileId?: number; appProfileId?: number;
priority?: number;
} }
interface EditIndexerModalContentProps { interface EditIndexerModalContentProps {
@ -35,6 +36,7 @@ function EditIndexerModalContent(props: EditIndexerModalContentProps) {
const [enable, setEnable] = useState(NO_CHANGE); const [enable, setEnable] = useState(NO_CHANGE);
const [appProfileId, setAppProfileId] = useState<string | number>(NO_CHANGE); const [appProfileId, setAppProfileId] = useState<string | number>(NO_CHANGE);
const [priority, setPriority] = useState<null | string | number>(null);
const save = useCallback(() => { const save = useCallback(() => {
let hasChanges = false; let hasChanges = false;
@ -50,12 +52,17 @@ function EditIndexerModalContent(props: EditIndexerModalContentProps) {
payload.appProfileId = appProfileId as number; payload.appProfileId = appProfileId as number;
} }
if (priority !== null) {
hasChanges = true;
payload.priority = priority as number;
}
if (hasChanges) { if (hasChanges) {
onSavePress(payload); onSavePress(payload);
} }
onModalClose(); onModalClose();
}, [enable, appProfileId, onSavePress, onModalClose]); }, [enable, appProfileId, priority, onSavePress, onModalClose]);
const onInputChange = useCallback( const onInputChange = useCallback(
({ name, value }) => { ({ name, value }) => {
@ -66,6 +73,9 @@ function EditIndexerModalContent(props: EditIndexerModalContentProps) {
case 'appProfileId': case 'appProfileId':
setAppProfileId(value); setAppProfileId(value);
break; break;
case 'priority':
setPriority(value);
break;
default: default:
console.warn(`EditIndexersModalContent Unknown Input: '${name}'`); console.warn(`EditIndexersModalContent Unknown Input: '${name}'`);
} }
@ -108,6 +118,19 @@ function EditIndexerModalContent(props: EditIndexerModalContentProps) {
onChange={onInputChange} onChange={onInputChange}
/> />
</FormGroup> </FormGroup>
<FormGroup>
<FormLabel>{translate('Priority')}</FormLabel>
<FormInputGroup
type={inputTypes.NUMBER}
name="priority"
value={priority}
min={1}
max={50}
onChange={onInputChange}
/>
</FormGroup>
</ModalBody> </ModalBody>
<ModalFooter className={styles.modalFooter}> <ModalFooter className={styles.modalFooter}>

@ -39,6 +39,11 @@ namespace Prowlarr.Api.V1.Indexers
indexer.AppProfileId = resource.AppProfileId.Value; indexer.AppProfileId = resource.AppProfileId.Value;
} }
if (resource.Priority.HasValue)
{
indexer.Priority = resource.Priority.Value;
}
if (resource.Tags != null) if (resource.Tags != null)
{ {
var newTags = resource.Tags; var newTags = resource.Tags;

@ -7,6 +7,7 @@ namespace Prowlarr.Api.V1.Indexers
public List<int> IndexerIds { get; set; } public List<int> IndexerIds { get; set; }
public bool? Enable { get; set; } public bool? Enable { get; set; }
public int? AppProfileId { get; set; } public int? AppProfileId { get; set; }
public int? Priority { get; set; }
public List<int> Tags { get; set; } public List<int> Tags { get; set; }
public ApplyTags ApplyTags { get; set; } public ApplyTags ApplyTags { get; set; }
} }

Loading…
Cancel
Save