fix(filters): Set NumberFields to required (#651)

* Set log score default to 0

NumberField:
min={0} required={true}

To avoid errors when user clears the field

* removed max value by mistake

* set max downloads default to 0

* Added requirements number fields in Action rules
This commit is contained in:
soup 2023-01-15 18:08:18 +01:00 committed by GitHub
parent 362aa8f9d0
commit 5c7d2349d3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 4 deletions

View file

@ -199,10 +199,14 @@ const TypeForm = ({ action, idx, clients }: TypeFormProps) => {
<NumberField
name={`actions.${idx}.limit_download_speed`}
label="Limit download speed (KiB/s)"
placeholder="Takes any number (0 is no limit)"
min={0} required={true}
/>
<NumberField
name={`actions.${idx}.limit_upload_speed`}
label="Limit upload speed (KiB/s)"
placeholder="Takes any number (0 is no limit)"
min={0} required={true}
/>
</div>
@ -210,11 +214,15 @@ const TypeForm = ({ action, idx, clients }: TypeFormProps) => {
<NumberField
name={`actions.${idx}.limit_ratio`}
label="Ratio limit"
placeholder="Takes any number (0 is no limit)"
min={0} required={true}
step={0.5}
/>
<NumberField
name={`actions.${idx}.limit_seed_time`}
label="Seed time limit (minutes)"
placeholder="Takes any number (0 is no limit)"
min={0} required={true}
/>
</div>
</div>
@ -253,10 +261,13 @@ const TypeForm = ({ action, idx, clients }: TypeFormProps) => {
<NumberField
name={`actions.${idx}.reannounce_interval`}
label="Reannounce interval. Run every X seconds"
placeholder="7 is default and recommended"
min={1} required={true}
/>
<NumberField
name={`actions.${idx}.reannounce_max_attempts`}
label="Run reannounce Y times"
min={1} required={true}
/>
</div>
</div>

View file

@ -237,7 +237,7 @@ export default function FilterDetails() {
max_size: filter.max_size,
delay: filter.delay,
priority: filter.priority ?? 0,
max_downloads: filter.max_downloads,
max_downloads: filter.max_downloads ?? 0,
max_downloads_unit: filter.max_downloads_unit,
use_regex: filter.use_regex || false,
shows: filter.shows,
@ -274,7 +274,7 @@ export default function FilterDetails() {
quality: filter.quality || [],
media: filter.media || [],
match_release_types: filter.match_release_types || [],
log_score: filter.log_score,
log_score: filter.log_score ?? 0,
log: filter.log,
cue: filter.cue,
perfect_flac: filter.perfect_flac,
@ -351,7 +351,7 @@ export function General() {
<NumberField name="delay" label="Delay" placeholder="Number of seconds to delay actions" />
<NumberField name="priority" label="Priority" placeholder="Higher number = higher prio" min={0} required={true} />
<NumberField name="max_downloads" label="Max downloads" placeholder="Takes any number (0 is infinite)" />
<NumberField name="max_downloads" label="Max downloads" placeholder="Takes any number (0 is infinite)" min={0} required={true} />
<Select name="max_downloads_unit" label="Max downloads per" options={downloadsPerUnitOptions} optionDefaultText="Select unit" />
</div>
</div>
@ -435,7 +435,7 @@ export function Music({ values }: AdvancedProps) {
</div>
<div className="mt-6 grid grid-cols-12 gap-6">
<NumberField name="log_score" label="Log score" placeholder="eg. 100" min={0} max={100} disabled={values.perfect_flac} />
<NumberField name="log_score" label="Log score" placeholder="eg. 100" min={0} max={100} required={true} disabled={values.perfect_flac} />
</div>
</div>