diff --git a/src/components/Controls.vue b/src/components/Controls.vue index e6c014ae5..7b93ff330 100644 --- a/src/components/Controls.vue +++ b/src/components/Controls.vue @@ -140,6 +140,28 @@

{{ t('deck', 'Filter by due date') }}

+
+ + +
+ +
+ + +
+
- -
- - -
(a.title < b.title) ? -1 : 1) @@ -376,6 +387,11 @@ export default { this.filter.open = !this.filter.open this.$store.dispatch('setFilter', { ...this.filter }) } + + if (e.target.id === 'done') { + this.filter.done = !this.filter.done + this.$store.dispatch('setFilter', { ...this.filter }) + } }, setFilter() { if (this.filter.users.length > 0) { @@ -417,7 +433,7 @@ export default { } }, clearFilter() { - const filterReset = { tags: [], users: [], due: '' ,open: false} + const filterReset = { tags: [], users: [], due: '' ,open: false, done:false} this.$store.dispatch('setFilter', { ...filterReset }) this.filter = filterReset }, diff --git a/src/store/card.js b/src/store/card.js index 8c0ee263f..33385ad9e 100644 --- a/src/store/card.js +++ b/src/store/card.js @@ -33,9 +33,12 @@ export default { getters: { cardsByStack: (state, getters, rootState) => (id) => { return state.cards.filter((card) => { - const { tags, users, due, unassigned,open } = rootState.filter + const { tags, users, due, unassigned,open, done } = rootState.filter - if (open && card.done !== null) return false; + if (open && card.done !== null) + return false; + if (done && card.done == null) + return false; let allTagsMatch = true let allUsersMatch = true diff --git a/src/store/main.js b/src/store/main.js index acf1d8242..ad80b298a 100644 --- a/src/store/main.js +++ b/src/store/main.js @@ -74,7 +74,7 @@ export default new Vuex.Store({ searchQuery: '', activity: [], activityLoadMore: true, - filter: { tags: [], users: [], due: '', open:false}, + filter: { tags: [], users: [], due: '', open:false, done: false}, shortcutLock: false, }, getters: {