From de0145c3f528a5c92d74e169348a043ae5c95338 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakob=20R=C3=B6hrl?= Date: Tue, 19 May 2020 09:42:17 +0200 Subject: [PATCH 1/2] new filter: unassigned cards MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jakob Röhrl --- src/components/Controls.vue | 16 +++++++++++++++- src/store/card.js | 13 ++++++++++++- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/src/components/Controls.vue b/src/components/Controls.vue index a2dbcdbee..16f6476f7 100644 --- a/src/components/Controls.vue +++ b/src/components/Controls.vue @@ -74,6 +74,17 @@

{{ t('deck', 'Filter by assigned user') }}

+
+ + +
this.$store.dispatch('setFilter', { ...this.filter })) diff --git a/src/store/card.js b/src/store/card.js index 561ac43fb..ae5520d6a 100644 --- a/src/store/card.js +++ b/src/store/card.js @@ -32,9 +32,10 @@ export default { getters: { cardsByStack: (state, getters, rootState) => (id) => { return state.cards.filter((card) => { - const { tags, users, due } = rootState.filter + const { tags, users, due, unassigned } = rootState.filter let allTagsMatch = true let allUsersMatch = true + let allUnassigned = true if (tags.length > 0) { tags.forEach((tag) => { @@ -58,6 +59,16 @@ export default { } } + if (unassigned) { + if (card.assignedUsers.length > 0) { + allUnassigned = false + } + + if (!allUnassigned) { + return false + } + } + if (due !== '') { const datediffHour = ((new Date(card.duedate) - new Date()) / 3600 / 1000) switch (due) { From 2b3a8cfaf609e96edbcc7d688c630b7040057928 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakob=20R=C3=B6hrl?= Date: Thu, 16 Jul 2020 10:31:07 +0200 Subject: [PATCH 2/2] simplified logic avoid filtering for unassigned and assigned at the same time MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jakob Röhrl --- src/components/Controls.vue | 3 +++ src/store/card.js | 11 ++--------- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/components/Controls.vue b/src/components/Controls.vue index 16f6476f7..dd965e29c 100644 --- a/src/components/Controls.vue +++ b/src/components/Controls.vue @@ -260,6 +260,9 @@ export default { } }, setFilter() { + if (this.filter.users.length > 0) { + this.filter.unassigned = false + } this.$nextTick(() => this.$store.dispatch('setFilter', { ...this.filter })) }, toggleNav() { diff --git a/src/store/card.js b/src/store/card.js index ae5520d6a..1c3aef8e4 100644 --- a/src/store/card.js +++ b/src/store/card.js @@ -35,7 +35,6 @@ export default { const { tags, users, due, unassigned } = rootState.filter let allTagsMatch = true let allUsersMatch = true - let allUnassigned = true if (tags.length > 0) { tags.forEach((tag) => { @@ -59,14 +58,8 @@ export default { } } - if (unassigned) { - if (card.assignedUsers.length > 0) { - allUnassigned = false - } - - if (!allUnassigned) { - return false - } + if (unassigned && card.assignedUsers.length > 0) { + return false } if (due !== '') {