chore: define default filters and params at one location #721

Merged
konrad merged 1 commits from dpschen/frontend:feature/define-default-filters-and-params into main 2021-09-10 13:02:53 +00:00
2 changed files with 42 additions and 34 deletions

View File

@ -190,6 +190,35 @@ import ListService from '@/services/list'
import NamespaceService from '@/services/namespace'
import EditLabels from '@/components/tasks/partials/editLabels.vue'
// FIXME: merge with DEFAULT_PARAMS in taskList.js

Ideally, I'd like to move this out of any .vue component and somewhere more centralized. Also becasue the whole logic of creating the filter is really fiddly and not a good api.

Ideally, I'd like to move this out of any .vue component and somewhere more centralized. Also becasue the whole logic of creating the filter is really fiddly and not a good api.

Absolutely, this was just a small change that I did and felt too bad to discard it.
I know it's not the complete solution but a step in the right direction.
Also it's more in-line with how you would do stuff with the composition-api.

Absolutely, this was just a small change that I did and felt too bad to discard it. I know it's not the complete solution but a step in the right direction. Also it's more in-line with how you would do stuff with the composition-api.
const DEFAULT_PARAMS = {
sort_by: [],
order_by: [],
filter_by: [],
filter_value: [],
filter_comparator: [],
filter_include_nulls: true,
filter_concat: 'or',
s: '',
}
const DEFAULT_FILTERS = {
done: false,
dueDate: '',
requireAllFilters: false,
priority: 0,
usePriority: false,
startDate: '',
endDate: '',
percentDone: 0,
usePercentDone: false,
reminders: '',
assignees: '',
labels: '',
list_id: '',
namespace: '',
}
export default {
name: 'filters',
components: {
@ -202,32 +231,8 @@ export default {
},
data() {
return {
params: {
sort_by: [],
order_by: [],
filter_by: [],
filter_value: [],
filter_comparator: [],
filter_include_nulls: true,
filter_concat: 'or',
s: '',
},
filters: {
done: false,
dueDate: '',
requireAllFilters: false,
priority: 0,
usePriority: false,
startDate: '',
endDate: '',
percentDone: 0,
usePercentDone: false,
reminders: '',
assignees: '',
labels: '',
list_id: '',
namespace: '',
},
params: DEFAULT_PARAMS,
filters: DEFAULT_FILTERS,
usersService: UserService,
foundusers: [],

View File

@ -2,6 +2,16 @@ import TaskCollectionService from '../../../services/taskCollection'
import cloneDeep from 'lodash/cloneDeep'
import {calculateItemPosition} from '../../../helpers/calculateItemPosition'
// FIXME: merge with DEFAULT_PARAMS in filters.vue
const DEFAULT_PARAMS = {
sort_by: ['position', 'id'],
order_by: ['asc', 'desc'],
filter_by: ['done'],
filter_value: ['false'],
filter_comparator: ['equals'],
filter_concat: 'and',
}
/**
* This mixin provides a base set of methods and properties to get tasks on a list.
*/
@ -20,14 +30,7 @@ export default {
searchTerm: '',
showTaskFilter: false,
params: {
sort_by: ['position', 'id'],
order_by: ['asc', 'desc'],
filter_by: ['done'],
filter_value: ['false'],
filter_comparator: ['equals'],
filter_concat: 'and',
},
params: DEFAULT_PARAMS,
}
},
watch: {