Repository: openmeetings
Updated Branches:
  refs/heads/4.0.x a0e694dc5 -> e4847e6ad


[OPENMEETINGS-1810] A&A redesigned


Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo
Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/e4847e6a
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/e4847e6a
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/e4847e6a

Branch: refs/heads/4.0.x
Commit: e4847e6adaf81dadd249caabba5faeef48202d08
Parents: a0e694d
Author: Maxim Solodovnik <[email protected]>
Authored: Sat Dec 30 22:00:01 2017 +0700
Committer: Maxim Solodovnik <[email protected]>
Committed: Sat Dec 30 22:00:01 2017 +0700

----------------------------------------------------------------------
 .../apache/openmeetings/web/room/RoomPanel.html |  1 -
 .../apache/openmeetings/web/room/RoomPanel.java | 33 +++++++---------
 .../web/room/activities/activities.js           | 40 +++++++++++++++-----
 .../apache/openmeetings/web/room/room-base.js   | 21 ++++++----
 .../web/room/sidebar/RoomSidebar.html           |  1 +
 .../web/room/sidebar/RoomSidebar.java           | 33 ++++++++++------
 .../src/main/webapp/css/activities.css          | 14 ++++---
 openmeetings-web/src/main/webapp/css/tree.css   |  2 -
 8 files changed, 90 insertions(+), 55 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/e4847e6a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
index ee0ea95..2b7a90a 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
@@ -27,7 +27,6 @@
                                <div class="wb-drop-area"></div>
                                <div class="wb-area" 
wicket:id="whiteboard"></div>
                        </div>
-                       <div wicket:id="activities"></div>
                </div>
                <div wicket:id="event-details"></div>
                <div wicket:id="access-denied"></div>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/e4847e6a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
index 20d84f0..f25ae26 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
@@ -68,7 +68,6 @@ import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.common.BasePanel;
 import org.apache.openmeetings.web.pages.BasePage;
-import org.apache.openmeetings.web.room.activities.ActivitiesPanel;
 import org.apache.openmeetings.web.room.activities.Activity;
 import org.apache.openmeetings.web.room.menu.RoomMenuPanel;
 import org.apache.openmeetings.web.room.sidebar.RoomSidebar;
