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 createSortedSectionSelector from 'Store/Selectors/createSortedSectionSelector';
import sortByName from 'Utilities/Array/sortByName';
import translate from 'Utilities/String/translate';
import SelectInput from './SelectInput';
function createMapStateToProps() {
@ -23,7 +24,7 @@ function createMapStateToProps() {
if (includeNoChange) {
values.unshift({
key: 'noChange',
value: 'No Change',
value: translate('NoChange'),
disabled: true
});
}

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

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

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

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

Loading…
Cancel
Save