From 5ef0eece9a4ee9134560e9f3757f8138610051f8 Mon Sep 17 00:00:00 2001
From: Michael Telatynski <7t3chguy@gmail.com>
Date: Mon, 14 May 2018 16:09:22 +0100
Subject: [PATCH] refactor and sort
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---
src/components/views/rooms/RoomSettings.js | 65 +++++++++++++++-------
1 file changed, 45 insertions(+), 20 deletions(-)
diff --git a/src/components/views/rooms/RoomSettings.js b/src/components/views/rooms/RoomSettings.js
index 658f99223e..f1aba322e2 100644
--- a/src/components/views/rooms/RoomSettings.js
+++ b/src/components/views/rooms/RoomSettings.js
@@ -695,26 +695,51 @@ module.exports = React.createClass({
relatedGroupsEvent={this.props.room.currentState.getStateEvents('m.room.related_groups', '')}
/>;
- let userLevelsSection;
+ let privilegedUsersSection =
{ _t('No users have specific privileges in this room') }.
; // default
+ let mutedUsersSection;
if (Object.keys(userLevels).length) {
- userLevelsSection =
-
-
{ _t('Privileged Users') }
-
- { Object.keys(userLevels).map(function(user, i) {
- return (
- -
- { _t("%(user)s is a %(userRole)s", {
- user: user,
- userRole: ,
- }) }
-
- );
+ const privilegedUsers = [];
+ const mutedUsers = [];
+
+ Object.keys(userLevels).forEach(function(user) {
+ if (userLevels[user] > defaultUserLevel) { // privileged
+ privilegedUsers.push(-
+ { _t("%(user)s is a %(userRole)s", {
+ user: user,
+ userRole: ,
}) }
-
-
;
- } else {
- userLevelsSection = { _t('No users have specific privileges in this room') }.
;
+ );
+ } else if (userLevels[user] < defaultUserLevel) { // muted
+ mutedUsers.push(
+ { _t("%(user)s is a %(userRole)s", {
+ user: user,
+ userRole: ,
+ }) }
+ );
+ }
+ });
+
+ privilegedUsers.sort((a, b) => userLevels[b.key] - userLevels[a.key]);
+ mutedUsers.sort((a, b) => userLevels[a.key] - userLevels[b.key]);
+
+ if (privilegedUsers.length) {
+ privilegedUsersSection =
+
+
{ _t('Privileged Users') }
+
+
;
+ }
+ if (mutedUsers.length) {
+ mutedUsersSection =
+
+
{ _t('Muted Users') }
+
+
;
+ }
}
const banned = this.props.room.getMembersWithMembership("ban");
@@ -979,8 +1004,8 @@ module.exports = React.createClass({
{ unfederatableSection }
- { userLevelsSection }
-
+ { privilegedUsersSection }
+ { mutedUsersSection }
{ bannedUsersSection }
{ _t('Advanced') }