Author: solomax
Date: Sun Apr 23 14:57:40 2017
New Revision: 1792368
URL: http://svn.apache.org/viewvc?rev=1792368&view=rev
Log:
[OPENMEETINGS-551] screen-sharing improved, build is fixed
Added:
openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/images/shared.png
(with props)
Modified:
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/RecordingService.java
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ScopeApplicationAdapter.java
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/session/SessionManager.java
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/RoomHelper.java
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/StreamClient.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.html
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js
openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/room.css
Modified:
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java?rev=1792368&r1=1792367&r2=1792368&view=diff
==============================================================================
---
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java
(original)
+++
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java
Sun Apr 23 14:57:40 2017
@@ -261,7 +261,7 @@ public class MobileService {
if (!Strings.isEmpty(c.getAvsettings()) &&
!c.isScreenClient()) {
Map<String, Object> map = new
HashMap<>();
add(map, "streamId", c.getStreamid());
- add(map, "broadCastId",
c.getBroadCastID());
+ add(map, "broadCastId",
c.getBroadCastId());
add(map, "userId", c.getUserId());
add(map, "firstname", c.getFirstname());
add(map, "lastname", c.getLastname());
@@ -339,7 +339,7 @@ public class MobileService {
StreamClient c =
sessionManager.getClientByStreamId(current.getClient().getId(), null);
Map<String, Object> result = new HashMap<>();
result.put("publicSid", c.getPublicSID());
- result.put("broadCastId", c.getBroadCastID());
+ result.put("broadCastId", c.getBroadCastId());
return result;
}
@@ -348,7 +348,7 @@ public class MobileService {
StreamClient c =
sessionManager.getClientByStreamId(current.getClient().getId(), null);
c.setAvsettings(avMode);
if (!"n".equals(avMode)) {
- c.setBroadCastID(nextBroadCastId());
+ c.setBroadCastId("" + nextBroadCastId());
c.setIsBroadcasting(true);
}
c.setVWidth(Double.valueOf(width).intValue());
@@ -362,7 +362,7 @@ public class MobileService {
hsm.put("message", new String[]{"avsettings", "0", avMode});
Map<String, Object> result = new HashMap<>();
if (!"n".equals(avMode)) {
- result.put("broadcastId", c.getBroadCastID());
+ result.put("broadcastId", c.getBroadCastId());
}
scopeAdapter.sendMessageToCurrentScope("sendVarsToMessageWithClient", hsm,
true, false);
Modified:
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/RecordingService.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/RecordingService.java?rev=1792368&r1=1792367&r2=1792368&view=diff
==============================================================================
---
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/RecordingService.java
(original)
+++
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/RecordingService.java
Sun Apr 23 14:57:40 2017
@@ -165,7 +165,7 @@ public class RecordingService implements
} else if
(rcl.getAvsettings().equals("av") || rcl.getAvsettings().equals("a") ||
rcl.getAvsettings().equals("v")) {
// if the user does
publish av, a, v
// But we only record
av or a, video only is not interesting
- String broadcastId = ""
+ rcl.getBroadCastID();
+ String broadcastId =
rcl.getBroadCastId();
String streamName =
generateFileName(recordingId, broadcastId);
// Add Meta Data
@@ -332,7 +332,7 @@ public class RecordingService implements
}
} else if
(rcl.getAvsettings().equals("av") || rcl.getAvsettings().equals("a") ||
rcl.getAvsettings().equals("v")) {
-
stopRecordingShow(scope, String.valueOf(rcl.getBroadCastID()).toString(),
rcl.getRecordingMetaDataId());
+
stopRecordingShow(scope, rcl.getBroadCastId(), rcl.getRecordingMetaDataId());
// Update Meta Data
metaDataDao.updateEndDate(rcl.getRecordingMetaDataId(), new Date());
@@ -422,7 +422,7 @@ public class RecordingService implements
// FIXME: Is there really a need to stop it
manually if the user
// just stops the stream?
- stopRecordingShow(scope,
String.valueOf(rcl.getBroadCastID()), rcl.getRecordingMetaDataId());
+ stopRecordingShow(scope, rcl.getBroadCastId(),
rcl.getRecordingMetaDataId());
// Update Meta Data
metaDataDao.updateEndDate(rcl.getRecordingMetaDataId(), new Date());
@@ -461,7 +461,7 @@ public class RecordingService implements
// if the user does publish av, a, v
// But we only record av or a, video only is
not interesting
- String streamName =
generateFileName(recordingId, String.valueOf(rcl.getBroadCastID()).toString());
+ String streamName =
generateFileName(recordingId, rcl.getBroadCastId());
// Add Meta Data
boolean isAudioOnly = false;
@@ -477,7 +477,7 @@ public class RecordingService implements
+ rcl.getLastname(), now,
isAudioOnly, isVideoOnly, false, streamName, rcl.getInterviewPodId());
// Start FLV recording
- recordShow(conn,
String.valueOf(rcl.getBroadCastID()).toString(), streamName, metaDataId, false,
recording.isInterview());
+ recordShow(conn, rcl.getBroadCastId(),
streamName, metaDataId, false, recording.isInterview());
rcl.setRecordingMetaDataId(metaDataId);
Modified:
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ScopeApplicationAdapter.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ScopeApplicationAdapter.java?rev=1792368&r1=1792367&r2=1792368&view=diff
==============================================================================
---
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ScopeApplicationAdapter.java
(original)
+++
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ScopeApplicationAdapter.java
Sun Apr 23 14:57:40 2017
@@ -588,10 +588,11 @@ public class ScopeApplicationAdapter ext
// In case its a screen sharing we start a new Video
for that
if (c.isScreenClient()) {
c.setScreenPublishStarted(true);
+ c.setBroadCastId(stream.getPublishedName());
sessionManager.updateClientByStreamId(streamid,
c, false, null);
}
if (!c.isMobile() &&
!Strings.isEmpty(c.getSecurityCode())) {
-
c.setBroadCastID(Long.parseLong(stream.getPublishedName()));
+ c.setBroadCastId(stream.getPublishedName());
c.setAvsettings("av");
c.setIsBroadcasting(true);
if (c.getVWidth() == 0 || c.getVHeight() == 0) {
@@ -680,8 +681,8 @@ public class ScopeApplicationAdapter ext
log.debug("*** +++++++ ########
sendClientBroadcastNotifications Any Client is Recording - stop that");
recordingService.stopRecordingShowForClient(current.getScope(), rcl);
}
- if (stream.getPublishedName().equals("" +
rcl.getBroadCastID())) {
- rcl.setBroadCastID(-1);
+ if
(stream.getPublishedName().equals(rcl.getBroadCastId())) {
+ rcl.setBroadCastId("-1");
rcl.setIsBroadcasting(false);
rcl.setAvsettings("n");
}
@@ -1239,7 +1240,7 @@ public class ScopeApplicationAdapter ext
currentClient.setRoomEnter(new Date());
currentClient.setFirstname("SIP Transport");
currentClient.setLastname(getSipTransportLastname(roomId));
- currentClient.setBroadCastID(Long.parseLong(broadCastId));
+ currentClient.setBroadCastId(broadCastId);
currentClient.setIsBroadcasting(true);
currentClient.setPublicSID(publicSID);
currentClient.setVWidth(120);
Modified:
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/session/SessionManager.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/session/SessionManager.java?rev=1792368&r1=1792367&r2=1792368&view=diff
==============================================================================
---
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/session/SessionManager.java
(original)
+++
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/session/SessionManager.java
Sun Apr 23 14:57:40 2017
@@ -213,7 +213,7 @@ public class SessionManager implements I
// get the corresponding user session object and update
the settings
StreamClient rclUsual =
getClientByPublicSID(rcm.getPublicSID(), server);
if (rclUsual != null) {
- rclUsual.setBroadCastID(rcm.getBroadCastID());
+ rclUsual.setBroadCastId(rcm.getBroadCastId());
rclUsual.setAvsettings(rcm.getAvsettings());
rclUsual.setVHeight(rcm.getVHeight());
rclUsual.setVWidth(rcm.getVWidth());
Modified:
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/RoomHelper.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/RoomHelper.java?rev=1792368&r1=1792367&r2=1792368&view=diff
==============================================================================
---
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/RoomHelper.java
(original)
+++
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/RoomHelper.java
Sun Apr 23 14:57:40 2017
@@ -33,7 +33,7 @@ public class RoomHelper {
json.put("screenShare", true)
.put("uid", sc.getPublicSID()) // unique
screen-sharing ID
- .put("broadcastId", sc.getBroadCastID())
+ .put("broadcastId", sc.getBroadCastId())
.put("width", sc.getVWidth())
.put("height", sc.getVHeight());
}
Modified:
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/StreamClient.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/StreamClient.java?rev=1792368&r1=1792367&r2=1792368&view=diff
==============================================================================
---
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/StreamClient.java
(original)
+++
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/StreamClient.java
Sun Apr 23 14:57:40 2017
@@ -46,22 +46,22 @@ import org.apache.openmeetings.util.Cale
*/
@Entity
@NamedQueries({
- @NamedQuery(name = "deleteAll", query = "DELETE FROM Client"),
- @NamedQuery(name = "deletedById", query = "DELETE FROM Client c WHERE
c.id = :id"),
- @NamedQuery(name = "deleteClientsByServer", query = "DELETE FROM Client
c WHERE c.server = :server"),
- @NamedQuery(name = "deletedByServerAndStreamId", query = "DELETE FROM
Client c WHERE c.server = :server AND c.streamid LIKE :streamid"),
- @NamedQuery(name = "countClients", query = "SELECT count(c.id) FROM
Client c"),
- @NamedQuery(name = "countClientsByServer", query = "SELECT count(c.id)
FROM Client c WHERE c.server = :server"),
- @NamedQuery(name = "countClientsByServerAndStreamId", query = "SELECT
count(c.id) FROM Client c WHERE c.streamid LIKE :streamid AND c.server =
:server"),
- @NamedQuery(name = "getClientByServerAndStreamId", query = "SELECT c
FROM Client c WHERE c.streamid LIKE :streamid AND c.server = :server"),
- @NamedQuery(name = "getClientsByPublicSIDAndServer", query = "SELECT c
FROM Client c WHERE c.publicSID LIKE :publicSID AND c.server = :server"),
- @NamedQuery(name = "getClientsByPublicSID", query = "SELECT c FROM
Client c WHERE c.publicSID LIKE :publicSID"),
- @NamedQuery(name = "getClientsByServer", query = "SELECT c FROM Client
c WHERE c.server = :server"),
- @NamedQuery(name = "getClients", query = "SELECT c FROM Client c"),
- @NamedQuery(name = "getClientsWithServer", query = "SELECT c FROM
Client c LEFT JOIN FETCH c.server"),
- @NamedQuery(name = "getClientsByUserId", query = "SELECT c FROM Client
c WHERE c.server = :server AND c.userId = :userId"),
- @NamedQuery(name = "getClientsByRoomId", query = "SELECT c FROM Client
c WHERE c.roomId = :roomId"),
- @NamedQuery(name = "getRoomsIdsByServer", query = "SELECT c.roomId FROM
Client c WHERE c.server = :server GROUP BY c.roomId")
+ @NamedQuery(name = "deleteAll", query = "DELETE FROM StreamClient"),
+ @NamedQuery(name = "deletedById", query = "DELETE FROM StreamClient c
WHERE c.id = :id"),
+ @NamedQuery(name = "deleteClientsByServer", query = "DELETE FROM
StreamClient c WHERE c.server = :server"),
+ @NamedQuery(name = "deletedByServerAndStreamId", query = "DELETE FROM
StreamClient c WHERE c.server = :server AND c.streamid LIKE :streamid"),
+ @NamedQuery(name = "countClients", query = "SELECT count(c.id) FROM
StreamClient c"),
+ @NamedQuery(name = "countClientsByServer", query = "SELECT count(c.id)
FROM StreamClient c WHERE c.server = :server"),
+ @NamedQuery(name = "countClientsByServerAndStreamId", query = "SELECT
count(c.id) FROM StreamClient c WHERE c.streamid LIKE :streamid AND c.server =
:server"),
+ @NamedQuery(name = "getClientByServerAndStreamId", query = "SELECT c
FROM StreamClient c WHERE c.streamid LIKE :streamid AND c.server = :server"),
+ @NamedQuery(name = "getClientsByPublicSIDAndServer", query = "SELECT c
FROM StreamClient c WHERE c.publicSID LIKE :publicSID AND c.server = :server"),
+ @NamedQuery(name = "getClientsByPublicSID", query = "SELECT c FROM
StreamClient c WHERE c.publicSID LIKE :publicSID"),
+ @NamedQuery(name = "getClientsByServer", query = "SELECT c FROM
StreamClient c WHERE c.server = :server"),
+ @NamedQuery(name = "getClients", query = "SELECT c FROM StreamClient
c"),
+ @NamedQuery(name = "getClientsWithServer", query = "SELECT c FROM
StreamClient c LEFT JOIN FETCH c.server"),
+ @NamedQuery(name = "getClientsByUserId", query = "SELECT c FROM
StreamClient c WHERE c.server = :server AND c.userId = :userId"),
+ @NamedQuery(name = "getClientsByRoomId", query = "SELECT c FROM
StreamClient c WHERE c.roomId = :roomId"),
+ @NamedQuery(name = "getRoomsIdsByServer", query = "SELECT c.roomId FROM
StreamClient c WHERE c.server = :server GROUP BY c.roomId")
})
@Table(name = "client")
@XmlRootElement
@@ -225,7 +225,7 @@ public class StreamClient implements ICl
* @see StreamClient#getBroadCastID()
*/
@Column(name = "broadcast_id")
- private long broadCastID = -2;
+ private String broadCastId = "-2";
/**
* @see StreamClient#getUserId()
@@ -629,12 +629,12 @@ public class StreamClient implements ICl
this.avsettings = avsettings;
}
- public long getBroadCastID() {
- return broadCastID;
+ public String getBroadCastId() {
+ return broadCastId;
}
- public void setBroadCastID(long broadCastID) {
- this.broadCastID = broadCastID;
+ public void setBroadCastId(String broadCastId) {
+ this.broadCastId = broadCastId;
}
public String getPublicSID() {
@@ -888,7 +888,7 @@ public class StreamClient implements ICl
@Override
public String toString() {
return "Client [streamid=" + streamid + ", publicSID=" +
publicSID + ", isScreenClient=" + screenClient
- + ", isMobile = " + mobile + ", roomId=" +
roomId + ", broadCastID=" + broadCastID + ", userId="
+ + ", isMobile = " + mobile + ", roomId=" +
roomId + ", broadCastID=" + broadCastId + ", userId="
+ userId + ", avsettings=" + avsettings + ",
isRecording=" + isRecording + ", recordingId="
+ recordingId + ", recordingMetaDataId=" +
recordingMetaDataId + ", screenPublishStarted="
+ screenPublishStarted + ", interviewPodId=" +
interviewPodId + ", server=" + server + "]";
Modified:
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java?rev=1792368&r1=1792367&r2=1792368&view=diff
==============================================================================
---
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
(original)
+++
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
Sun Apr 23 14:57:40 2017
@@ -323,13 +323,13 @@ public class Application extends Authent
}
if (!rcl.getIsBroadcasting() || hasVideo(rcl)
!= hasVideo(client)) {
rcl.setIsBroadcasting(true);
-
rcl.setBroadCastID(ScopeApplicationAdapter.nextBroadCastId());
+ rcl.setBroadCastId("" +
ScopeApplicationAdapter.nextBroadCastId());
}
rcl.setAvsettings(sb.toString());
} else {
rcl.setAvsettings("n");
rcl.setIsBroadcasting(false);
- rcl.setBroadCastID(-1L);
+ rcl.setBroadCastId("-1");
}
}
return rcl;
Modified:
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java?rev=1792368&r1=1792367&r2=1792368&view=diff
==============================================================================
---
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
(original)
+++
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
Sun Apr 23 14:57:40 2017
@@ -147,16 +147,11 @@ public class RoomPanel extends BasePanel
private final WbPanel wb;
private String sharingUser = null;
private String recordingUser = null;
- private String publishingUser = null; //TODO add
public RoomPanel(String id, Room r) {
super(id);
this.r = r;
this.wb = new WbPanel("whiteboard", this);
- //TODO check here and set
- //private String recordingUser = null;
- //private String sharingUser = null;
- //private String publishingUser = null;
}
private void initVideos(AjaxRequestTarget target) {
@@ -343,51 +338,51 @@ public class RoomPanel extends BasePanel
case recordingStoped:
{
String uid =
((TextRoomMessage)m).getText();
- if
(Strings.isEmpty(uid) || !uid.equals(recordingUser)) {
- log.error("Not
existing/BAD user has stopped recording {} != {} !!!!", uid, recordingUser);
- }
- recordingUser = null;
- menu.update(handler);
Client c =
getOnlineClient(uid);
- if (c == null) {
- log.error("Not
existing user has stopped recording {} !!!!", uid);
+ if (c == null ||
!c.hasActivity(Client.Activity.record)) {
+ log.error("Not
existing/BAD user has stopped recording {} != {} !!!!", uid);
return;
}
+ recordingUser = null;
c.remove(Client.Activity.record);
+ menu.update(handler);
}
break;
case recordingStarted:
{
- recordingUser =
((TextRoomMessage)m).getText();
- menu.update(handler);
- Client c =
getOnlineClient(recordingUser);
+ String uid =
((TextRoomMessage)m).getText();
+ Client c =
getOnlineClient(uid);
if (c == null) {
- log.error("Not
existing user has started recording {} !!!!", recordingUser);
+ log.error("Not
existing user has started recording {} !!!!", uid);
return;
}
+ recordingUser = uid;
c.set(Client.Activity.record);
+ menu.update(handler);
}
break;
case sharingStoped:
{
- sharingUser = null;
- Client c =
getOnlineClient(((TextRoomMessage)m).getText());
- if (c == null) {
- log.error("Not
existing user has started sharing {} !!!!", sharingUser);
+ String uid =
((TextRoomMessage)m).getText();
+ Client c =
getOnlineClient(uid);
+ if (c == null ||
!c.hasActivity(Client.Activity.share)) {
+ log.error("Not
existing user has started sharing {} !!!!", uid);
return;
}
+ sharingUser = null;
c.remove(Client.Activity.share);
menu.update(handler);
}
break;
case sharingStarted:
{
- sharingUser =
((TextRoomMessage)m).getText();
- Client c =
getOnlineClient(sharingUser);
+ String uid =
((TextRoomMessage)m).getText();
+ Client c =
getOnlineClient(uid);
if (c == null) {
- log.error("Not
existing user has started sharing {} !!!!", sharingUser);
+ log.error("Not
existing user has started sharing {} !!!!", uid);
return;
}
+ sharingUser = uid;
c.set(Client.Activity.share);
menu.update(handler);
}
@@ -652,7 +647,7 @@ public class RoomPanel extends BasePanel
Room r = getRoom();
return Room.Type.interview != r.getType() &&
!r.isHidden(RoomElement.ScreenSharing)
&& r.isAllowRecording() &&
getClient().hasRight(Right.share)
- && getSharingUser() == null;
+ && sharingUser == null;
}
public RoomSidebar getSidebar() {
@@ -676,6 +671,6 @@ public class RoomPanel extends BasePanel
}
public String getPublishingUser() {
- return publishingUser;
+ return null;
}
}
Modified:
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.html
URL:
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.html?rev=1792368&r1=1792367&r2=1792368&view=diff
==============================================================================
---
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.html
(original)
+++
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.html
Sun Apr 23 14:57:40 2017
@@ -22,6 +22,8 @@
<wicket:panel>
<div wicket:id="menu"></div>
<div class="room menu right">
+ <span class="icon shared ui-button ui-corner-all ui-widget"
wicket:message="data-user:692, data-text:850, data-view:848"
+ role="button" style="display: none;"></span>
<span wicket:id="ask" class="icon ask"></span>
<span wicket:id="share" class="icon share"></span>
<span wicket:id="roomName" class="room name"></span>
Modified:
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js
URL:
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js?rev=1792368&r1=1792367&r2=1792368&view=diff
==============================================================================
---
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js
(original)
+++
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js
Sun Apr 23 14:57:40 2017
@@ -58,35 +58,37 @@ var Video = (function() {
icons: {
'collapse': 'ui-icon-minus'
}
- , closable: false
+ , closable: !!c.screenShare
, collapsable: true
, dblclick: "collapse"
});
t = v.parent().find('.ui-dialog-titlebar').attr('title', name);
-
v.parent().find('.ui-dialog-titlebar-buttonpane').append($('#video-volume-btn').children().clone());
- var volume = v.parent().find('.dropdown-menu.video.volume');
- v.parent().find('.ui-dialog-titlebar-volume').click(function(e)
{
- e.stopImmediatePropagation();
- volume.toggle();
- }).dblclick(function(e) {
- e.stopImmediatePropagation();
- });
- var handle = v.parent().find('.slider .handle');
- v.parent().find('.slider').slider({
- orientation: 'vertical'
- , range: 'min'
- , min: 0
- , max: 100
- , value: 60
- , slide: function(event, ui) {
- }
- , create: function() {
- handle.text($(this).slider("value"));
- }
- , slide: function(event, ui) {
- handle.text(ui.value);
- }
- });
+ if (!c.screenShare) {
+
v.parent().find('.ui-dialog-titlebar-buttonpane').append($('#video-volume-btn').children().clone());
+ var volume =
v.parent().find('.dropdown-menu.video.volume');
+
v.parent().find('.ui-dialog-titlebar-volume').click(function(e) {
+ e.stopImmediatePropagation();
+ volume.toggle();
+ }).dblclick(function(e) {
+ e.stopImmediatePropagation();
+ });
+ var handle = v.parent().find('.slider .handle');
+ v.parent().find('.slider').slider({
+ orientation: 'vertical'
+ , range: 'min'
+ , min: 0
+ , max: 100
+ , value: 60
+ , slide: function(event, ui) {
+ }
+ , create: function() {
+ handle.text($(this).slider("value"));
+ }
+ , slide: function(event, ui) {
+ handle.text(ui.value);
+ }
+ });
+ }
vc = v.find('.video');
vc.width(_w).height(_h);
//broadcast
@@ -115,15 +117,17 @@ var Video = (function() {
self.update = _update;
self.init = _init;
self.resetSize = _resetSize;
+ self.client = function() { return c; };
return self;
});
var VideoManager = (function() {
- var self = {}, box, options;
+ var self = {}, box, options, share;
function _init(_options) {
options = _options;
VideoSettings.init(self.getOptions());
box = $('.room.box');
+ share = box.find('.icon.shared.ui-button');
}
function _getVid(uid) {
return "video" + uid;
@@ -143,14 +147,39 @@ var VideoManager = (function() {
}
}
function _play(c) {
- Video().init(box, options.uid, c);
+ if (!!c.screenShare) {
+ _highlight(share.attr('title', share.data('user') + ' '
+ c.user.firstName + ' ' + c.user.lastName + ' ' + share.data('text')).show(),
10);
+ share.tooltip().click(function() {
+ var v = $('#' + _getVid(c.uid))
+ if (v.length != 1) {
+ Video().init(box, options.uid, c);
+ } else {
+ v.dialog('open');
+ }
+ });
+ } else {
+ Video().init(box, options.uid, c);
+ }
}
function _close(uid) {
var _id = _getVid(uid), v = $('#' + _id);
if (v.length == 1) {
+ if (v.data().client().screenShare) {
+ share.off('click').hide();
+ }
v.remove();
}
}
+ function _highlight(el, count) {
+ if (count < 0) {
+ return;
+ }
+ el.addClass('ui-state-highlight', 2000, function() {
+ el.removeClass('ui-state-highlight', 2000, function() {
+ _highlight(el, --count);
+ });
+ });
+ }
self.getOptions = function() { return
JSON.parse(JSON.stringify(options)); };
self.init = _init;
Added:
openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/images/shared.png
URL:
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/images/shared.png?rev=1792368&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/images/shared.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Modified:
openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/room.css
URL:
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/room.css?rev=1792368&r1=1792367&r2=1792368&view=diff
==============================================================================
---
openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/room.css
(original)
+++
openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/room.css
Sun Apr 23 14:57:40 2017
@@ -79,6 +79,9 @@
.room.menu.right .icon.share {
background-image: url(images/monitor_go.png);
}
+.room.menu.right .icon.shared {
+ background-image: url(images/shared.png);
+}
.room.menu.right .icon .profile {
margin-top: 3px;
}