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 9f739d2 [OPENMEETINGS-1352] sharer dialog is moved to separate class
9f739d2 is described below
commit 9f739d25111464b5bbb6c3096c6cb4deffc3d362
Author: Maxim Solodovnik <[email protected]>
AuthorDate: Fri Oct 26 15:28:06 2018 +0700
[OPENMEETINGS-1352] sharer dialog is moved to separate class
---
openmeetings-web/pom.xml | 1 +
.../apache/openmeetings/web/room/RoomPanel.html | 2 +-
.../openmeetings/web/room/menu/ActionsSubMenu.java | 6 +-
.../openmeetings/web/room/menu/RoomMenuPanel.html | 2 +-
.../openmeetings/web/room/menu/RoomMenuPanel.java | 2 +-
.../org/apache/openmeetings/web/room/raw-room.js | 35 +-----------
.../org/apache/openmeetings/web/room/raw-sharer.js | 64 ++++++++++++++++++++++
.../org/apache/openmeetings/web/room/raw-video.js | 7 ++-
8 files changed, 79 insertions(+), 40 deletions(-)
diff --git a/openmeetings-web/pom.xml b/openmeetings-web/pom.xml
index 8ff7e9f..1737b6d 100644
--- a/openmeetings-web/pom.xml
+++ b/openmeetings-web/pom.xml
@@ -212,6 +212,7 @@
<jsSourceFile>jquery.dialogextend.js</jsSourceFile>
<jsSourceFile>raw-video.js</jsSourceFile>
<jsSourceFile>raw-video-manager.js</jsSourceFile>
+
<jsSourceFile>raw-sharer.js</jsSourceFile>
<jsSourceFile>raw-room.js</jsSourceFile>
</jsSourceFiles>
<jsFinalFile>room.js</jsFinalFile>
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 a153ecc..15c86df 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
@@ -117,7 +117,7 @@
</div>
<hr/>
<button class="share-start-stop"
wicket:message="data-start:732, data-stop:733"><wicket:message
key="732"/></button>
- <button class="record-start-stop ui-state-error"
wicket:message="data-start:871, data-stop:872"><wicket:message
key="872"/></button>
+ <button class="record-start-stop ui-state-error"
wicket:message="data-start:871, data-stop:872"><wicket:message
key="871"/></button>
</div>
</div>
</wicket:panel>
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/ActionsSubMenu.java
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/ActionsSubMenu.java
index be5f7ad..48cb90e 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/ActionsSubMenu.java
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/ActionsSubMenu.java
@@ -38,7 +38,6 @@ public class ActionsSubMenu implements Serializable {
private final SipDialerDialog sipDialer;
private final RoomPanel room;
private final RoomMenuPanel mp;
- private final StartSharingButton shareBtn;
private RoomMenuItem actionsMenu;
private RoomMenuItem inviteMenuItem;
private RoomMenuItem shareMenuItem;
@@ -51,10 +50,9 @@ public class ActionsSubMenu implements Serializable {
private RoomMenuItem downloadPdfMenuItem;
private final boolean visible;
- public ActionsSubMenu(final RoomPanel room, final RoomMenuPanel mp,
final StartSharingButton shareBtn) {
+ public ActionsSubMenu(final RoomPanel room, final RoomMenuPanel mp) {
this.room = room;
this.mp = mp;
- this.shareBtn = shareBtn;
RoomInvitationForm rif = new RoomInvitationForm("form",
room.getRoom().getId());
mp.add(invite = new InvitationDialog("invite", rif));
rif.setDialog(invite);
@@ -78,7 +76,7 @@ public class ActionsSubMenu implements Serializable {
@Override
public void onClick(AjaxRequestTarget target) {
-
target.appendJavaScript(String.format("$('#%s').click()",
shareBtn.getMarkupId()));
+ target.appendJavaScript("Sharer.open();");
}
};
applyModerMenuItem = new RoomMenuItem(mp.getString("784"),
mp.getString("1481"), false) {
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.html
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.html
index 383bff3..96d3213 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.html
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.html
@@ -25,7 +25,7 @@
<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"
wicket:message="title:732" onclick="Room.share();"></span>
+ <span wicket:id="share" class="icon share"
wicket:message="title:732" onclick="Sharer.open();"></span>
<span wicket:id="roomName" class="room name"></span>
<span wicket:id="tag" class="room name"></span>
<span wicket:id="logo" class="icon"></span>
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 dad9c76..a154a00 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
@@ -115,7 +115,7 @@ public class RoomMenuPanel extends Panel {
add(logo, new Label("tag",
tag).setVisible(!Strings.isEmpty(tag)));
add(shareBtn = new StartSharingButton("share"));
pollsSubMenu = new PollsSubMenu(room, this);
- actionsSubMenu = new ActionsSubMenu(room, this, shareBtn);
+ actionsSubMenu = new ActionsSubMenu(room, this);
}
private Group getGroup() {
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 e53926c..992e0f3 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
@@ -1,7 +1,7 @@
/* Licensed under the Apache License, Version 2.0 (the "License")
http://www.apache.org/licenses/LICENSE-2.0 */
var Room = (function() {
const self = {}, sbSide = Settings.isRtl ? 'right' : 'left';
- let options, menuHeight, chat, sb, dock, activities, sharer;
+ let options, menuHeight, chat, sb, dock, activities;
function _init(_options) {
options = _options;
@@ -43,30 +43,7 @@ var Room = (function() {
if (typeof(Activities) !== 'undefined') {
Activities.init();
}
- sharer = $('#sharer').dialog({
- width: 450
- , autoOpen: false
- });
- const type = sharer.find('select.type').selectmenu({
- width: 150
- }), fps = sharer.find('select.fps').selectmenu({
- width: 120
- }), sbtn = sharer.find('.share-start-stop').button({
- icon: 'ui-icon-image'
- });
- sbtn.click(function() {
- sbtn.button('disable');
- VideoManager.sendMessage({
- id: 'wannaShare'
- , shareType: type.val()
- , fps: fps.val()
- , width: sharer.find('.width').val()
- , height: sharer.find('.height').val()
- });
- });
- sharer.find('.record-start-stop').button({
- icon: 'ui-icon-bullet'
- });
+ Sharer.init();
}
function _getSelfAudioClient() {
const vw = $('#video' + Room.getOptions().uid);
@@ -211,9 +188,7 @@ var Room = (function() {
$(window).off('keyup', _keyHandler);
$(document).off('click', _mouseHandler);
sb = undefined;
- if (sharer && sharer.dialog('instance')) {
- sharer.dialog('close');
- }
+ Sharer.close();
}
function _showClipboard(txt) {
const dlg = $('#clipboard-dialog');
@@ -278,9 +253,6 @@ var Room = (function() {
}
OmUtil.tmpl('#quick-vote-template', 'quick-vote');
}
- function _share() {
- sharer.dialog('open');
- }
self.init = _init;
self.getMenuHeight = function() { return menuHeight; };
@@ -297,7 +269,6 @@ var Room = (function() {
self.unload = _unload;
self.showClipboard = _showClipboard;
self.quickPoll = _quickPoll;
- self.share = _share;
return self;
})();
function startPrivateChat(el) {
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-sharer.js
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-sharer.js
new file mode 100644
index 0000000..c367d58
--- /dev/null
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-sharer.js
@@ -0,0 +1,64 @@
+/* Licensed under the Apache License, Version 2.0 (the "License")
http://www.apache.org/licenses/LICENSE-2.0 */
+var Sharer = (function() {
+ const self = {};
+ let sharer, type, fps, sbtn, rbtn, width, height;
+
+ function _init() {
+ sharer = $('#sharer').dialog({
+ width: 450
+ , autoOpen: false
+ });
+ type = sharer.find('select.type').selectmenu({
+ width: 150
+ , disabled: VideoUtil.isEdge()
+ });
+ fps = sharer.find('select.fps').selectmenu({
+ width: 120
+ , disabled: VideoUtil.isEdge()
+ });
+ sbtn = sharer.find('.share-start-stop').button({
+ icon: 'ui-icon-image'
+ });
+ width = sharer.find('.width');
+ height = sharer.find('.height');
+ sbtn.click(function() {
+ _setShareState(true);
+ VideoManager.sendMessage({
+ id: 'wannaShare'
+ , shareType: type.val()
+ , fps: fps.val()
+ , width: width.val()
+ , height: height.val()
+ });
+ });
+ rbtn = sharer.find('.record-start-stop').button({
+ icon: 'ui-icon-bullet'
+ });
+ }
+ function _setShareState(state) {
+ type.selectmenu('option', 'disabled', state ||
VideoUtil.isEdge());
+ fps.selectmenu('option', 'disabled', state ||
VideoUtil.isEdge());
+ width.prop('disabled', state);
+ height.prop('disabled', state);
+ sbtn.button('option', 'icon', state ? 'ui-icon-stop' :
'ui-icon-image');
+ if (state) {
+ sbtn.button('disable');
+ } else {
+ sbtn.button('enable');
+ }
+ }
+
+ self.init = _init;
+ self.open = function() {
+ if (sharer && sharer.dialog('instance')) {
+ sharer.dialog('open');
+ }
+ };
+ self.close = function() {
+ if (sharer && sharer.dialog('instance')) {
+ sharer.dialog('close');
+ }
+ };
+ self.setShareState = _setShareState;
+ return self;
+})();
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video.js
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video.js
index 1d2daf5..a3fc8eb 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video.js
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video.js
@@ -45,7 +45,6 @@ var Video = (function() {
}
}
function _getScreenStream(msg, callback) {
- //FIXME TODO frameRate
const b = kurentoUtils.WebRtcPeer.browser;
if (VideoUtil.isEdge() && b.major > 16) {
const cnts = {
@@ -54,6 +53,7 @@ var Video = (function() {
navigator.getDisplayMedia(cnts).then(function(stream) {
callback(msg, cnts, stream);
}).catch(function(err) {
+ Sharer.setShareState(false);
OmUtil.error(err);
});
} else if (b.name === 'Firefox') {
@@ -68,9 +68,11 @@ var Video = (function() {
navigator.mediaDevices.getUserMedia(cnts).then(function(stream) {
callback(msg, cnts, stream);
}).catch(function(err) {
+ Sharer.setShareState(false);
OmUtil.error(err);
});
} else {
+ Sharer.close();
OmUtil.error('Screen-sharing is not supported in ' +
b.name + '[' + b.major + ']');
}
}
@@ -300,6 +302,9 @@ var Video = (function() {
v = $('#' + _id);
t = v.parent().find('.ui-dialog-titlebar').attr('title', name);
f = v.find('.footer');
+ if (!sd.self && isSharing) {
+ Sharer.close();
+ }
if (sd.self && isSharing) {
v.hide();
} else {