You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2017/12/30 15:00:15 UTC
openmeetings git commit: [OPENMEETINGS-1810] A&A redesigned
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 <so...@gmail.com>
Authored: Sat Dec 30 22:00:01 2017 +0700
Committer: Maxim Solodovnik <so...@gmail.com>
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;
}