From bf21b8ac16492fd74a8bd4691a7dd9b8b8b9d6fd Mon Sep 17 00:00:00 2001 From: ajdj100 Date: Sun, 11 Jun 2023 09:43:27 -0400 Subject: [PATCH] Added searching and filtering. Filter by role is still waiting for implementation --- 17th Website/src/views/users.vue | 41 +++++++++++++++++++++++++------- 1 file changed, 32 insertions(+), 9 deletions(-) diff --git a/17th Website/src/views/users.vue b/17th Website/src/views/users.vue index 38029a9..bb0e2cb 100644 --- a/17th Website/src/views/users.vue +++ b/17th Website/src/views/users.vue @@ -12,14 +12,14 @@ export default { search: '', unitFilters: [ - { id: 1, name: 'All Groups', disabled: false }, - { id: 2, name: 'Alpha', disabled: false }, - { id: 3, name: 'Echo', disabled: false }, - { id: 4, name: 'HHC', disabled: false }, - { id: 5, name: 'Recruit', disabled: false }, + { id: 1, name: 'All Groups', filter: 'none', disabled: false }, + { id: 2, name: 'Alpha', filter: 'Alpha Company', disabled: false }, + { id: 3, name: 'Echo', filter: 'Echo Company', disabled: false }, + { id: 4, name: 'HHC', filter: 'HHC', disabled: false }, + { id: 5, name: 'Recruit', filter: 'Recruit', disabled: false }, ], - unitFilter: { id: 1, name: 'All Groups', disabled: false }, + unitFilter: { id: 1, name: 'All Groups', filter: 'none', disabled: false }, roleFilters: [ { id: 1, name: 'All Roles', disabled: false }, @@ -40,6 +40,21 @@ export default { this.search = '' this.unitFilter = this.unitFilters[0]; this.roleFilter = this.roleFilters[0]; + }, + filterByName(item) { + if (this.search != '') + return item.member_name.toLowerCase().includes(this.search.toLowerCase()); + else + return true; + }, + filterByUnit(item) { + if (this.unitFilter.filter != 'none') + return item.status == this.unitFilter.filter; + else + return true; + }, + filterByRole(item) { //THIS IS NOT IMPLEMENTED YET + return true; } }, components: { @@ -50,7 +65,15 @@ export default { Icon, }, mounted() { - QueryApolloGraphQL("getPageViewMemberRankStatusAll", "query Query {getPageViewMemberRankStatusAll {items {member_name,rank,status}}}").then(value => { console.log(value); this.items = value}) + QueryApolloGraphQL("getPageViewMemberRankStatusAll", "query Query {getPageViewMemberRankStatusAll {items {member_name,rank,status}}}").then(value => { this.items = value }) //console.log(value); for debug reasons + }, + computed: { + filteredTable() { + var newTable = this.items; + newTable = newTable.filter(this.filterByUnit); + newTable = newTable.filter(this.filterByName); + return newTable; + } } } @@ -62,7 +85,7 @@ export default {

Members

- +