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 2019/10/22 18:04:09 UTC

[openmeetings] branch master updated: [OPENMEETINGS-2108] share button is visible for sharing/recording user

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 ebda144  [OPENMEETINGS-2108] share button is visible for sharing/recording user
ebda144 is described below

commit ebda144a439e46a4eac87ea79f3b1f1c1dc60cd5
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Wed Oct 23 01:03:50 2019 +0700

    [OPENMEETINGS-2108] share button is visible for sharing/recording user
---
 .../openmeetings/core/remote/StreamProcessor.java  | 20 ++++++++-------
 .../apache/openmeetings/web/room/RoomPanel.java    |  3 ++-
 .../openmeetings/web/room/menu/RoomMenuPanel.java  |  6 +++--
 .../web/room/menu/StartSharingButton.java          | 30 ----------------------
 .../openmeetings/web/room/raw-video-manager.js     |  2 ++
 5 files changed, 19 insertions(+), 42 deletions(-)

diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/StreamProcessor.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/StreamProcessor.java
index a9e10ec..4c33caf 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/StreamProcessor.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/StreamProcessor.java
@@ -308,6 +308,9 @@ public class StreamProcessor implements IStreamProcessor {
 
 	// Sharing
 	public boolean hasRightsToShare(Client c) {
+		if (!kHandler.isConnected()) {
+			return false;
+		}
 		Room r = c.getRoom();
 		return r != null && Room.Type.interview != r.getType()
 				&& !r.isHidden(RoomElement.ScreenSharing)
@@ -316,9 +319,6 @@ public class StreamProcessor implements IStreamProcessor {
 	}
 
 	public boolean screenShareAllowed(Client c) {
-		if (!kHandler.isConnected()) {
-			return false;
-		}
 		Room r = c.getRoom();
 		return hasRightsToShare(c) && !isSharing(r.getId());
 	}
@@ -493,14 +493,16 @@ public class StreamProcessor implements IStreamProcessor {
 		Client c = cm.getBySid(stream.getSid());
 		if (c != null) {
 			StreamDesc sd = c.getStream(uid);
-			c.removeStream(uid);
-			if (StreamType.WEBCAM == sd.getType()) {
-				for (Activity a : sd.getActivities()) {
-					c.remove(a);
+			if (sd != null) {
+				c.removeStream(uid);
+				if (StreamType.WEBCAM == sd.getType()) {
+					for (Activity a : sd.getActivities()) {
+						c.remove(a);
+					}
 				}
+				cm.update(c);
+				WebSocketHelper.sendRoom(new TextRoomMessage(c.getRoomId(), c, RoomMessage.Type.rightUpdated, c.getUid()));
 			}
-			cm.update(c);
-			WebSocketHelper.sendRoom(new TextRoomMessage(c.getRoomId(), c, RoomMessage.Type.rightUpdated, c.getUid()));
 		}
 		streamByUid.remove(uid);
 	}
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 bd32425..17884d2 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
@@ -769,7 +769,8 @@ public class RoomPanel extends BasePanel {
 	}
 
 	public boolean screenShareAllowed() {
-		return streamProcessor.screenShareAllowed(getClient());
+		Client c = getClient();
+		return c.getScreenStream().isPresent() || streamProcessor.screenShareAllowed(c);
 	}
 
 	public RoomSidebar getSidebar() {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
index 37c4bc4..64be71f 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
@@ -61,12 +61,13 @@ import org.apache.wicket.spring.injection.annot.SpringBean;
 import org.apache.wicket.util.string.Strings;
 
 import com.github.openjson.JSONObject;
+import com.googlecode.wicket.jquery.ui.form.button.Button;
 import com.googlecode.wicket.jquery.ui.widget.menu.IMenuItem;
 
 public class RoomMenuPanel extends Panel {
 	private static final long serialVersionUID = 1L;
 	private MenuPanel menuPanel;
-	private final StartSharingButton shareBtn;
+	private final Button shareBtn;
 	private final Label roomName;
 	private static final FastDateFormat df = FastDateFormat.getInstance("dd.MM.yyyy HH:mm");
 	private final OmButton askBtn = new OmButton("ask") {
@@ -116,7 +117,8 @@ public class RoomMenuPanel extends Panel {
 		add((roomName = new Label("roomName", r.getName())).setOutputMarkupPlaceholderTag(true).setOutputMarkupId(true));
 		String tag = getGroup().getTag();
 		add(logo, new Label("tag", tag).setVisible(!Strings.isEmpty(tag)));
-		add(shareBtn = new StartSharingButton("share"));
+		add(shareBtn = new Button("share"));
+		shareBtn.setOutputMarkupId(true).setOutputMarkupPlaceholderTag(true);
 		pollsSubMenu = new PollsSubMenu(room, this);
 		actionsSubMenu = new ActionsSubMenu(room, this);
 	}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/StartSharingButton.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/StartSharingButton.java
deleted file mode 100644
index 12d1d81..0000000
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/StartSharingButton.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License") +  you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.openmeetings.web.room.menu;
-
-import com.googlecode.wicket.jquery.ui.form.button.Button;
-
-public class StartSharingButton extends Button {
-	private static final long serialVersionUID = 1L;
-
-	public StartSharingButton(String id) {
-		super(id);
-		setOutputMarkupId(true).setOutputMarkupPlaceholderTag(true);
-	}
-}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video-manager.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video-manager.js
index bb9cab8..07317b6 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video-manager.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video-manager.js
@@ -198,6 +198,8 @@ var VideoManager = (function() {
 				if (Room.getOptions().autoOpenSharing === true) {
 					_playSharing(sd, iceServers);
 				}
+			} else if (VideoUtil.isRecording(sd)) {
+				return;
 			} else {
 				_onReceive(m);
 			}