Skip to content

Commit 8defe83

Browse files
authored
Merge pull request #1926 from nextcloud/enh/unassignedFilter
2 parents 137b6dd + 2b3a8cf commit 8defe83

2 files changed

Lines changed: 23 additions & 2 deletions

File tree

src/components/Controls.vue

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,17 @@
7676
</div>
7777

7878
<h3>{{ t('deck', 'Filter by assigned user') }}</h3>
79+
<div class="filter--item">
80+
<input
81+
id="unassigned"
82+
v-model="filter.unassigned"
83+
type="checkbox"
84+
class="checkbox"
85+
value="unassigned"
86+
@change="setFilter"
87+
@click="beforeSetFilter">
88+
<label for="unassigned">{{ t('deck', 'Unassigned') }}</label>
89+
</div>
7990
<div v-for="user in board.users" :key="user.uid" class="filter--item">
8091
<input
8192
:id="user.uid"
@@ -202,7 +213,7 @@ export default {
202213
stack: '',
203214
showArchived: false,
204215
isAddStackVisible: false,
205-
filter: { tags: [], users: [], due: '' },
216+
filter: { tags: [], users: [], due: '', unassigned: false },
206217
}
207218
},
208219
@@ -246,8 +257,14 @@ export default {
246257
this.filter.due = ''
247258
this.$store.dispatch('setFilter', { ...this.filter })
248259
}
260+
if (e.target.value === 'unassigned') {
261+
this.filter.users = []
262+
}
249263
},
250264
setFilter() {
265+
if (this.filter.users.length > 0) {
266+
this.filter.unassigned = false
267+
}
251268
this.$nextTick(() => this.$store.dispatch('setFilter', { ...this.filter }))
252269
},
253270
toggleNav() {

src/store/card.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ export default {
3232
getters: {
3333
cardsByStack: (state, getters, rootState) => (id) => {
3434
return state.cards.filter((card) => {
35-
const { tags, users, due } = rootState.filter
35+
const { tags, users, due, unassigned } = rootState.filter
3636
let allTagsMatch = true
3737
let allUsersMatch = true
3838

@@ -58,6 +58,10 @@ export default {
5858
}
5959
}
6060

61+
if (unassigned && card.assignedUsers.length > 0) {
62+
return false
63+
}
64+
6165
if (due !== '') {
6266
const datediffHour = ((new Date(card.duedate) - new Date()) / 3600 / 1000)
6367
switch (due) {

0 commit comments

Comments
 (0)