From 9e655d70d2fc7a686220f0f5c00a1d0eeb384366 Mon Sep 17 00:00:00 2001 From: Liza <49509154+lizapritchard@users.noreply.github.com> Date: Fri, 28 May 2021 17:57:03 -0400 Subject: [PATCH] Fix "Not Participating" filter checkbox on Discover Challenges screen, Fixes #13025 (#13183) * 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 --- .../components/challenges/findChallenges.vue | 8 ++-- .../components/challenges/myChallenges.vue | 23 +---------- .../src/components/challenges/sidebar.vue | 41 ++++--------------- .../client/src/mixins/challengeUtilities.js | 24 +++++++++++ 4 files changed, 36 insertions(+), 60 deletions(-) diff --git a/website/client/src/components/challenges/findChallenges.vue b/website/client/src/components/challenges/findChallenges.vue index 55b972a169..bf9ad35f05 100644 --- a/website/client/src/components/challenges/findChallenges.vue +++ b/website/client/src/components/challenges/findChallenges.vue @@ -31,7 +31,8 @@

@@ -41,7 +42,7 @@

@@ -170,9 +171,6 @@ export default { }, computed: { ...mapState({ user: 'user.data' }), - filteredChallenges () { - return this.challenges; - }, }, mounted () { this.$store.dispatch('common:setTitle', { diff --git a/website/client/src/components/challenges/myChallenges.vue b/website/client/src/components/challenges/myChallenges.vue index 7d02305729..91f7e3d804 100644 --- a/website/client/src/components/challenges/myChallenges.vue +++ b/website/client/src/components/challenges/myChallenges.vue @@ -51,7 +51,7 @@

@@ -61,7 +61,7 @@

@@ -197,25 +197,6 @@ export default { }, computed: { ...mapState({ user: 'user.data' }), - filteredChallenges () { - const { filters } = this; - const { user } = this; - - return this.challenges.filter(challenge => { - let isMember = true; - - const filteringRole = filters.roles && filters.roles.length > 0; - if (filteringRole && filters.roles.indexOf('participating') !== -1) { - isMember = this.isMemberOfChallenge(user, challenge); - } - - if (filteringRole && filters.roles.indexOf('not_participating') !== -1) { - isMember = !this.isMemberOfChallenge(user, challenge); - } - - return isMember; - }); - }, }, mounted () { this.$store.dispatch('common:setTitle', { diff --git a/website/client/src/components/challenges/sidebar.vue b/website/client/src/components/challenges/sidebar.vue index fed641344d..827d07dcac 100644 --- a/website/client/src/components/challenges/sidebar.vue +++ b/website/client/src/components/challenges/sidebar.vue @@ -34,42 +34,19 @@
- -
-
- - -
-
-
{ + 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; + }); + }, + }, };