From 929ef69d31183395ffe3c9c2c9721be8ce2b774c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julius=20H=C3=A4rtl?= Date: Thu, 9 Apr 2020 11:06:19 +0200 Subject: [PATCH] Fix filtering and sorting of stacks that caused card reordering to only apply after reload MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl --- src/components/board/Stack.vue | 6 +++--- src/store/card.js | 14 ++++++++++---- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/components/board/Stack.vue b/src/components/board/Stack.vue index 41688cff7..da5f8bee4 100644 --- a/src/components/board/Stack.vue +++ b/src/components/board/Stack.vue @@ -77,7 +77,7 @@ :drag-handle-selector="dragHandleSelector" @should-accept-drop="canEdit" @drop="($event) => onDropCard(stack.id, $event)"> - + @@ -122,7 +122,7 @@ export default { 'canEdit', ]), cardsByStack() { - return (id) => this.$store.getters.cardsByStack(id) + return this.$store.getters.cardsByStack(this.stack.id) }, dragHandleSelector() { return this.canEdit ? null : '.no-drag' @@ -150,7 +150,7 @@ export default { }, payloadForCard(stackId) { return index => { - return this.cardsByStack(stackId)[index] + return this.cardsByStack[index] } }, deleteStack(stack) { diff --git a/src/store/card.js b/src/store/card.js index 4e9b40f89..7df2df5e4 100644 --- a/src/store/card.js +++ b/src/store/card.js @@ -76,10 +76,16 @@ export default { return true }) - .filter((card) => card.stackId === id && (getters.getSearchQuery === '' - || (card.title.toLowerCase().includes(getters.getSearchQuery.toLowerCase()) - || card.description.toLowerCase().includes(getters.getSearchQuery.toLowerCase())) - .sort((a, b) => a.order - b.order))) + .filter((card) => card.stackId === id) + .filter((card) => { + if (getters.getSearchQuery === '') { + return true + } + + return card.title.toLowerCase().includes(getters.getSearchQuery.toLowerCase()) + || card.description.toLowerCase().includes(getters.getSearchQuery.toLowerCase()) + }) + .sort((a, b) => a.order - b.order) }, cardById: state => (id) => { return state.cards.find((card) => card.id === id)