diff --git a/src/components/app/MemberTemplate.vue b/src/components/app/MemberTemplate.vue index 82c0d55..cb7791d 100644 --- a/src/components/app/MemberTemplate.vue +++ b/src/components/app/MemberTemplate.vue @@ -54,9 +54,9 @@ export default { const roles = this.$store.getters["servers/selectedServerRoles"]; if (!roles) return undefined; - const filter = roles.filter(r => this.member.roles.includes(r.id)); + let filter = roles.filter(r => this.member.roles.includes(r.id)); if (!filter.length) { - return null; + filter = [roles.find(r => r.default)]; } return filter[0].color; } diff --git a/src/components/app/MembersList.vue b/src/components/app/MembersList.vue index 9af9a1d..093a87c 100644 --- a/src/components/app/MembersList.vue +++ b/src/components/app/MembersList.vue @@ -22,8 +22,12 @@ /> -
- Online ({{ noneRoleOnlineMembers.length }}) +
+ {{ defaultRole.name }} ({{ noneRoleOnlineMembers.length }})
r.default); + }, offlineMembers() { return this.members.filter(sm => sm.presense == 0); } diff --git a/src/components/app/Popouts/Popouts/ServerMemberContext.vue b/src/components/app/Popouts/Popouts/ServerMemberContext.vue index 4b329aa..f9b0746 100644 --- a/src/components/app/Popouts/Popouts/ServerMemberContext.vue +++ b/src/components/app/Popouts/Popouts/ServerMemberContext.vue @@ -139,13 +139,17 @@ export default { const roles = this.$store.getters["servers/roles"][ this.contextDetails.serverID ]; - - const map = roles.map(r => { - if (this.serverMember.roles && this.serverMember.roles.includes(r.id)) { - return Object.assign({}, r, { hasRole: true }); - } - return r; - }); + const map = roles + .filter(r => !r.default) + .map(r => { + if ( + this.serverMember.roles && + this.serverMember.roles.includes(r.id) + ) { + return Object.assign({}, r, { hasRole: true }); + } + return r; + }); return map; } diff --git a/src/components/app/Popouts/Popouts/ServerSettingsPanels/ManageRoles.vue b/src/components/app/Popouts/Popouts/ServerSettingsPanels/ManageRoles.vue index 74fd706..da8db9e 100644 --- a/src/components/app/Popouts/Popouts/ServerSettingsPanels/ManageRoles.vue +++ b/src/components/app/Popouts/Popouts/ServerSettingsPanels/ManageRoles.vue @@ -69,27 +69,40 @@ :key="index" >
-
{{ perm.name }}
+
+
{{ perm.name }}
+
{{ perm.info }}
+
Save Changes
- Cannot delete this role. + {{ + roles[selectedRoleIndex].default + ? "Cannot delete default role." + : "Cannot delete this role." + }}
{{ deleteButtonConfirmed ? "ARE YOU SURE?" : "Delete Role" }} @@ -222,7 +235,13 @@ export default { const roles = this.$store.getters["servers/roles"][ this.server.server_id ]; + if (!roles) { + return []; + } return [...roles].sort((a, b) => { + if (b.default) { + return -1; + } return a.order - b.order; }); }, @@ -425,15 +444,20 @@ export default { user-select: none; cursor: pointer; .box { - height: 20px; - width: 20px; + height: 30px; + width: 30px; flex-shrink: 0; - background-color: rgb(255, 31, 31); + background-color: rgb(95, 95, 95); margin-right: 5px; border-radius: 2px; &.checked { background-color: rgb(31, 154, 255); } } + .info { + color: rgb(255, 255, 255); + opacity: 0.7; + font-size: 15px; + } } diff --git a/src/components/app/Tabs/Explore/serverTemplate.vue b/src/components/app/Tabs/Explore/serverTemplate.vue index 071e9a5..76845b7 100644 --- a/src/components/app/Tabs/Explore/serverTemplate.vue +++ b/src/components/app/Tabs/Explore/serverTemplate.vue @@ -168,6 +168,7 @@ export default { flex: 1; height: 100%; flex-shrink: 0; + overflow: auto; .description { margin: 10px; diff --git a/src/components/app/Tabs/Explore/themesTemplate.vue b/src/components/app/Tabs/Explore/themesTemplate.vue index 639e49c..881aedd 100644 --- a/src/components/app/Tabs/Explore/themesTemplate.vue +++ b/src/components/app/Tabs/Explore/themesTemplate.vue @@ -145,6 +145,7 @@ export default { background: #04333f; flex: 1; height: 100%; + overflow: auto; flex-shrink: 0; .name { margin-top: 9px; diff --git a/src/store/modules/serversModule.js b/src/store/modules/serversModule.js index 98048a3..b8a2887 100644 --- a/src/store/modules/serversModule.js +++ b/src/store/modules/serversModule.js @@ -85,6 +85,12 @@ const actions = { server_id: server_id }); }, + removeAllRoles({ commit }, server_id) { + commit("UPDATE_SERVER_ROLES", { + roles: [], + server_id: server_id + }); + }, updateRole({ commit, state }, roleUpdates) { const updatedRoles = state.roles[roleUpdates.server_id].map(r => { if (r.id === roleUpdates.id) { diff --git a/src/store/modules/socketIOModule.js b/src/store/modules/socketIOModule.js index e4c636d..f09d661 100644 --- a/src/store/modules/socketIOModule.js +++ b/src/store/modules/socketIOModule.js @@ -392,6 +392,7 @@ const actions = { context.dispatch("servers/removePresences", server_id); context.dispatch("servers/removeServer", server_id); context.dispatch("servers/removeNotifications", server_id); + context.dispatch("servers/removeAllRoles", server_id); context.dispatch("servers/removeAllServerChannels", server_id); context.dispatch("deleteAllMessages", serverChannelIDs); }, @@ -502,6 +503,9 @@ const actions = { ["socket_server:updateRoles"](context, { roles }) { // eslint-disable-next-line prettier/prettier context.dispatch("servers/setServerRoles", roles); + }, + ["socket_server:roles"](context, { roles }) { + context.dispatch("servers/setServerRoles", roles); } }; diff --git a/src/utils/RolePermissions.js b/src/utils/RolePermissions.js index 0a7745d..69eace4 100644 --- a/src/utils/RolePermissions.js +++ b/src/utils/RolePermissions.js @@ -1,11 +1,13 @@ export const permissions = { ADMIN: { name: "Admin", - value: 1 + value: 1, + info: "Enables ALL permissions" }, - SEND_MESSAGE: { - name: "Send Message", - value: 2 + SEND_MESSAGES: { + name: "Send Messages", + value: 2, + info: "Send messages to server channels" } };