diff --git a/src/components/Controls.vue b/src/components/Controls.vue
index bc5148ece..ec130248a 100644
--- a/src/components/Controls.vue
+++ b/src/components/Controls.vue
@@ -138,8 +138,40 @@
-
{{ t('deck', 'Filter by due date') }}
+ {{ t('deck', 'Filter by completed') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ t('deck', 'Filter by due date') }}
(a.title < b.title) ? -1 : 1)
@@ -360,7 +392,12 @@ export default {
}
if (e.target.value === 'unassigned') {
this.filter.users = []
+ this.$store.dispatch('setFilter', { ...this.filter })
+ } else {
+ this.filter.completed = 'both'
+ this.$store.dispatch('setFilter', { ...this.filter })
}
+ this.$store.dispatch('setFilter', { ...this.filter })
},
setFilter() {
if (this.filter.users.length > 0) {
@@ -402,7 +439,7 @@ export default {
}
},
clearFilter() {
- const filterReset = { tags: [], users: [], due: '' }
+ const filterReset = { tags: [], users: [], due: '', completed: 'both' }
this.$store.dispatch('setFilter', { ...filterReset })
this.filter = filterReset
},
@@ -519,7 +556,6 @@ export default {
input + label {
display: block;
padding: 6px 0;
- vertical-align: middle;
.avatardiv {
vertical-align: middle;
margin-bottom: 2px;
diff --git a/src/store/card.js b/src/store/card.js
index 28b3a1c34..fb4df408c 100644
--- a/src/store/card.js
+++ b/src/store/card.js
@@ -33,7 +33,10 @@ export default {
getters: {
cardsByStack: (state, getters, rootState) => (id) => {
return state.cards.filter((card) => {
- const { tags, users, due, unassigned } = rootState.filter
+ const { tags, users, due, unassigned, completed } = rootState.filter
+
+ if (completed === 'open' && card.done !== null) { return false }
+ if (completed === 'completed' && card.done == null) { return false }
let allTagsMatch = true
let allUsersMatch = true
diff --git a/src/store/main.js b/src/store/main.js
index 3d0248c4c..f52aeafc9 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: '' },
+ filter: { tags: [], users: [], due: '', completed: 'both' },
shortcutLock: false,
},
getters: {