9e655d70d2
* change 'role' options and filters to 'membership' * added membership filtering function to discover challenges * fix accidental deletion * complete removal of roles from challenge filters * abstract challenge "participating" filtering into mixin * selecting "participating" and "not participating" shows all challenges
32 lines
1.0 KiB
JavaScript
32 lines
1.0 KiB
JavaScript
export default {
|
|
methods: {
|
|
isMemberOfChallenge (user, challenge) {
|
|
return user.challenges.indexOf(challenge._id) !== -1;
|
|
},
|
|
},
|
|
computed: {
|
|
filteredChallenges () {
|
|
const { filters } = this;
|
|
const { user } = this;
|
|
|
|
return this.challenges.filter(challenge => {
|
|
const filteringMembership = filters.membership && filters.membership.length > 0;
|
|
|
|
// if both filters are selected, display all challenges
|
|
if (filteringMembership && filters.membership.indexOf('participating') !== -1
|
|
&& filteringMembership && filters.membership.indexOf('not_participating') !== -1) {
|
|
return true;
|
|
}
|
|
|
|
if (filteringMembership && filters.membership.indexOf('participating') !== -1) {
|
|
return this.isMemberOfChallenge(user, challenge);
|
|
}
|
|
if (filteringMembership && filters.membership.indexOf('not_participating') !== -1) {
|
|
return !this.isMemberOfChallenge(user, challenge);
|
|
}
|
|
return true;
|
|
});
|
|
},
|
|
},
|
|
};
|