New: Add book custom filters for author and automatic release switching

Fixes #1355
pull/1362/head
ta264 3 years ago
parent 15dee29057
commit 8f965a7cd5

@ -1,6 +1,6 @@
import { createAction } from 'redux-actions'; import { createAction } from 'redux-actions';
import { batchActions } from 'redux-batched-actions'; import { batchActions } from 'redux-batched-actions';
import { filterBuilderTypes, filterBuilderValueTypes, sortDirections } from 'Helpers/Props'; import { filterBuilderTypes, filterBuilderValueTypes, filterTypePredicates, sortDirections } from 'Helpers/Props';
import { createThunk, handleThunks } from 'Store/thunks'; import { createThunk, handleThunks } from 'Store/thunks';
import sortByName from 'Utilities/Array/sortByName'; import sortByName from 'Utilities/Array/sortByName';
import createAjaxRequest from 'Utilities/createAjaxRequest'; import createAjaxRequest from 'Utilities/createAjaxRequest';
@ -151,6 +151,10 @@ export const defaultState = {
sortPredicates: { sortPredicates: {
...sortPredicates, ...sortPredicates,
authorName: function(item) {
return item.author.sortName;
},
bookFileCount: function(item) { bookFileCount: function(item) {
const { statistics = {} } = item; const { statistics = {} } = item;
@ -169,16 +173,44 @@ export const defaultState = {
filters, filters,
filterPredicates: { filterPredicates: {
...filterPredicates ...filterPredicates,
author: function(item, filterValue, type) {
const predicate = filterTypePredicates[type];
return predicate(item.author.authorName, filterValue);
},
anyEditionOk: function(item, filterValue, type) {
const predicate = filterTypePredicates[type];
return predicate(item.anyEditionOk, filterValue);
}
}, },
filterBuilderProps: [ filterBuilderProps: [
{
name: 'author',
label: 'Author',
type: filterBuilderTypes.STRING
},
{
name: 'title',
label: 'Title',
type: filterBuilderTypes.STRING
},
{ {
name: 'monitored', name: 'monitored',
label: 'Monitored', label: 'Monitored',
type: filterBuilderTypes.EXACT, type: filterBuilderTypes.EXACT,
valueType: filterBuilderValueTypes.BOOL valueType: filterBuilderValueTypes.BOOL
}, },
{
name: 'anyEditionOk',
label: 'Automatic Release Switching',
type: filterBuilderTypes.EXACT,
valueType: filterBuilderValueTypes.BOOL
},
{ {
name: 'qualityProfileId', name: 'qualityProfileId',
label: 'Quality Profile', label: 'Quality Profile',

Loading…
Cancel
Save