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">