@@ -189,7 +188,6 @@ public class RoomPanel extends BasePanel {
 
        private RoomMenuPanel menu;
        private RoomSidebar sidebar;
-       private ActivitiesPanel activities;
        private final AbstractWbPanel wb;
        private String sharingUser = null;
        private String recordingUser = null;
@@ -283,7 +281,6 @@ public class RoomPanel extends BasePanel {
                }
                room.add(roomEnter);
                room.add(sidebar = new RoomSidebar("sidebar", this));
-               room.add(activities = new ActivitiesPanel("activities", this));
                add(roomClosed = new RedirectMessageDialog("room-closed", 
"1098", r.isClosed(), r.getRedirectURL()));
                if (r.isClosed()) {
                        room.setVisible(false);
@@ -532,49 +529,49 @@ public class RoomPanel extends BasePanel {
                                        case roomEnter:
                                                sidebar.update(handler);
                                                menu.update(handler);
-                                               activities.add(new Activity(m, 
Activity.Type.roomEnter), handler);
+                                               sidebar.addActivity(new 
Activity(m, Activity.Type.roomEnter), handler);
                                                break;
                                        case roomExit:
                                                sidebar.update(handler);
-                                               activities.add(new Activity(m, 
Activity.Type.roomExit), handler);
+                                               sidebar.addActivity(new 
Activity(m, Activity.Type.roomExit), handler);
                                                break;
                                        case roomClosed:
                                                
handler.add(room.setVisible(false));
                                                roomClosed.open(handler);
                                                break;
                                        case requestRightModerator:
-                                               activities.add(new 
Activity((TextRoomMessage)m, Activity.Type.reqRightModerator), handler);
+                                               sidebar.addActivity(new 
Activity((TextRoomMessage)m, Activity.Type.reqRightModerator), handler);
                                                break;
                                        case requestRightPresenter:
-                                               activities.add(new 
Activity((TextRoomMessage)m, Activity.Type.reqRightPresenter), handler);
+                                               sidebar.addActivity(new 
Activity((TextRoomMessage)m, Activity.Type.reqRightPresenter), handler);
                                                break;
                                        case requestRightWb:
-                                               activities.add(new 
Activity((TextRoomMessage)m, Activity.Type.reqRightWb), handler);
+                                               sidebar.addActivity(new 
Activity((TextRoomMessage)m, Activity.Type.reqRightWb), handler);
                                                break;
                                        case requestRightShare:
-                                               activities.add(new 
Activity((TextRoomMessage)m, Activity.Type.reqRightShare), handler);
+                                               sidebar.addActivity(new 
Activity((TextRoomMessage)m, Activity.Type.reqRightShare), handler);
                                                break;
                                        case requestRightRemote:
-                                               activities.add(new 
Activity((TextRoomMessage)m, Activity.Type.reqRightRemote), handler);
+                                               sidebar.addActivity(new 
Activity((TextRoomMessage)m, Activity.Type.reqRightRemote), handler);
                                                break;
                                        case requestRightA:
-                                               activities.add(new 
Activity((TextRoomMessage)m, Activity.Type.reqRightA), handler);
+                                               sidebar.addActivity(new 
Activity((TextRoomMessage)m, Activity.Type.reqRightA), handler);
                                                break;
                                        case requestRightAv:
-                                               activities.add(new 
Activity((TextRoomMessage)m, Activity.Type.reqRightAv), handler);
+                                               sidebar.addActivity(new 
Activity((TextRoomMessage)m, Activity.Type.reqRightAv), handler);
                                                break;
                                        case requestRightMute:
-                                               activities.add(new 
Activity((TextRoomMessage)m, Activity.Type.reqRightMute), handler);
+                                               sidebar.addActivity(new 
Activity((TextRoomMessage)m, Activity.Type.reqRightMute), handler);
                                                break;
                                        case requestRightExclusive:
-                                               activities.add(new 
Activity((TextRoomMessage)m, Activity.Type.reqRightExclusive), handler);
+                                               sidebar.addActivity(new 
Activity((TextRoomMessage)m, Activity.Type.reqRightExclusive), handler);
                                                break;
                                        case activityRemove:
-                                               
activities.remove(((TextRoomMessage)m).getText(), handler);
+                                               
sidebar.removeActivity(((TextRoomMessage)m).getText(), handler);
                                                break;
                                        case haveQuestion:
                                                if 
(getClient().hasRight(Room.Right.moderator) || 
getUserId().equals(m.getUserId())) {
-                                                       activities.add(new 
Activity((TextRoomMessage)m, Activity.Type.haveQuestion), handler);
+                                                       sidebar.addActivity(new 
Activity((TextRoomMessage)m, Activity.Type.haveQuestion), handler);
                                                }
                                                break;
                                        case kick:
@@ -842,10 +839,6 @@ public class RoomPanel extends BasePanel {
                return wb;
        }
 
-       public ActivitiesPanel getActivities() {
-               return activities;
-       }
-
        public String getSharingUser() {
                return sharingUser;
        }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/e4847e6a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/activities.js
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/activities.js
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/activities.js
index 0b49059..b5d66c8 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/activities.js
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/activities.js
@@ -1,7 +1,7 @@
 /* Licensed under the Apache License, Version 2.0 (the "License") 
http://www.apache.org/licenses/LICENSE-2.0 */
 var Activities = function() {
-       const closedHeight = "20px", timeout = 10000;
-       let activities, aclean, area, openedHeight = "345px", inited = false;
+       const closedHeight = 20, closedHeightPx = closedHeight + 'px', timeout 
= 10000;
+       let activities, aclean, area, openedHeight = 345, openedHeightPx = 
openedHeight + 'px', inited = false;
 
        function _load() {
                const s = Settings.load();
@@ -26,14 +26,34 @@ var Activities = function() {
                if (isClosed()) {
                        $('.control.block .ui-icon', 
activities).removeClass('ui-icon-caret-1-n').addClass('ui-icon-caret-1-s');
                        $('.control.block', 
activities).removeClass('ui-state-highlight');
-                       activities.animate({height: openedHeight}, 1000);
+                       activities.animate(
+                               {
+                                       height: openedHeightPx
+                                       , top: '-' + openedHeightPx
+                               }
+                               , 1000
+                               , function() {
+                                       activities.css({'top': ''});
+                                       Room.setSize();
+                               }
+                       );
                        activities.resizable('option', 'disabled', false);
                }
        }
        function _close() {
                if (!isClosed()) {
                        $('.control.block .ui-icon', 
activities).removeClass('ui-icon-caret-1-s').addClass('ui-icon-caret-1-n');
-                       activities.animate({height: closedHeight}, 1000);
+                       activities.animate(
+                               {
+                                       height: closedHeight
+                                       , top: (openedHeight - closedHeight) + 
'px'
+                               }
+                               , 1000
+                               , function() {
+                                       activities.css({'top': ''});
+                                       Room.setSize();
+                               }
+                       );
                        activities.resizable('option', 'disabled', true);
                }
        }
@@ -77,14 +97,16 @@ var Activities = function() {
                        }
                        activities = $('#activities');
                        activities.resizable({
-                               handles: "n, e"
+                               handles: 'n'
                                , disabled: isClosed()
-                               , alsoResize: "#activities .area"
+                               , alsoResize: '#activities .area'
                                , minHeight: 195
-                               , minWidth: 260
+                               , resize: function(event, ui) {
+                                       activities.css({'top': ''});
+                               }
                                , stop: function(event, ui) {
-                                       activities.css({'top': '', 'right': 
''});
-                                       openedHeight = ui.size.height + "px";
+                                       openedHeight = ui.size.height;
+                                       openedHeightPx = openedHeight + 'px';
                                }
                        });
                        area = activities.find('.area');

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/e4847e6a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room-base.js
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room-base.js 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room-base.js
index c856ee0..ba3526f 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room-base.js
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room-base.js
@@ -540,13 +540,14 @@ var VideoManager = (function() {
 })();
 var Room = (function() {
        const self = {}, sbSide = Settings.isRtl ? 'right' : 'left';
-       let options, menuHeight, chat, sb, dock;
+       let options, menuHeight, chat, sb, dock, activities;
 
        function _init(_options) {
                options = _options;
                window.WbArea = options.interview ? InterviewWbArea() : 
DrawWbArea();
                const menu = $('.room.box .room.menu');
                chat = $('#chatPanel');
+               activities = $('#activities');
                sb = $('.room.sidebar').css(sbSide, '0px');
                dock = sb.find('.btn-dock').button({
                        icon: "ui-icon icon-undock"
@@ -578,7 +579,9 @@ var Room = (function() {
                        .button('refresh');
                menuHeight = menu.length === 0 ? 0 : menu.height();
                VideoManager.init();
-               Activities.init();
+               if (typeof(Activities) !== 'undefined') {
+                       Activities.init();
+               }
        }
        function _getSelfAudioClient() {
                const vw = $('#video' + Room.getOptions().uid);
@@ -632,13 +635,17 @@ var Room = (function() {
        function _setSize() {
                const sbW = _sbWidth()
                        , w = $(window).width() - sbW - 8
+                       , ah = !!activities && activities.is(':visible') ? 
activities.height() : 0
                        , h = $(window).height() - menuHeight - 3
+                       , hh = h - 5
                        , p = sb.find('.tabs')
-                       , holder = $('.room.holder');
-               sb.height(h);
-               const hh = h - 5;
-               p.height(hh);
-               $(".user.list", p).height(hh - $("ul", p).height() - 
$(".user.header", p).height() - 5);
+                       , ulh = $("ul", p).height()
+                       , holder = $('.room.holder')
+                       , fl = $('.file.list', p);
+               sb.height(h - ah);
+               p.height(hh - ah);
+               $('.user.list', p).height(hh - ulh - ah - $('.user.header', 
p).height() - 5);
+               $('.trees', fl).height(hh - ulh - ah - $('.trash-toolbar', 
fl).height() - $('.sizes', fl).height() - 5);
                if (sbW > 255) {
                        holder.addClass('big').removeClass('small');
                } else {

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/e4847e6a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.html
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.html
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.html
index 75de098..0d8f9d0 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.html
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.html
@@ -47,6 +47,7 @@
                        <div class="file list" wicket:id="tree"></div>
                </div>
        </div>
+       <div wicket:id="activities"></div>
        <div wicket:id="addFolder"></div>
        <form wicket:id="form"><div wicket:id="confirm-trash"></div></form>
        <div wicket:id="upload"></div>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/e4847e6a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
index f5e6b46..6eed1f9 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
@@ -29,7 +29,6 @@ import java.util.ArrayList;
 
 import org.apache.openmeetings.core.util.WebSocketHelper;
 import org.apache.openmeetings.db.entity.basic.Client;
-import org.apache.openmeetings.db.entity.basic.Client.Activity;
 import org.apache.openmeetings.db.entity.basic.Client.Pod;
 import org.apache.openmeetings.db.entity.room.Room;
 import org.apache.openmeetings.db.entity.room.Room.Right;
@@ -43,6 +42,8 @@ import org.apache.openmeetings.web.common.NameDialog;
 import org.apache.openmeetings.web.room.RoomPanel;
 import org.apache.openmeetings.web.room.RoomPanel.Action;
 import org.apache.openmeetings.web.room.VideoSettings;
+import org.apache.openmeetings.web.room.activities.ActivitiesPanel;
+import org.apache.openmeetings.web.room.activities.Activity;
 import org.apache.openmeetings.web.util.ExtendedClientProperties;
 import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -86,6 +87,7 @@ public class RoomSidebar extends Panel {
        private boolean avInited = false;
        private Client kickedClient;
        private VideoSettings settings = new VideoSettings("settings");
+       private ActivitiesPanel activities;
        private final ListView<Client> users = new ListView<Client>("user", new 
ArrayList<Client>()) {
                private static final long serialVersionUID = 1L;
 
@@ -127,7 +129,7 @@ public class RoomSidebar extends Panel {
                                        {
                                                JSONObject obj = uid.isEmpty() 
? new JSONObject() : new JSONObject(uid);
                                                Client _c = 
getOnlineClient(obj.getString("uid"));
-                                               if (_c == null || 
!_c.hasActivity(Activity.broadcastA)) {
+                                               if (_c == null || 
!_c.hasActivity(Client.Activity.broadcastA)) {
                                                        return;
                                                }
                                                if 
(cl.hasRight(Right.moderator) || cl.getUid().equals(_c.getUid())) {
@@ -192,7 +194,7 @@ public class RoomSidebar extends Panel {
                                if (Strings.isEmpty(uid)) {
                                        return;
                                }
-                               Activity a = 
Activity.valueOf(getRequest().getRequestParameters().getParameterValue(PARAM_ACTIVITY).toString());
+                               Client.Activity a = 
Client.Activity.valueOf(getRequest().getRequestParameters().getParameterValue(PARAM_ACTIVITY).toString());
                                StringValue podStr = 
getRequest().getRequestParameters().getParameterValue(PARAM_POD);
                                Pod pod = podStr.isEmpty() ? Pod.none : 
Pod.valueOf(podStr.toString());
                                Client c = getOnlineClient(uid);
@@ -215,7 +217,7 @@ public class RoomSidebar extends Panel {
                                if (!avInited) {
                                        avInited = true;
                                        if (Room.Type.conference == 
room.getRoom().getType()) {
-                                               toggleActivity(c, 
Activity.broadcastAV, Pod.none);
+                                               toggleActivity(c, 
Client.Activity.broadcastAV, Pod.none);
                                        }
                                }
                                sendUpdatedClient(c);
@@ -260,6 +262,7 @@ public class RoomSidebar extends Panel {
                add(form.add(confirmTrash), upload = new UploadDialog("upload", 
room, roomFiles));
                updateShowFiles(null);
                add(new JQueryUIBehavior("#room-sidebar-tabs", "tabs"));
+               add(activities = new ActivitiesPanel("activities", room));
        }
 
        @Override
@@ -306,26 +309,26 @@ public class RoomSidebar extends Panel {
                upload.open(handler);
        }
 
-       public void toggleActivity(Client c, Activity a, Pod _pod) {
+       public void toggleActivity(Client c, Client.Activity a, Pod _pod) {
                if (c == null) {
                        return;
                }
                if (!activityAllowed(c, a, room.getRoom()) && 
room.getClient().hasRight(Right.moderator)) {
-                       if (a == Activity.broadcastA || a == 
Activity.broadcastAV) {
+                       if (a == Client.Activity.broadcastA || a == 
Client.Activity.broadcastAV) {
                                c.allow(Room.Right.audio);
                        }
-                       if (!room.getRoom().isAudioOnly() && (a == 
Activity.broadcastV || a == Activity.broadcastAV)) {
+                       if (!room.getRoom().isAudioOnly() && (a == 
Client.Activity.broadcastV || a == Client.Activity.broadcastAV)) {
                                c.allow(Room.Right.video);
                        }
                }
                if (activityAllowed(c, a, room.getRoom())) {
-                       if (a == Activity.broadcastA && !c.isMicEnabled()) {
+                       if (a == Client.Activity.broadcastA && 
!c.isMicEnabled()) {
                                return;
                        }
-                       if (a == Activity.broadcastV && !c.isCamEnabled()) {
+                       if (a == Client.Activity.broadcastV && 
!c.isCamEnabled()) {
                                return;
                        }
-                       if (a == Activity.broadcastAV && !c.isMicEnabled() && 
!c.isCamEnabled()) {
+                       if (a == Client.Activity.broadcastAV && 
!c.isMicEnabled() && !c.isCamEnabled()) {
                                return;
                        }
                        Pod pod = c.getPod();
@@ -340,7 +343,7 @@ public class RoomSidebar extends Panel {
                }
        }
 
-       public static boolean activityAllowed(Client c, Activity a, Room room) {
+       public static boolean activityAllowed(Client c, Client.Activity a, Room 
room) {
                boolean r = false;
                switch (a) {
                        case broadcastA:
@@ -361,4 +364,12 @@ public class RoomSidebar extends Panel {
        public void setFilesActive(IPartialPageRequestHandler handler) {
                
handler.appendJavaScript("$('#room-sidebar-tabs').tabs('option', 'active', 
1);");
        }
+
+       public void addActivity(Activity a, IPartialPageRequestHandler handler) 
{
+               activities.add(a, handler);
+       }
+
+       public void removeActivity(String uid, IPartialPageRequestHandler 
handler) {
+               activities.remove(uid, handler);
+       }
 }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/e4847e6a/openmeetings-web/src/main/webapp/css/activities.css
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/webapp/css/activities.css 
b/openmeetings-web/src/main/webapp/css/activities.css
index dafbb24..ff9ecac 100644
--- a/openmeetings-web/src/main/webapp/css/activities.css
+++ b/openmeetings-web/src/main/webapp/css/activities.css
@@ -17,12 +17,14 @@
  * under the License.
  */
 #activities {
-       position: fixed;
-       z-index: 2000;
-       bottom: 0px;
-       left: 10px;
-       width: 600px;
        height: 20px;
+       overflow: hidden;
+}
+#activities .ui-resizable-handle {
+       width: 100%;
+}
+#activities .ui-widget-header {
+       white-space: nowrap;
 }
 #activities .control.block .ui-icon {
        text-align: center;
@@ -30,6 +32,8 @@
 #activities .control.block .label {
        display: inline-block;
        padding-left: 20px;
+       text-overflow: ellipsis;
+       white-space: nowrap;
 }
 #activities .ctrl {
        padding-left: 20px;

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/e4847e6a/openmeetings-web/src/main/webapp/css/tree.css
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/webapp/css/tree.css 
b/openmeetings-web/src/main/webapp/css/tree.css
index 37e9a5b..beb2b1b 100644
--- a/openmeetings-web/src/main/webapp/css/tree.css
+++ b/openmeetings-web/src/main/webapp/css/tree.css
@@ -25,8 +25,6 @@
        display: inline-block;
 }
 .file.tree .trees {
-       min-height: 400px;
-       max-height: 600px;
        overflow-x: hidden;
        overflow-y: auto;
 }

Reply via email to