From db39924ca0cb6824834fcc2b67d8fbdcb8672ec3 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 23 Dec 2019 12:00:13 +0000 Subject: [PATCH] show role category in members list --- src/components/app/MembersList.vue | 74 +++++++++++++++++++++++++++--- 1 file changed, 67 insertions(+), 7 deletions(-) diff --git a/src/components/app/MembersList.vue b/src/components/app/MembersList.vue index 7dce5b6..c36705a 100644 --- a/src/components/app/MembersList.vue +++ b/src/components/app/MembersList.vue @@ -4,21 +4,39 @@
Members ({{ members.length }})
-
- Online ({{ onlineMembers.length }}) +
+
+ {{ role.name }} ({{ role.members.length }}) +
+ +
+ +
+ Online ({{ noneRoleOnlineMembers.length }})
+
Offline ({{ offlineMembers.length }})
- sm.server_id === selectedServerID + sm => sm.server_id === this.selectedServerID ); let getMember = filteredSM.map(sm => { @@ -73,6 +94,45 @@ export default { onlineMembers() { return this.members.filter(sm => sm.presense >= 1); }, + roleMembers() { + let roleMembers = this.onlineMembers.filter( + sm => sm.roles && sm.roles.length + ); + return roleMembers; + }, + noneRoleOnlineMembers() { + const roles = this.$store.getters["servers/roles"][this.selectedServerID]; + return this.onlineMembers.filter(sm => { + if (!sm.roles || !sm.roles.length) { + return sm; + } + if (!roles.find(r => sm.roles.includes(r.id))) { + return sm; + } + return false; + }); + }, + serverRoles() { + const roles = this.$store.getters["servers/roles"][this.selectedServerID]; + let newRolesWithMembers = []; + + // loop through server roles + for (let index = 0; index < roles.length; index++) { + const role = { ...roles[index] }; + + // filter role members + const members = this.roleMembers.filter(rm => { + const filteredRoles = roles.filter(r => rm.roles.includes(r.id)); + return filteredRoles.length && filteredRoles[0].id === role.id; + }); + + if (members.length) { + role.members = members; + newRolesWithMembers.push(role); + } + } + return newRolesWithMembers; + }, offlineMembers() { return this.members.filter(sm => sm.presense == 0); } @@ -111,6 +171,6 @@ export default { cursor: default; color: #b5c4ca; font-size: 15px; - margin-left: 10px; + margin-left: 5px; }