mirror of
https://github.com/Radarr/Radarr.git
synced 2024-09-11 20:12:41 +02:00
New: Added new custom filters for Not in Last/Next for date filters (#4816)
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
This commit is contained in:
parent
97980fe139
commit
9cb3ff238b
@ -3,7 +3,7 @@ import React, { Component } from 'react';
|
||||
import NumberInput from 'Components/Form/NumberInput';
|
||||
import SelectInput from 'Components/Form/SelectInput';
|
||||
import TextInput from 'Components/Form/TextInput';
|
||||
import { IN_LAST, IN_NEXT } from 'Helpers/Props/filterTypes';
|
||||
import { IN_LAST, IN_NEXT, NOT_IN_LAST, NOT_IN_NEXT } from 'Helpers/Props/filterTypes';
|
||||
import isString from 'Utilities/String/isString';
|
||||
import { NAME } from './FilterBuilderRowValue';
|
||||
import styles from './DateFilterBuilderRowValue.css';
|
||||
@ -18,7 +18,12 @@ const timeOptions = [
|
||||
];
|
||||
|
||||
function isInFilter(filterType) {
|
||||
return filterType === IN_LAST || filterType === IN_NEXT;
|
||||
return (
|
||||
filterType === IN_LAST ||
|
||||
filterType === NOT_IN_LAST ||
|
||||
filterType === IN_NEXT ||
|
||||
filterType === NOT_IN_NEXT
|
||||
);
|
||||
}
|
||||
|
||||
class DateFilterBuilderRowValue extends Component {
|
||||
|
@ -24,7 +24,9 @@ export const possibleFilterTypes = {
|
||||
{ key: filterTypes.LESS_THAN, value: 'is before' },
|
||||
{ key: filterTypes.GREATER_THAN, value: 'is after' },
|
||||
{ key: filterTypes.IN_LAST, value: 'in the last' },
|
||||
{ key: filterTypes.IN_NEXT, value: 'in the next' }
|
||||
{ key: filterTypes.NOT_IN_LAST, value: 'not in the last' },
|
||||
{ key: filterTypes.IN_NEXT, value: 'in the next' },
|
||||
{ key: filterTypes.NOT_IN_NEXT, value: 'not in the next' }
|
||||
],
|
||||
|
||||
[EXACT]: [
|
||||
|
@ -3,7 +3,9 @@ export const EQUAL = 'equal';
|
||||
export const GREATER_THAN = 'greaterThan';
|
||||
export const GREATER_THAN_OR_EQUAL = 'greaterThanOrEqual';
|
||||
export const IN_LAST = 'inLast';
|
||||
export const NOT_IN_LAST = 'notInLast';
|
||||
export const IN_NEXT = 'inNext';
|
||||
export const NOT_IN_NEXT = 'notInNext';
|
||||
export const LESS_THAN = 'lessThan';
|
||||
export const LESS_THAN_OR_EQUAL = 'lessThanOrEqual';
|
||||
export const NOT_CONTAINS = 'notContains';
|
||||
@ -17,5 +19,9 @@ export const all = [
|
||||
LESS_THAN,
|
||||
LESS_THAN_OR_EQUAL,
|
||||
NOT_CONTAINS,
|
||||
NOT_EQUAL
|
||||
NOT_EQUAL,
|
||||
IN_LAST,
|
||||
NOT_IN_LAST,
|
||||
IN_NEXT,
|
||||
NOT_IN_NEXT
|
||||
];
|
||||
|
@ -21,12 +21,22 @@ export default function(itemValue, filterValue, type) {
|
||||
isBefore(itemValue)
|
||||
);
|
||||
|
||||
case filterTypes.NOT_IN_LAST:
|
||||
return (
|
||||
isBefore(itemValue, { [filterValue.time]: filterValue.value * -1 })
|
||||
);
|
||||
|
||||
case filterTypes.IN_NEXT:
|
||||
return (
|
||||
isAfter(itemValue) &&
|
||||
isBefore(itemValue, { [filterValue.time]: filterValue.value })
|
||||
);
|
||||
|
||||
case filterTypes.NOT_IN_NEXT:
|
||||
return (
|
||||
isAfter(itemValue, { [filterValue.time]: filterValue.value })
|
||||
);
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user