New: Sort by Status in Artist Index/Editor

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
This commit is contained in:
Qstick 2018-10-16 20:59:16 -04:00
parent 07a1388758
commit 69b6b67bf4
5 changed files with 34 additions and 3 deletions

View file

@ -22,6 +22,7 @@ function getColumns(showLanguageProfile, showMetadataProfile) {
return [ return [
{ {
name: 'status', name: 'status',
isSortable: true,
isVisible: true isVisible: true
}, },
{ {

View file

@ -19,6 +19,15 @@ function ArtistIndexSortMenu(props) {
alignMenu={align.RIGHT} alignMenu={align.RIGHT}
> >
<MenuContent> <MenuContent>
<SortMenuItem
name="status"
sortKey={sortKey}
sortDirection={sortDirection}
onPress={onSortSelect}
>
Monitored/Status
</SortMenuItem>
<SortMenuItem <SortMenuItem
name="sortName" name="sortName"
sortKey={sortKey} sortKey={sortKey}

View file

@ -120,6 +120,22 @@ export const filterPredicates = {
} }
}; };
export const sortPredicates = {
status: function(item) {
let result = 0;
if (item.monitored) {
result += 2;
}
if (item.status === 'continuing') {
result++;
}
return result;
}
};
// //
// State // State

View file

@ -7,7 +7,7 @@ import createSetClientSideCollectionSortReducer from './Creators/Reducers/create
import createSetClientSideCollectionFilterReducer from './Creators/Reducers/createSetClientSideCollectionFilterReducer'; import createSetClientSideCollectionFilterReducer from './Creators/Reducers/createSetClientSideCollectionFilterReducer';
import createHandleActions from './Creators/createHandleActions'; import createHandleActions from './Creators/createHandleActions';
import { set, updateItem } from './baseActions'; import { set, updateItem } from './baseActions';
import { filters, filterPredicates } from './artistActions'; import { filters, filterPredicates, sortPredicates } from './artistActions';
// //
// Variables // Variables
@ -77,7 +77,9 @@ export const defaultState = {
type: filterBuilderTypes.ARRAY, type: filterBuilderTypes.ARRAY,
valueType: filterBuilderValueTypes.TAG valueType: filterBuilderValueTypes.TAG
} }
] ],
sortPredicates
}; };
export const persistState = [ export const persistState = [

View file

@ -6,7 +6,7 @@ import createSetTableOptionReducer from './Creators/Reducers/createSetTableOptio
import createSetClientSideCollectionSortReducer from './Creators/Reducers/createSetClientSideCollectionSortReducer'; import createSetClientSideCollectionSortReducer from './Creators/Reducers/createSetClientSideCollectionSortReducer';
import createSetClientSideCollectionFilterReducer from './Creators/Reducers/createSetClientSideCollectionFilterReducer'; import createSetClientSideCollectionFilterReducer from './Creators/Reducers/createSetClientSideCollectionFilterReducer';
import createHandleActions from './Creators/createHandleActions'; import createHandleActions from './Creators/createHandleActions';
import { filters, filterPredicates } from './artistActions'; import { filters, filterPredicates, sortPredicates } from './artistActions';
// //
// Variables // Variables
@ -56,6 +56,7 @@ export const defaultState = {
{ {
name: 'status', name: 'status',
columnLabel: 'Status', columnLabel: 'Status',
isSortable: true,
isVisible: true, isVisible: true,
isModifiable: false isModifiable: false
}, },
@ -166,6 +167,8 @@ export const defaultState = {
], ],
sortPredicates: { sortPredicates: {
...sortPredicates,
trackProgress: function(item) { trackProgress: function(item) {
const { statistics = {} } = item; const { statistics = {} } = item;