diff --git a/bigbluebutton-client/resources/config.xml.template b/bigbluebutton-client/resources/config.xml.template
index ac8e5d6df9..6100f834c5 100755
--- a/bigbluebutton-client/resources/config.xml.template
+++ b/bigbluebutton-client/resources/config.xml.template
@@ -44,6 +44,7 @@
uri="rtmp://HOST/sip"
autoJoin="false"
joinGlobal="true"
+ presenterShareOnly="false"
skipCheck="false"
showButton="true"
enabledEchoCancel="true"
diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/listeners/views/ListenersWindow.mxml b/bigbluebutton-client/src/org/bigbluebutton/modules/listeners/views/ListenersWindow.mxml
index c2b7b8a535..b674558724 100755
--- a/bigbluebutton-client/src/org/bigbluebutton/modules/listeners/views/ListenersWindow.mxml
+++ b/bigbluebutton-client/src/org/bigbluebutton/modules/listeners/views/ListenersWindow.mxml
@@ -60,8 +60,8 @@
private var _xPosition:int;
private var _yPosition:int;
- [Bindable] private var muteAllIcon:Class = images.sound_mute;
- [Bindable] private var unmuteAllIcon:Class = images.sound_none;
+ [Bindable] private var muteIcon:Class = images.sound_mute;
+ [Bindable] private var unmuteIcon:Class = images.sound_none;
[Bindable] private var kickIcon:Class = images.eject_user;
[Bindable] public var listeners:ArrayCollection = new ArrayCollection();
[Bindable] public var moderator:Boolean;
@@ -128,11 +128,9 @@
if (mute){
muteAllBtn.toolTip = ResourceUtil.getInstance().getString('bbb.listeners.unmuteAllBtn.toolTip');
muteAllBtn.selected = true;
- muteAllIcon = images.sound_mute;
} else{
muteAllBtn.toolTip = ResourceUtil.getInstance().getString('bbb.listeners.muteAllBtn.toolTip');
muteAllBtn.selected = false;
- muteAllIcon = images.sound_none;
}
}
@@ -214,7 +212,7 @@
toolTip="{UserManager.getInstance().getConference().voiceMuted ? ResourceUtil.getInstance().getString('bbb.listeners.pushToTalk.toolTip') : ResourceUtil.getInstance().getString('bbb.listeners.pushToMute.toolTip')}"
click="toggleMuteMeState()" height="30" maxWidth="180">
-
+
diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/phone/PhoneOptions.as b/bigbluebutton-client/src/org/bigbluebutton/modules/phone/PhoneOptions.as
index 515d7989e6..966c7c1c0c 100755
--- a/bigbluebutton-client/src/org/bigbluebutton/modules/phone/PhoneOptions.as
+++ b/bigbluebutton-client/src/org/bigbluebutton/modules/phone/PhoneOptions.as
@@ -1,5 +1,7 @@
package org.bigbluebutton.modules.phone
{
+ import org.bigbluebutton.core.BBB;
+
public class PhoneOptions {
[Bindable]
public var showButton:Boolean = true;
@@ -15,5 +17,19 @@ package org.bigbluebutton.modules.phone
[Bindable]
public var joinGlobal:Boolean = true;
+
+ [Bindable]
+ public var presenterShareOnly:Boolean = false;
+
+ public function PhoneOptions() {
+ var vxml:XML = BBB.getConfigForModule("PhoneModule");
+ if (vxml != null) {
+ this.showButton = (vxml.@showButton.toString().toUpperCase() == "TRUE") ? true : false;
+ this.autoJoin = (vxml.@autoJoin.toString().toUpperCase() == "TRUE") ? true : false;
+ this.skipCheck = (vxml.@skipCheck.toString().toUpperCase() == "TRUE") ? true : false;
+ this.joinGlobal = (vxml.@joinGlobal.toString().toUpperCase() == "TRUE") ? true : false;
+ this.presenterShareOnly = (vxml.@presenterShareOnly.toString().toUpperCase() == "TRUE") ? true : false;
+ }
+ }
}
}
\ No newline at end of file
diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/phone/managers/PhoneManager.as b/bigbluebutton-client/src/org/bigbluebutton/modules/phone/managers/PhoneManager.as
index 1eba3248bc..5ae3516653 100755
--- a/bigbluebutton-client/src/org/bigbluebutton/modules/phone/managers/PhoneManager.as
+++ b/bigbluebutton-client/src/org/bigbluebutton/modules/phone/managers/PhoneManager.as
@@ -55,12 +55,6 @@ package org.bigbluebutton.modules.phone.managers {
this.attributes = attributes;
var vxml:XML = BBB.getConfigForModule("PhoneModule");
phoneOptions = new PhoneOptions();
- if (vxml != null) {
- phoneOptions.showButton = (vxml.@showButton.toString().toUpperCase() == "TRUE") ? true : false;
- phoneOptions.autoJoin = (vxml.@autoJoin.toString().toUpperCase() == "TRUE") ? true : false;
- phoneOptions.skipCheck = (vxml.@skipCheck.toString().toUpperCase() == "TRUE") ? true : false;
- phoneOptions.joinGlobal = (vxml.@joinGlobal.toString().toUpperCase() == "TRUE") ? true : false;
- }
if (phoneOptions.joinGlobal) {
joinVoiceGlobal();
diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/phone/maps/PhoneEventMap.mxml b/bigbluebutton-client/src/org/bigbluebutton/modules/phone/maps/PhoneEventMap.mxml
index 6923828a84..34065dc7f4 100755
--- a/bigbluebutton-client/src/org/bigbluebutton/modules/phone/maps/PhoneEventMap.mxml
+++ b/bigbluebutton-client/src/org/bigbluebutton/modules/phone/maps/PhoneEventMap.mxml
@@ -24,6 +24,7 @@
xmlns:mx="http://www.adobe.com/2006/mxml">
+
+
+
+
+
+
+
diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/phone/maps/PhoneEventMapDelegate.as b/bigbluebutton-client/src/org/bigbluebutton/modules/phone/maps/PhoneEventMapDelegate.as
index efcd1dc453..7e9a6e8ed7 100755
--- a/bigbluebutton-client/src/org/bigbluebutton/modules/phone/maps/PhoneEventMapDelegate.as
+++ b/bigbluebutton-client/src/org/bigbluebutton/modules/phone/maps/PhoneEventMapDelegate.as
@@ -39,12 +39,6 @@ package org.bigbluebutton.modules.phone.maps
soundButton = new MuteButton();
globalDispatcher = new Dispatcher();
phoneOptions = new PhoneOptions();
- var vxml:XML = BBB.getConfigForModule("PhoneModule");
- if (vxml != null) {
- phoneOptions.showButton = (vxml.@showButton.toString().toUpperCase() == "TRUE") ? true : false;
- phoneOptions.autoJoin = (vxml.@autoJoin.toString().toUpperCase() == "TRUE") ? true : false;
- phoneOptions.skipCheck = (vxml.@skipCheck.toString().toUpperCase() == "TRUE") ? true : false;
- }
}
public function addToolbarButton():void {
@@ -91,5 +85,13 @@ package org.bigbluebutton.modules.phone.maps
phoneButton.enabled = true;
//phoneButton.userJoinedConference(false);
}
+
+ public function switchToPresenter():void {
+ phoneButton.setPresenter(true);
+ }
+
+ public function switchToViewer():void {
+ phoneButton.setPresenter(false);
+ }
}
}
diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/phone/views/components/ToolbarButton.mxml b/bigbluebutton-client/src/org/bigbluebutton/modules/phone/views/components/ToolbarButton.mxml
index 0123be48bd..54e286ecfb 100755
--- a/bigbluebutton-client/src/org/bigbluebutton/modules/phone/views/components/ToolbarButton.mxml
+++ b/bigbluebutton-client/src/org/bigbluebutton/modules/phone/views/components/ToolbarButton.mxml
@@ -24,9 +24,18 @@
icon="{phoneIcon}" click="startPhone()"
mouseOver = "mouseOverHandler(event)"
mouseOut = "mouseOutHandler(event)"
+ visible = "{amIPresenter || !phoneOptions.presenterShareOnly}"
+ includeInLayout = "{amIPresenter || !phoneOptions.presenterShareOnly}"
toolTip="{ResourceUtil.getInstance().getString('bbb.toolbar.phone.toolTip.start')}"
implements="org.bigbluebutton.common.IBbbToolbarComponent">
-
+
+
@@ -38,6 +47,7 @@
import org.bigbluebutton.common.LogUtil;
import org.bigbluebutton.core.BBB;
+ import org.bigbluebutton.core.managers.UserManager
import org.bigbluebutton.main.events.BBBEvent;
import org.bigbluebutton.main.views.MainToolbar;
import org.bigbluebutton.modules.phone.PhoneOptions;
@@ -48,7 +58,10 @@
private var images:Images = new Images();
private var dispatcher:Dispatcher = new Dispatcher();
-
+ [Bindable]
+ private var phoneOptions:PhoneOptions = new PhoneOptions();
+ [Bindable]
+ private var amIPresenter:Boolean = UserManager.getInstance().getConference().amIPresenter();
public const DEFAULT_STATE:Number = 0;
public const ACTIVE_STATE:Number = 1;
@@ -64,12 +77,6 @@
this.enabled = false;
var vxml:XML = BBB.getConfigForModule("PhoneModule");
var phoneOptions:PhoneOptions = new PhoneOptions();
- if (vxml != null) {
- phoneOptions.showButton = (vxml.@showButton.toString().toUpperCase() == "TRUE") ? true : false;
- phoneOptions.autoJoin = (vxml.@autoJoin.toString().toUpperCase() == "TRUE") ? true : false;
- phoneOptions.skipCheck = (vxml.@skipCheck.toString().toUpperCase() == "TRUE") ? true : false;
- phoneOptions.joinGlobal = (vxml.@joinGlobal.toString().toUpperCase() == "TRUE") ? true : false;
- }
if (noMicrophone() == false) {
var askToChangeEvent:BBBEvent;
askToChangeEvent = new BBBEvent("ASK_TO_CHANGE_VOICE_CONFERENCE_EVENT");
@@ -161,6 +168,10 @@
public function getAlignment():String{
return MainToolbar.ALIGN_LEFT;
}
+
+ public function setPresenter(value:Boolean):void {
+ amIPresenter = value;
+ }
]]>
diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/views/ToolbarButton.mxml b/bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/views/ToolbarButton.mxml
index 014d0b7628..1bd4617a43 100755
--- a/bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/views/ToolbarButton.mxml
+++ b/bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/views/ToolbarButton.mxml
@@ -27,6 +27,7 @@
mouseOut = "mouseOutHandler(event)"
toolTip="{ResourceUtil.getInstance().getString('bbb.toolbar.video.toolTip.start')}"
visible="{isPresenter}"
+ includeInLayout="{isPresenter}"
implements="org.bigbluebutton.common.IBbbToolbarComponent">