This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git


The following commit(s) were added to refs/heads/master by this push:
     new 96d9435  [OPENMEETINGS-2240] user list is sorted
96d9435 is described below

commit 96d9435fc96ba60107656502d87eb0e2037350a3
Author: Maxim Solodovnik <[email protected]>
AuthorDate: Tue Apr 14 22:57:12 2020 +0700

    [OPENMEETINGS-2240] user list is sorted
---
 .../openmeetings/db/entity/basic/Client.java       |  4 ++--
 .../org/apache/openmeetings/web/room/raw-room.js   | 26 ++++++++++++++--------
 .../apache/openmeetings/web/room/raw-video-util.js |  2 +-
 openmeetings-web/src/main/webapp/css/raw-room.css  |  2 +-
 4 files changed, 21 insertions(+), 13 deletions(-)

diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
index 6ce340b..1b4d8dc 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
@@ -360,7 +360,8 @@ public class Client implements IDataProviderEntity, 
IWsClient {
                                a.put("country", 
user.getAddress().getCountry());
                        }
                }
-               return o.put("user", u);
+               return o.put("user", u)
+                               .put("level", hasRight(Right.MODERATOR) ? 5 : 
(hasRight(Right.WHITEBOARD) ? 3 : 1));
        }
 
        public JSONObject toJson(boolean self) {
@@ -553,7 +554,6 @@ public class Client implements IDataProviderEntity, 
IWsClient {
                                        .put("width", swidth)
                                        .put("height", sheight)
                                        .put("activities", new 
JSONArray(sactivities))
-                                       .put("level", hasRight(Right.MODERATOR) 
? 5 : (hasRight(Right.WHITEBOARD) ? 3 : 1))
                                        .put("cuid", uid));
                }
 
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-room.js 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-room.js
index 214982c..7866fe2 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-room.js
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-room.js
@@ -341,19 +341,23 @@ var Room = (function() {
                __rightIcon(c, elem, ['MODERATOR'], '.right.moderator', () => 
true);
        }
        function __setStatus(c, le) {
-               const status = le.find('.user-status');
+               const status = le.find('.user-status')
+                       , mode = c.level == 5 ? 'mod' : (c.level == 3 ? 'wb' : 
'user');
                status.removeClass('mod wb user');
-               if (_hasRight('MODERATOR', c.rights)) {
-                       status.attr('title', 
status.data('mod')).addClass('mod');;
-               } else if (_hasRight('WHITEBOARD', c.rights)) {
-                       status.attr('title', status.data('wb')).addClass('wb');;
-               } else {
-                       status.attr('title', 
status.data('user')).addClass('user');;
-               }
+               status.attr('title', status.data(mode)).addClass(mode);
+               le.data('level', c.level);
        }
        function __updateCount() {
                $('#room-sidebar-users-tab 
.user-count').text($('#room-sidebar-tab-users .user-list .users 
.user.entry').length);
        }
+       function __sortUserList() {
+               const container = $('#room-sidebar-tab-users .user-list 
.users');
+               container.find('.user.entry').sort((_u1, _u2) => {
+                       const u1 = $(_u1)
+                               , u2 = $(_u2);
+                       return u2.data('level') - u1.data('level') || 
u1.attr('title').localeCompare(u2.attr('title'));
+               }).appendTo(container);
+       }
        function _addClient(_clients) {
                const clients = Array.isArray(_clients) ? _clients : [_clients];
                clients.forEach(c => {
@@ -373,6 +377,7 @@ var Room = (function() {
                        _updateClient(c);
                });
                __updateCount();
+               __sortUserList();
        }
        function _updateClient(c) {
                const self = c.uid === options.uid
@@ -451,7 +456,10 @@ var Room = (function() {
                ($('.main.room')[0]).style.setProperty(key, val);
        };
        self.addClient = _addClient;
-       self.updateClient = _updateClient;
+       self.updateClient = function(c) {
+               _updateClient(c);
+               __sortUserList();
+       };
        self.removeClient = function(uid) {
                Room.getClient(uid).remove();
                __updateCount();
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video-util.js
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video-util.js
index 2d971b9..f041211 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video-util.js
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video-util.js
@@ -163,7 +163,7 @@ var VideoUtil = (function() {
                $(VIDWIN_SEL).toArray().sort((v1, v2) => {
                        const c1 = __getDialog(v1).data().stream()
                                , c2 = __getDialog(v2).data().stream();
-                       return c1.level - c2.level || 
c1.user.displayName.localeCompare(c2.user.displayName);
+                       return c2.level - c1.level || 
c1.user.displayName.localeCompare(c2.user.displayName);
                }).forEach(_v => {
                        const v = $(_v);
                        __getDialog(v)
diff --git a/openmeetings-web/src/main/webapp/css/raw-room.css 
b/openmeetings-web/src/main/webapp/css/raw-room.css
index dcdc81b..0928127 100644
--- a/openmeetings-web/src/main/webapp/css/raw-room.css
+++ b/openmeetings-web/src/main/webapp/css/raw-room.css
@@ -383,7 +383,7 @@ html[dir="rtl"] .room-block .sb-wb .sidebar {
        right: 2px;
 }
 .room-block .sb-wb .sidebar .tab.om-icon.big .label {
-       max-width: 50px;
+       max-width: 45px;
        display: inline-block;
        text-overflow: ellipsis;
        overflow: hidden;

Reply via email to