atst/js/components/forms/members_list.js

41 lines
857 B
JavaScript

export default {
name: 'members-list',
props: {
members: Array,
choices: Array,
},
data: function () {
return {
searchValue: '',
status: '',
role: '',
}
},
computed: {
searchedList: function () {
return this.members.filter(
member => this.status ?
member.status === this.status | this.status === 'all'
: true
).filter(
member => this.role ? (
this.getRoleFromDisplayName(member.role) === this.role | this.role === 'all')
: true
).filter(
member => this.searchValue ? member.name.toLowerCase()
.includes(this.searchValue.toLowerCase()) : true
)
}
},
methods: {
getRoleFromDisplayName: function (role) {
return this.choices.find(choice => choice.display_name === role).name
},
},
}