Merge branch 'merge-polling-with-master' into upgrade-to-red5-1.0.3-release
This commit is contained in:
commit
72e7f20def
@ -59,7 +59,7 @@ public class MeetingMessageHandler implements MessageHandler {
|
||||
} else if (msg instanceof UserDisconnectedFromGlobalAudio) {
|
||||
UserDisconnectedFromGlobalAudio emm = (UserDisconnectedFromGlobalAudio) msg;
|
||||
log.debug("Received UserDisconnectedFromGlobalAudio toekn request. Meeting id [{}]", emm.name);
|
||||
bbbGW.userConnectedToGlobalAudio(emm.voiceConf, emm.userid, emm.name);
|
||||
bbbGW.userDisconnectedFromGlobalAudio(emm.voiceConf, emm.userid, emm.name);
|
||||
}
|
||||
}
|
||||
} else if (channel.equalsIgnoreCase(MessagingConstants.TO_SYSTEM_CHANNEL)) {
|
||||
|
@ -78,6 +78,9 @@ trait PresentationApp {
|
||||
sharePresentation(msg.presentationID, false);
|
||||
}
|
||||
})
|
||||
|
||||
outGW.send(new RemovePresentationOutMsg(msg.meetingID, recorded, msg.presentationID))
|
||||
|
||||
}
|
||||
|
||||
def handleGetPresentationInfo(msg: GetPresentationInfo) {
|
||||
|
2
bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/apps/users/UsersApp.scala
Normal file → Executable file
2
bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/apps/users/UsersApp.scala
Normal file → Executable file
@ -42,7 +42,7 @@ trait UsersApp {
|
||||
}
|
||||
|
||||
def handleUserDisconnectedFromGlobalAudio(msg: UserDisconnectedFromGlobalAudio) {
|
||||
// println("*************** Got UserDisconnectedToGlobalAudio message for [" + msg.name + "] ********************" )
|
||||
println("*************** Got UserDisconnectedToGlobalAudio message for [" + msg.name + "] ********************" )
|
||||
val user = users.getUser(msg.userid)
|
||||
user foreach {u =>
|
||||
val uvo = u.copy(listenOnly=false)
|
||||
|
@ -23,6 +23,12 @@ Panel {
|
||||
titleStyleName: "mypanelTitle";
|
||||
}
|
||||
|
||||
ToolTip {
|
||||
borderSkin : ClassReference("org.bigbluebutton.skins.ToolTipSkin");
|
||||
backgroundAlpha : 0.9;
|
||||
cornerRadius : 3;
|
||||
}
|
||||
|
||||
.mypanelTitle {
|
||||
color: #444444;
|
||||
fontFamily: Arial;
|
||||
|
@ -23,6 +23,12 @@ Panel {
|
||||
titleStyleName: "mypanelTitle";
|
||||
}
|
||||
|
||||
ToolTip {
|
||||
borderSkin : ClassReference("org.bigbluebutton.skins.ToolTipSkin");
|
||||
backgroundAlpha : 0.9;
|
||||
cornerRadius : 3;
|
||||
}
|
||||
|
||||
.mypanelTitle {
|
||||
color: #444444;
|
||||
fontFamily: Arial;
|
||||
|
@ -0,0 +1,141 @@
|
||||
/**
|
||||
* BigBlueButton open source conferencing system - http://www.bigbluebutton.org/
|
||||
*
|
||||
* Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below).
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it under the
|
||||
* terms of the GNU Lesser General Public License as published by the Free Software
|
||||
* Foundation; either version 3.0 of the License, or (at your option) any later
|
||||
* version.
|
||||
*
|
||||
* BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
* PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License along
|
||||
* with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
package org.bigbluebutton.skins
|
||||
{
|
||||
import flash.display.Graphics;
|
||||
import flash.events.Event;
|
||||
import flash.geom.Point;
|
||||
|
||||
import mx.managers.ToolTipManager;
|
||||
import mx.skins.halo.ToolTipBorder;
|
||||
|
||||
public class ToolTipSkin extends ToolTipBorder
|
||||
{
|
||||
|
||||
private static const TOP : String = "top";
|
||||
private static const BOTTOM : String = "bottom";
|
||||
|
||||
private var _arrowPosition : String = TOP;
|
||||
|
||||
public function ToolTipSkin() {
|
||||
super();
|
||||
visible = false;
|
||||
addEventListener(Event.ENTER_FRAME, this.enterFrameHandler);
|
||||
}
|
||||
|
||||
private function enterFrameHandler( event : Event ) : void {
|
||||
this.position();
|
||||
}
|
||||
|
||||
private function position() : void {
|
||||
if (!stage || !ToolTipManager.currentToolTip || !ToolTipManager.currentTarget)
|
||||
{
|
||||
removeEventListener(Event.ENTER_FRAME, this.enterFrameHandler);
|
||||
return;
|
||||
}
|
||||
var speed : Number = 5;
|
||||
var parentCoords : Point = new Point(ToolTipManager.currentTarget.mouseX, ToolTipManager.currentTarget.mouseY);
|
||||
var globalPoint : Point = ToolTipManager.currentTarget.localToGlobal(parentCoords);
|
||||
var xp : Number = globalPoint.x + 5 - (ToolTipManager.currentToolTip.width / 2);
|
||||
var yp : Number = globalPoint.y + ToolTipManager.currentToolTip.height;
|
||||
|
||||
var overhangRight : Number = ToolTipManager.currentToolTip.width + xp;
|
||||
var overhangBottom : Number = ToolTipManager.currentToolTip.height + yp;
|
||||
updateArrowPosition(TOP);
|
||||
|
||||
if (overhangRight > stage.stageWidth) {
|
||||
xp = stage.stageWidth - ToolTipManager.currentToolTip.width;
|
||||
}
|
||||
if (overhangBottom > stage.height) {
|
||||
yp = globalPoint.y - ToolTipManager.currentToolTip.height - 10;
|
||||
updateArrowPosition(BOTTOM);
|
||||
}
|
||||
if (xp < 0) {
|
||||
xp = 0;
|
||||
}
|
||||
if ((yp) < 0) {
|
||||
yp = 0;
|
||||
}
|
||||
if (visible) {
|
||||
ToolTipManager.currentToolTip.x += (xp - ToolTipManager.currentToolTip.x) / speed;
|
||||
ToolTipManager.currentToolTip.y += (yp - ToolTipManager.currentToolTip.y) / speed;
|
||||
}
|
||||
else {
|
||||
ToolTipManager.currentToolTip.x = xp;
|
||||
ToolTipManager.currentToolTip.y = yp;
|
||||
visible = true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
private function updateArrowPosition( value : String ) : void {
|
||||
if (_arrowPosition != value) {
|
||||
_arrowPosition = value;
|
||||
validateDisplayList();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
//
|
||||
// Overridden methods
|
||||
//
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
|
||||
override protected function updateDisplayList( w : Number, h : Number ) : void {
|
||||
super.updateDisplayList(w, h);
|
||||
|
||||
var backgroundColor : uint = getStyle("backgroundColor");
|
||||
var backgroundAlpha : Number = getStyle("backgroundAlpha");
|
||||
var borderColor : uint = getStyle("borderColor");
|
||||
var cornerRadius : Number = getStyle("cornerRadius");
|
||||
|
||||
var g : Graphics = graphics;
|
||||
g.clear();
|
||||
|
||||
filters = [];
|
||||
|
||||
// face
|
||||
drawRoundRect(
|
||||
3, 1, w - 6, h - 4, cornerRadius,
|
||||
backgroundColor, backgroundAlpha)
|
||||
|
||||
// top pointer
|
||||
if (_arrowPosition == TOP) {
|
||||
g.beginFill(backgroundColor, backgroundAlpha);
|
||||
g.moveTo((w / 2) - 6, 1);
|
||||
g.lineTo((w / 2), -10);
|
||||
g.lineTo((w / 2) + 6, 1);
|
||||
g.moveTo((w / 2) - 5, -10);
|
||||
g.endFill();
|
||||
}
|
||||
else {
|
||||
g.beginFill(backgroundColor, backgroundAlpha);
|
||||
g.moveTo((w / 2) - 6, h - 3);
|
||||
g.lineTo((w / 2), h + 7);
|
||||
g.lineTo((w / 2) + 6, h - 3);
|
||||
g.moveTo((w / 2) - 5, h + 7);
|
||||
g.endFill();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
5
bigbluebutton-client/locale/en_US/bbbResources.properties
Normal file → Executable file
5
bigbluebutton-client/locale/en_US/bbbResources.properties
Normal file → Executable file
@ -33,6 +33,8 @@ bbb.micSettings.micRecordVolume.toolTip = Set your microphone gain
|
||||
bbb.micSettings.join = Join Audio
|
||||
bbb.micSettings.join.toolTip = Join the audio conference
|
||||
bbb.micSettings.cancel = Cancel
|
||||
bbb.micSettings.connectingtoecho = Connecting
|
||||
bbb.micSettings.connectingtoecho.error = Echo Test Error: Please contact administrator.
|
||||
bbb.micSettings.cancel.toolTip = Cancel joining the audio conference
|
||||
bbb.micSettings.access.helpButton = Open tutorial videos in a new page.
|
||||
bbb.micSettings.access.title = Audio Settings. Focus will remain in this audio settings window until the window is closed.
|
||||
@ -67,6 +69,9 @@ bbb.mainToolbar.recordBtn.toolTip.notRecording = The session isn't being recorde
|
||||
bbb.mainToolbar.recordBtn.confirm.title = Confirm recording
|
||||
bbb.mainToolbar.recordBtn.confirm.message.start = Are you sure you want to start recording the session?
|
||||
bbb.mainToolbar.recordBtn.confirm.message.stop = Are you sure you want to stop recording the session?
|
||||
bbb.mainToolbar.recordBtn..notification.title = Recording Notification
|
||||
bbb.mainToolbar.recordBtn..notification.message1 = This meeting is configured for recording.
|
||||
bbb.mainToolbar.recordBtn..notification.message2 = You must click the Start/Stop Recording button to begin and end the recording.
|
||||
bbb.mainToolbar.recordingLabel.recording = (Recording)
|
||||
bbb.mainToolbar.recordingLabel.notRecording = Not Recording
|
||||
bbb.window.minimizeBtn.toolTip = Minimize
|
||||
|
@ -34,21 +34,25 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
<mx:Script>
|
||||
<![CDATA[
|
||||
import com.asfusion.mate.events.Dispatcher;
|
||||
import flash.events.Event;
|
||||
import mx.managers.HistoryManager;
|
||||
import mx.utils.URLUtil;
|
||||
import org.bigbluebutton.common.LogUtil;
|
||||
import org.bigbluebutton.common.events.AddUIComponentToMainCanvas;
|
||||
import org.bigbluebutton.core.BBB;
|
||||
import org.bigbluebutton.core.EventBroadcaster;
|
||||
import org.bigbluebutton.core.managers.ConfigManager2;
|
||||
import org.bigbluebutton.main.api.ExternalApiCallbacks;
|
||||
import org.bigbluebutton.main.events.BBBEvent;
|
||||
import org.bigbluebutton.main.events.ShortcutEvent;
|
||||
import org.bigbluebutton.main.model.ShortcutOptions;
|
||||
import org.bigbluebutton.main.views.MainApplicationShell;
|
||||
import org.bigbluebutton.util.i18n.ResourceUtil;
|
||||
import com.asfusion.mate.events.Dispatcher;
|
||||
|
||||
import flash.events.Event;
|
||||
|
||||
import mx.managers.HistoryManager;
|
||||
import mx.managers.ToolTipManager;
|
||||
import mx.utils.URLUtil;
|
||||
|
||||
import org.bigbluebutton.common.LogUtil;
|
||||
import org.bigbluebutton.common.events.AddUIComponentToMainCanvas;
|
||||
import org.bigbluebutton.core.BBB;
|
||||
import org.bigbluebutton.core.EventBroadcaster;
|
||||
import org.bigbluebutton.core.managers.ConfigManager2;
|
||||
import org.bigbluebutton.main.api.ExternalApiCallbacks;
|
||||
import org.bigbluebutton.main.events.BBBEvent;
|
||||
import org.bigbluebutton.main.events.ShortcutEvent;
|
||||
import org.bigbluebutton.main.model.ShortcutOptions;
|
||||
import org.bigbluebutton.main.views.MainApplicationShell;
|
||||
import org.bigbluebutton.util.i18n.ResourceUtil;
|
||||
private var langResources:ResourceUtil = null;
|
||||
|
||||
private var globalModifier:String;
|
||||
@ -66,6 +70,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
private var globalDispatcher:Dispatcher = new Dispatcher();
|
||||
|
||||
protected function init():void {
|
||||
setupTooltips();
|
||||
setupAPI();
|
||||
EventBroadcaster.getInstance().addEventListener("configLoadedEvent", configLoadedEventHandler);
|
||||
BBB.initConfigManager();
|
||||
@ -105,6 +110,17 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
return serverName;
|
||||
}
|
||||
|
||||
/**
|
||||
* Tooltip effect
|
||||
*/
|
||||
private function setupTooltips() : void {
|
||||
ToolTipManager.scrubDelay = 50;
|
||||
ToolTipManager.showDelay = 50;
|
||||
ToolTipManager.hideDelay = 3000;
|
||||
ToolTipManager.showEffect = fadeIn;
|
||||
ToolTipManager.hideEffect = fadeOut;
|
||||
}
|
||||
|
||||
/**
|
||||
* Shortcut Keys
|
||||
@ -189,6 +205,9 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
]]>
|
||||
</mx:Script>
|
||||
|
||||
<mx:Fade id="fadeIn" alphaFrom="0" alphaTo="1" duration="250"/>
|
||||
<mx:Fade id="fadeOut" alphaFrom="1" alphaTo="0" duration="250"/>
|
||||
|
||||
<apimap:ExternalApiEventMap/>
|
||||
<coreMap:BbbCoreEventMap/>
|
||||
<userMap:UsersMainEventMap />
|
||||
|
@ -98,7 +98,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
}
|
||||
]]>
|
||||
</mx:Script>
|
||||
<mx:VBox width="100%" height="100%" paddingBottom="5" paddingLeft="5" paddingRight="5" paddingTop="5">
|
||||
<mx:VBox width="100%" height="100%" paddingBottom="5" paddingLeft="5" paddingRight="5" paddingTop="5" horizontalAlign="right">
|
||||
<mx:HBox width="100%">
|
||||
<mx:TextArea borderSkin="{null}"
|
||||
editable="false"
|
||||
@ -125,9 +125,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
</mx:VBox>
|
||||
</mx:HBox>
|
||||
<mx:HRule width="100%" />
|
||||
<mx:HBox width="100%" horizontalAlign="right">
|
||||
<mx:Button id="cancelBtn" label="Cancel"
|
||||
click="onCancelClicked()" styleName="micSettingsWindowPlaySoundButtonStyle" />
|
||||
</mx:HBox>
|
||||
<mx:Button id="cancelBtn" label="Cancel"
|
||||
click="onCancelClicked()" styleName="micSettingsWindowPlaySoundButtonStyle" />
|
||||
</mx:VBox>
|
||||
</mx:TitleWindow>
|
@ -49,14 +49,12 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
]]>
|
||||
</mx:Script>
|
||||
<mx:VBox width="100%" height="100%" paddingBottom="5" paddingLeft="5" paddingRight="5" paddingTop="5">
|
||||
<mx:Canvas width="100%">
|
||||
<mx:TextArea borderSkin="{null}"
|
||||
editable="false"
|
||||
text="Chrome Change Microphone"
|
||||
styleName="micSettingsWindowTitleStyle"
|
||||
width="400"
|
||||
left="0"/>
|
||||
</mx:Canvas>
|
||||
<mx:TextArea borderSkin="{null}"
|
||||
editable="false"
|
||||
text="Chrome Change Microphone"
|
||||
styleName="micSettingsWindowTitleStyle"
|
||||
width="400"
|
||||
left="0"/>
|
||||
<mx:HBox width="100%">
|
||||
<mx:Text width="100%" text="Show the list of microphones."
|
||||
styleName="micSettingsWindowSpeakIntoMicLabelStyle" />
|
||||
@ -78,8 +76,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
<mx:Image source="@Embed('assets/chrome-reload-page.png')"/>
|
||||
</mx:HBox>
|
||||
<mx:HRule width="100%"/>
|
||||
<mx:Spacer height="10"/>
|
||||
<mx:HBox width="100%" horizontalAlign="right" horizontalGap="18">
|
||||
<mx:HBox width="100%" horizontalAlign="right" horizontalGap="18" paddingTop="10">
|
||||
<mx:Text width="100%" text="If no microphone worked, try joining the voice conference using Flash."
|
||||
styleName="micSettingsWindowSpeakIntoMicLabelStyle" />
|
||||
<mx:Button id="noButton"
|
||||
|
@ -54,14 +54,12 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
]]>
|
||||
</mx:Script>
|
||||
<mx:VBox width="100%" height="100%" paddingBottom="5" paddingLeft="5" paddingRight="5" paddingTop="5">
|
||||
<mx:Canvas width="100%">
|
||||
<mx:TextArea borderSkin="{null}"
|
||||
editable="false"
|
||||
text="Joining Voice Conference"
|
||||
styleName="micSettingsWindowTitleStyle"
|
||||
width="400"
|
||||
left="0"/>
|
||||
</mx:Canvas>
|
||||
<mx:TextArea borderSkin="{null}"
|
||||
editable="false"
|
||||
text="Joining Voice Conference"
|
||||
styleName="micSettingsWindowTitleStyle"
|
||||
width="400"
|
||||
left="0"/>
|
||||
<mx:HBox width="100%">
|
||||
<mx:Text width="100%" text="Click Allow so Chrome can use microphone in the conference."
|
||||
styleName="micSettingsWindowSpeakIntoMicLabelStyle" />
|
||||
|
@ -58,14 +58,12 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
]]>
|
||||
</mx:Script>
|
||||
<mx:VBox width="100%" height="100%" paddingBottom="5" paddingLeft="5" paddingRight="5" paddingTop="5">
|
||||
<mx:Canvas width="100%">
|
||||
<mx:TextArea borderSkin="{null}"
|
||||
editable="false"
|
||||
text="Chrome Microphone Permissions"
|
||||
styleName="micSettingsWindowTitleStyle"
|
||||
width="400"
|
||||
left="0"/>
|
||||
</mx:Canvas>
|
||||
<mx:TextArea borderSkin="{null}"
|
||||
editable="false"
|
||||
text="Chrome Microphone Permissions"
|
||||
styleName="micSettingsWindowTitleStyle"
|
||||
width="400"
|
||||
left="0"/>
|
||||
<mx:HBox width="100%">
|
||||
<mx:Text width="100%" text="Click Allow to give Chrome permission to use your microphone."
|
||||
styleName="micSettingsWindowSpeakIntoMicLabelStyle" />
|
||||
|
@ -52,14 +52,12 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
</mx:Script>
|
||||
|
||||
<mx:VBox width="100%" height="100%" paddingBottom="5" paddingLeft="5" paddingRight="5" paddingTop="5">
|
||||
<mx:Canvas width="100%">
|
||||
<mx:TextArea borderSkin="{null}"
|
||||
editable="false"
|
||||
text="Don't be that guy."
|
||||
styleName="micSettingsWindowTitleStyle"
|
||||
width="400"
|
||||
left="0"/>
|
||||
</mx:Canvas>
|
||||
<mx:TextArea borderSkin="{null}"
|
||||
editable="false"
|
||||
text="Don't be that guy."
|
||||
styleName="micSettingsWindowTitleStyle"
|
||||
width="400"
|
||||
left="0"/>
|
||||
<mx:HBox width="100%">
|
||||
<mx:Text width="100%" text="Recommend you use a headset or earbuds. Otherwise, you will create echo."
|
||||
styleName="micSettingsWindowSpeakIntoMicLabelStyle" />
|
||||
|
@ -64,14 +64,12 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
</mx:Script>
|
||||
|
||||
<mx:VBox width="100%" height="100%" paddingBottom="5" paddingLeft="5" paddingRight="5" paddingTop="5">
|
||||
<mx:Canvas width="100%">
|
||||
<mx:TextArea borderSkin="{null}"
|
||||
editable="false"
|
||||
text="Firefox Change Microphone"
|
||||
styleName="micSettingsWindowTitleStyle"
|
||||
width="400"
|
||||
left="0"/>
|
||||
</mx:Canvas>
|
||||
<mx:TextArea borderSkin="{null}"
|
||||
editable="false"
|
||||
text="Firefox Change Microphone"
|
||||
styleName="micSettingsWindowTitleStyle"
|
||||
width="400"
|
||||
left="0"/>
|
||||
<mx:HBox width="100%">
|
||||
<mx:Text width="100%" text="Choose your mic and then click Share."
|
||||
styleName="micSettingsWindowSpeakIntoMicLabelStyle" />
|
||||
@ -83,8 +81,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
<mx:Image source="@Embed('assets/ff-show-mic.png')"/>
|
||||
</mx:HBox>
|
||||
<mx:HRule width="100%"/>
|
||||
<mx:Spacer height="10"/>
|
||||
<mx:HBox width="100%" horizontalAlign="right" horizontalGap="18">
|
||||
<mx:HBox width="100%" horizontalAlign="right" horizontalGap="18" paddingTop="10">
|
||||
<mx:Text width="100%" text="If no microphone worked, try joining the voice conference using Flash."
|
||||
styleName="micSettingsWindowSpeakIntoMicLabelStyle" />
|
||||
<mx:Button id="noButton"
|
||||
|
@ -53,14 +53,12 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
</mx:Script>
|
||||
|
||||
<mx:VBox width="100%" height="100%" paddingBottom="5" paddingLeft="5" paddingRight="5" paddingTop="5">
|
||||
<mx:Canvas width="100%">
|
||||
<mx:TextArea borderSkin="{null}"
|
||||
editable="false"
|
||||
text="Joining Voice Conference"
|
||||
styleName="micSettingsWindowTitleStyle"
|
||||
width="400"
|
||||
left="0"/>
|
||||
</mx:Canvas>
|
||||
<mx:TextArea borderSkin="{null}"
|
||||
editable="false"
|
||||
text="Joining Voice Conference"
|
||||
styleName="micSettingsWindowTitleStyle"
|
||||
width="400"
|
||||
left="0"/>
|
||||
<mx:HBox width="100%">
|
||||
<mx:Text width="100%" text="Click Share so Firefox can use mic in the conference."
|
||||
styleName="micSettingsWindowSpeakIntoMicLabelStyle" />
|
||||
|
@ -58,14 +58,12 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
</mx:Script>
|
||||
|
||||
<mx:VBox width="100%" height="100%" paddingBottom="5" paddingLeft="5" paddingRight="5" paddingTop="5">
|
||||
<mx:Canvas width="100%">
|
||||
<mx:TextArea borderSkin="{null}"
|
||||
editable="false"
|
||||
text="Firefox Microphone Permissions"
|
||||
styleName="micSettingsWindowTitleStyle"
|
||||
width="400"
|
||||
left="0"/>
|
||||
</mx:Canvas>
|
||||
<mx:TextArea borderSkin="{null}"
|
||||
editable="false"
|
||||
text="Firefox Microphone Permissions"
|
||||
styleName="micSettingsWindowTitleStyle"
|
||||
width="400"
|
||||
left="0"/>
|
||||
<mx:HBox width="100%">
|
||||
<mx:Text width="100%" text="Choose your mic and then click Share."
|
||||
styleName="micSettingsWindowSpeakIntoMicLabelStyle" />
|
||||
|
@ -29,6 +29,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
<mate:Listener type="{FlashEchoTestStartedEvent.ECHO_TEST_STARTED}" method="handleFlashEchoTestStartedEvent" />
|
||||
<mate:Listener type="{FlashEchoTestStoppedEvent.ECHO_TEST_STOPPED}" method="handleFlashEchoTestStoppedEvent" />
|
||||
<mate:Listener type="{FlashEchoTestFailedEvent.ECHO_TEST_FAILED}" method="handleFlashEchoTestFailedEvent" />
|
||||
<mate:Listener type="{FlashJoinedVoiceConferenceEvent.JOINED_VOICE_CONFERENCE}" method="handleFlashJoinedVoiceConferenceEvent" />
|
||||
|
||||
|
||||
@ -56,6 +57,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
import org.bigbluebutton.modules.phone.PhoneOptions;
|
||||
import org.bigbluebutton.modules.phone.events.AudioSelectionWindowEvent;
|
||||
import org.bigbluebutton.modules.phone.events.CallEchoTestAppEvent;
|
||||
import org.bigbluebutton.modules.phone.events.FlashEchoTestFailedEvent;
|
||||
import org.bigbluebutton.modules.phone.events.FlashEchoTestHasAudioEvent;
|
||||
import org.bigbluebutton.modules.phone.events.FlashEchoTestNoAudioEvent;
|
||||
import org.bigbluebutton.modules.phone.events.FlashEchoTestStartedEvent;
|
||||
@ -71,12 +73,15 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
[Bindable] private var FLASH_ECHO_TEST_STATE:String = "flashEchoTestState";
|
||||
[Bindable] private var FLASH_MIC_SETTING:String = "flashMicSettings";
|
||||
[Bindable] private var FLASH_ECHO_TEST:String = "flashEchoTest";
|
||||
[Bindable] private var FLASH_MIC_TEST_FAILED_STATE:String = "flashMicTestFailedState";
|
||||
[Bindable] private var FLASH_MIC_TEST_CONNECTING:String = "connecting";
|
||||
|
||||
[Embed(source="assets/audio-test.mp3")]
|
||||
[Bindable] private var soundClass:Class;
|
||||
private var sound:Sound = new soundClass() as Sound;
|
||||
private var soundChannel:SoundChannel;
|
||||
|
||||
private var dotTimer:Timer = new Timer(200, 0);
|
||||
private var micActivityTimer:Timer;
|
||||
private var mic:Microphone;
|
||||
private var audioMicLevelDetected:int = 0;
|
||||
@ -164,7 +169,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
private function setupForMicLoopbackTest():void {
|
||||
setCurrentState(FLASH_MIC_SETTING_STATE);
|
||||
|
||||
|
||||
var tempArr:Array = new Array();
|
||||
tempArr.push("0%", ResourceUtil.getInstance().getString('bbb.micSettings.micRecordVolume.label'),"100%");
|
||||
micRecordVolume.labels = tempArr;
|
||||
@ -201,6 +206,14 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
playingAudio = false;
|
||||
}
|
||||
}
|
||||
|
||||
private function dotAnimate(e:TimerEvent):void {
|
||||
if (lblConnectDots.text.length > 5) {
|
||||
lblConnectDots.text = "";
|
||||
} else {
|
||||
lblConnectDots.text += ".";
|
||||
}
|
||||
}
|
||||
|
||||
private function soundCompleteHandler(e:Event):void {
|
||||
playingAudio = false;
|
||||
@ -212,8 +225,16 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
comboMicList.enabled = true;
|
||||
echoTestButton.enabled = true;
|
||||
}
|
||||
|
||||
private function handleFlashEchoTestFailedEvent(event:FlashEchoTestFailedEvent):void {
|
||||
doingEchoTest = false;
|
||||
comboMicList.enabled = true;
|
||||
echoTestButton.enabled = true;
|
||||
setupForEchoTestFailed()
|
||||
}
|
||||
|
||||
private function handleFlashEchoTestStartedEvent(event:FlashEchoTestStartedEvent):void {
|
||||
dotTimer.stop();
|
||||
echoTestButton.enabled = false;
|
||||
showEchoTestAudioPrompt();
|
||||
}
|
||||
@ -225,7 +246,14 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
private function echoTestButtonClickHandler():void {
|
||||
echoTestButton.enabled = false;
|
||||
comboMicList.enabled = false;
|
||||
doingEchoTest = true;
|
||||
doingEchoTest = true;
|
||||
|
||||
setCurrentState(FLASH_MIC_TEST_CONNECTING);
|
||||
lblConnectMessage.text = ResourceUtil.getInstance().getString('bbb.micSettings.connectingtoecho');
|
||||
|
||||
dotTimer.addEventListener(TimerEvent.TIMER, dotAnimate);
|
||||
dotTimer.start();
|
||||
|
||||
dispatchEvent(new FlashStartEchoTestCommand(mic.index, mic.name));
|
||||
}
|
||||
|
||||
@ -277,6 +305,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
private function noButtonClicked():void {
|
||||
trace(LOG + "Echo test failed.");
|
||||
dispatchEvent(new FlashEchoTestNoAudioEvent());
|
||||
testMicrophoneLoopback();
|
||||
setupForMicLoopbackTest();
|
||||
}
|
||||
|
||||
@ -285,6 +314,13 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
testMicrophoneLoopback();
|
||||
}
|
||||
|
||||
private function setupForEchoTestFailed():void
|
||||
{
|
||||
dotTimer.stop();
|
||||
trace(LOG + "Setting state to " + FLASH_MIC_TEST_FAILED_STATE);
|
||||
setCurrentState(FLASH_MIC_TEST_FAILED_STATE);
|
||||
}
|
||||
|
||||
]]>
|
||||
</mx:Script>
|
||||
|
||||
@ -297,8 +333,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
styleName="micSettingsWindowSpeakIntoMicLabelStyle" />
|
||||
</mx:HBox>
|
||||
<mx:HRule width="100%"/>
|
||||
<mx:Spacer height="10"/>
|
||||
<mx:HBox width="100%" horizontalAlign="right" horizontalGap="18">
|
||||
<mx:HBox width="100%" horizontalAlign="right" horizontalGap="18" paddingTop="10">
|
||||
<mx:Text width="100%" text="{ResourceUtil.getInstance().getString('bbb.micSettings.echoTestMicPrompt')}"
|
||||
styleName="micSettingsWindowSpeakIntoMicLabelStyle" />
|
||||
<mx:Button id="yesButton" label="{ResourceUtil.getInstance().getString('bbb.micSettings.echoTestAudioYes')}"
|
||||
@ -339,6 +374,24 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
</mx:AddChild>
|
||||
</mx:State>
|
||||
|
||||
<mx:State name="{FLASH_MIC_TEST_FAILED_STATE}">
|
||||
<mx:AddChild relativeTo="displayMicNextToThis" position="after" >
|
||||
<mx:HBox width="100%" height="100%" verticalAlign="middle" horizontalAlign="center">
|
||||
<mx:Label width="100%" text="{ResourceUtil.getInstance().getString('bbb.micSettings.connectingtoecho.error')}" textAlign="center" styleName="micSettingsWindowHearFromHeadsetLabelStyle" />
|
||||
</mx:HBox>
|
||||
</mx:AddChild>
|
||||
</mx:State>
|
||||
|
||||
<mx:State name="{FLASH_MIC_TEST_CONNECTING}">
|
||||
<mx:AddChild relativeTo="displayMicNextToThis" position="after">
|
||||
<mx:HBox width="100%" height="100%" verticalAlign="middle" horizontalAlign="center">
|
||||
<mx:Label id="lblConnectMessage" textAlign="right" styleName="micSettingsWindowSpeakIntoMicLabelStyle" />
|
||||
<mx:Label id="lblConnectDots" width="20" textAlign="left" styleName="micSettingsWindowSpeakIntoMicLabelStyle" />
|
||||
</mx:HBox>
|
||||
</mx:AddChild>
|
||||
</mx:State>
|
||||
|
||||
</mx:states>
|
||||
|
||||
<mx:VBox id="mainContainer" width="100%" height="100%" paddingBottom="5" paddingLeft="5" paddingRight="5" paddingTop="5">
|
||||
@ -365,8 +418,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
<!-- Play Sound, Join and Cancel buttons -->
|
||||
<mx:HRule width="100%"/>
|
||||
<mx:Spacer height="10"/>
|
||||
<mx:HBox width="100%" horizontalAlign="right" horizontalGap="18">
|
||||
<mx:HBox width="100%" horizontalAlign="right" horizontalGap="18" paddingTop="10">
|
||||
<mx:Button id="echoTestButton" label="Next"
|
||||
click="echoTestButtonClickHandler()" styleName="micSettingsWindowPlaySoundButtonStyle"
|
||||
toolTip="{ResourceUtil.getInstance().getString('bbb.micSettings.playSound.toolTip')}"/>
|
||||
|
@ -95,8 +95,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
tabIndex="{baseIndex}" width="100%" left="0"/>
|
||||
<mx:HRule width="100%"/>
|
||||
|
||||
<mx:Spacer height="20"/>
|
||||
<mx:HBox verticalAlign="top" width="100%">
|
||||
<mx:HBox verticalAlign="top" width="100%" paddingTop="20">
|
||||
<mx:Label width="70%" styleName="lockSettingsDefaultLabelStyle" text="{ResourceUtil.getInstance().getString('bbb.lockSettings.feature')}" fontWeight="bold" />
|
||||
<mx:Label styleName="lockSettingsDefaultLabelStyle" text="{ResourceUtil.getInstance().getString('bbb.lockSettings.enabled')}" fontWeight="bold" />
|
||||
</mx:HBox>
|
||||
@ -147,9 +146,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
</mx:HBox>
|
||||
<mx:HRule width="100%"/>
|
||||
|
||||
<mx:Spacer height="20"/>
|
||||
|
||||
<mx:HBox width="100%" horizontalAlign="right" horizontalGap="18">
|
||||
<mx:HBox width="100%" horizontalAlign="right" horizontalGap="18" paddingTop="20">
|
||||
<mx:Button id="saveBtn" label="{ResourceUtil.getInstance().getString('bbb.lockSettings.save')}"
|
||||
click="onSaveClicked()" tabIndex="{baseIndex+8}"
|
||||
toolTip="{ResourceUtil.getInstance().getString('bbb.lockSettings.save.toolTip')}"/>
|
||||
|
@ -588,8 +588,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
<mx:Label
|
||||
htmlText="{ResourceUtil.getInstance().getString('bbb.mainshell.copyrightLabel2',[appVersion])}"
|
||||
id="copyrightLabel2"
|
||||
selectable="false" />
|
||||
<mx:Spacer width="20"/>
|
||||
selectable="false" paddingRight="20"/>
|
||||
<mx:Spacer width="100%" id="spacer" />
|
||||
<mx:Label
|
||||
text="[Tunnelling]"
|
||||
|
4
bigbluebutton-client/src/org/bigbluebutton/main/views/MuteMeButton.mxml
Normal file → Executable file
4
bigbluebutton-client/src/org/bigbluebutton/main/views/MuteMeButton.mxml
Normal file → Executable file
@ -38,8 +38,8 @@ $Id: $
|
||||
<mate:Listener type="{ShortcutEvent.MUTE_ME_EVENT}" method="toggleMuteMeState" />
|
||||
<mate:Listener type="{EventConstants.USER_TALKING}" method="handleUserTalking" />
|
||||
<mate:Listener type="{LockControlEvent.CHANGED_LOCK_SETTINGS}" method="lockSettingsChanged" />
|
||||
<mate:Listener type="{BBBEvent.USER_VOICE_JOINED}" method="handleLeftVoiceConferenceEvent" />
|
||||
<mate:Listener type="{BBBEvent.USER_VOICE_LEFT}" method="handleJoinedVoiceConferenceEvent" />
|
||||
<mate:Listener type="{BBBEvent.USER_VOICE_JOINED}" method="handleJoinedVoiceConferenceEvent" />
|
||||
<mate:Listener type="{BBBEvent.USER_VOICE_LEFT}" method="handleLeftVoiceConferenceEvent" />
|
||||
<mate:Listener type="{BBBEvent.USER_VOICE_MUTED}" method="handleVoiceMutedEvent" />
|
||||
|
||||
<mx:Script>
|
||||
|
@ -34,19 +34,24 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
mouseOut="onRecordButtonMouseOut(event)" >
|
||||
|
||||
<mate:Listener type="{BBBEvent.CHANGE_RECORDING_STATUS}" method="onRecordingStatusChanged" />
|
||||
|
||||
<mate:Listener type="{FlashJoinedVoiceConferenceEvent.JOINED_VOICE_CONFERENCE}" method="handleFlashJoinedVoiceConference" />
|
||||
<mate:Listener type="{WebRTCCallEvent.WEBRTC_CALL_STARTED}" method="handleWebRTCCallStarted" />
|
||||
<mx:Script>
|
||||
<![CDATA[
|
||||
|
||||
import com.asfusion.mate.events.Dispatcher;
|
||||
|
||||
import mx.controls.Alert;
|
||||
import mx.events.CloseEvent;
|
||||
import org.bigbluebutton.main.events.BBBEvent;
|
||||
|
||||
import org.bigbluebutton.core.managers.UserManager;
|
||||
import org.bigbluebutton.main.events.BBBEvent;
|
||||
import org.bigbluebutton.modules.phone.events.FlashJoinedVoiceConferenceEvent;
|
||||
import org.bigbluebutton.modules.phone.events.WebRTCCallEvent;
|
||||
import org.bigbluebutton.util.i18n.ResourceUtil;
|
||||
|
||||
private var recordingFlag:Boolean;
|
||||
|
||||
private var firstAudioJoin:Boolean = true;
|
||||
|
||||
private function confirmChangeRecordingStatus():void {
|
||||
trace("Confirming recording status change!!!!");
|
||||
|
||||
@ -116,6 +121,28 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
}
|
||||
}
|
||||
|
||||
private function handleFlashJoinedVoiceConference(e:FlashJoinedVoiceConferenceEvent):void {
|
||||
showRecordingNotification();
|
||||
}
|
||||
|
||||
private function handleWebRTCCallStarted(e:WebRTCCallEvent):void {
|
||||
showRecordingNotification();
|
||||
}
|
||||
|
||||
private function showRecordingNotification():void {
|
||||
if (firstAudioJoin && this.visible && !this.selected && UserManager.getInstance().getConference().amIModerator()) {
|
||||
var alert:Alert = Alert.show(ResourceUtil.getInstance().getString("bbb.mainToolbar.recordBtn..notification.message1") + "\n\n" + ResourceUtil.getInstance().getString("bbb.mainToolbar.recordBtn..notification.message2"), ResourceUtil.getInstance().getString("bbb.mainToolbar.recordBtn..notification.title"), Alert.OK, this);
|
||||
|
||||
var newX:Number = this.x;
|
||||
var newY:Number = this.y + this.height + 5;
|
||||
|
||||
alert.validateNow();
|
||||
alert.move(newX, newY);
|
||||
|
||||
firstAudioJoin = false;
|
||||
}
|
||||
}
|
||||
|
||||
private function onRecordButtonMouseOver(event:MouseEvent):void {
|
||||
if (UserManager.getInstance().getConference().amIModerator()) {
|
||||
this.styleName = this.selected? "recordButtonStyleStop": "recordButtonStyleStart";
|
||||
|
@ -164,8 +164,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
styleName="micSettingsWindowSpeakIntoMicLabelStyle" />
|
||||
</mx:HBox>
|
||||
<mx:HRule width="100%"/>
|
||||
<mx:Spacer height="10"/>
|
||||
<mx:HBox width="100%" horizontalAlign="right" horizontalGap="18">
|
||||
<mx:HBox width="100%" horizontalAlign="right" horizontalGap="18" paddingTop="10">
|
||||
<mx:Text width="100%" text="{ResourceUtil.getInstance().getString('bbb.micSettings.echoTestMicPrompt')}"
|
||||
styleName="micSettingsWindowSpeakIntoMicLabelStyle" />
|
||||
<mx:Button id="yesButton" label="{ResourceUtil.getInstance().getString('bbb.micSettings.echoTestAudioYes')}"
|
||||
|
@ -0,0 +1,14 @@
|
||||
package org.bigbluebutton.modules.phone.events
|
||||
{
|
||||
import flash.events.Event;
|
||||
|
||||
public class FlashEchoTestFailedEvent extends Event
|
||||
{
|
||||
public static const ECHO_TEST_FAILED:String = "flash echo test failed event";
|
||||
|
||||
public function FlashEchoTestFailedEvent()
|
||||
{
|
||||
super(ECHO_TEST_FAILED, true, false);
|
||||
}
|
||||
}
|
||||
}
|
22
bigbluebutton-client/src/org/bigbluebutton/modules/phone/managers/FlashCallManager.as
Normal file → Executable file
22
bigbluebutton-client/src/org/bigbluebutton/modules/phone/managers/FlashCallManager.as
Normal file → Executable file
@ -1,13 +1,16 @@
|
||||
package org.bigbluebutton.modules.phone.managers
|
||||
{
|
||||
import com.asfusion.mate.events.Dispatcher;
|
||||
import com.asfusion.mate.events.Dispatcher;
|
||||
|
||||
import flash.external.ExternalInterface;
|
||||
import flash.media.Microphone;
|
||||
import flash.media.Microphone;
|
||||
|
||||
import org.bigbluebutton.core.UsersUtil;
|
||||
import org.bigbluebutton.core.model.MeetingModel;
|
||||
import org.bigbluebutton.modules.phone.PhoneOptions;
|
||||
import org.bigbluebutton.modules.phone.events.FlashCallConnectedEvent;
|
||||
import org.bigbluebutton.modules.phone.events.FlashCallDisconnectedEvent;
|
||||
import org.bigbluebutton.modules.phone.events.FlashEchoTestFailedEvent;
|
||||
import org.bigbluebutton.modules.phone.events.FlashEchoTestHasAudioEvent;
|
||||
import org.bigbluebutton.modules.phone.events.FlashEchoTestNoAudioEvent;
|
||||
import org.bigbluebutton.modules.phone.events.FlashEchoTestStartedEvent;
|
||||
@ -225,7 +228,12 @@
|
||||
trace(LOG + "handling FlashStopEchoTestCommand, current state: " + state);
|
||||
if (state == IN_ECHO_TEST) {
|
||||
hangup();
|
||||
}
|
||||
}
|
||||
else if (state == CALLING_INTO_ECHO_TEST)
|
||||
{
|
||||
state = INITED;
|
||||
hangup();
|
||||
}
|
||||
}
|
||||
|
||||
public function handleFlashEchoTestHasAudioEvent(event:FlashEchoTestHasAudioEvent):void {
|
||||
@ -277,6 +285,7 @@
|
||||
switch (state) {
|
||||
case IN_CONFERENCE:
|
||||
state = INITED;
|
||||
dispatcher.dispatchEvent(new FlashLeftVoiceConferenceEvent());
|
||||
break;
|
||||
case ON_LISTEN_ONLY_STREAM:
|
||||
state = INITED;
|
||||
@ -292,6 +301,11 @@
|
||||
trace(LOG + "Flash echo test stopped, now joining the voice conference.");
|
||||
callIntoVoiceConference();
|
||||
break;
|
||||
case CALLING_INTO_ECHO_TEST:
|
||||
state = INITED;
|
||||
trace(LOG + "Unsuccessfully called into the echo test application.");
|
||||
dispatcher.dispatchEvent(new FlashEchoTestFailedEvent());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -305,6 +319,7 @@
|
||||
trace(LOG + "ignoring join voice conf as usingFlash=[" + usingFlash + "] or eventMic=[" + !event.mic + "]");
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
trace("Ignoring join voice as state=[" + state + "]");
|
||||
}
|
||||
@ -316,7 +331,6 @@
|
||||
// this is the case when the user was connected to webrtc and then leaves the conference
|
||||
return;
|
||||
}
|
||||
|
||||
hangup();
|
||||
}
|
||||
|
||||
|
@ -39,13 +39,10 @@
|
||||
]]>
|
||||
</mx:Script>
|
||||
<mx:VBox width="100%" height="100%">
|
||||
<mx:Spacer height="5"/>
|
||||
<mx:HBox width="100%" height="25" horizontalAlign="center">
|
||||
<mx:Spacer width="3"/>
|
||||
<mx:Label text="{_question}" fontSize="12" styleName="micSettingsWindowTitleStyle"/>
|
||||
<mx:HBox width="100%" height="25" horizontalAlign="center" paddingTop="5">
|
||||
<mx:Label text="{_question}" fontSize="12" styleName="micSettingsWindowTitleStyle" paddingLeft="3"/>
|
||||
</mx:HBox>
|
||||
<mx:Spacer height="5"/>
|
||||
<mx:VBox width="100%" height="100%" horizontalAlign="center">
|
||||
<mx:VBox width="100%" height="100%" horizontalAlign="center" paddingTop="5">
|
||||
<mx:ColumnChart id="barChart" dataProvider="{_responses}" showDataTips="true" width="100%" height="100%">
|
||||
<mx:horizontalAxis>
|
||||
<mx:CategoryAxis dataProvider="{_responses}" categoryField="response" />
|
||||
@ -55,8 +52,7 @@
|
||||
</mx:series>
|
||||
</mx:ColumnChart>
|
||||
<mx:HBox width="100%" horizontalAlign="center" borderStyle="none">
|
||||
<mx:Spacer width="5"/>
|
||||
<mx:Legend dataProvider="{barChart}"/>
|
||||
<mx:Legend dataProvider="{barChart}" paddingLeft="5"/>
|
||||
</mx:HBox>
|
||||
</mx:VBox>
|
||||
</mx:VBox>
|
||||
|
@ -40,13 +40,10 @@
|
||||
]]>
|
||||
</mx:Script>
|
||||
<mx:VBox width="100%" height="100%">
|
||||
<mx:Spacer height="5"/>
|
||||
<mx:HBox width="100%" height="25" horizontalAlign="center">
|
||||
<mx:Spacer width="3"/>
|
||||
<mx:Label text="{_question}" fontSize="12" styleName="micSettingsWindowTitleStyle"/>
|
||||
<mx:HBox width="100%" height="25" horizontalAlign="center" paddingTop="5">
|
||||
<mx:Label text="{_question}" fontSize="12" styleName="micSettingsWindowTitleStyle" paddingLeft="3"/>
|
||||
</mx:HBox>
|
||||
<mx:Spacer height="5"/>
|
||||
<mx:VBox width="100%" height="100%" horizontalAlign="center">
|
||||
<mx:VBox width="100%" height="100%" horizontalAlign="center" paddingTop="5">
|
||||
<mx:PieChart id="pieChart" dataProvider="{_responses}" showDataTips="true"
|
||||
width="100%" height="100%">
|
||||
<mx:series>
|
||||
@ -55,9 +52,8 @@
|
||||
</mx:series>
|
||||
</mx:PieChart>
|
||||
<mx:HBox width="100%" horizontalAlign="center" borderStyle="none">
|
||||
<mx:Spacer width="5"/>
|
||||
<mx:Legend dataProvider="{pieChart}" direction="horizontal" borderStyle="none"
|
||||
labelPlacement="left" horizontalGap="10" width="100%" />
|
||||
labelPlacement="left" horizontalGap="10" width="100%" paddingLeft="5"/>
|
||||
</mx:HBox>
|
||||
</mx:VBox>
|
||||
|
||||
|
@ -81,62 +81,41 @@
|
||||
]]>
|
||||
</mx:Script>
|
||||
<mx:HBox width="100%" height="25" horizontalAlign="left">
|
||||
<mx:Spacer width="3"/>
|
||||
<mx:Label text="Create New Poll" styleName="micSettingsWindowTitleStyle"/>
|
||||
<mx:Label text="Create New Poll" styleName="micSettingsWindowTitleStyle" paddingLeft="3"/>
|
||||
</mx:HBox>
|
||||
|
||||
<mx:VBox width="90%" height="90%" horizontalAlign="center" borderStyle="solid" borderThickness="1">
|
||||
|
||||
<mx:HBox width="100%" height="20" horizontalAlign="left">
|
||||
<mx:Spacer width="3"/>
|
||||
<mx:Label id="titleLabel" text="Title" styleName="presentationNamesLabelStyle"/>
|
||||
<mx:Label id="titleLabel" text="Title" styleName="presentationNamesLabelStyle" paddingLeft="3"/>
|
||||
</mx:HBox>
|
||||
<mx:Spacer height="5"/>
|
||||
<mx:HBox width="96%" height="25">
|
||||
<mx:Spacer width="10"/>
|
||||
<mx:TextInput id="pollTitle" width="100%" text="Type in your title" editable="true" maxChars="250"/>
|
||||
<mx:HBox width="96%" height="25" paddingTop="5">
|
||||
<mx:TextInput id="pollTitle" width="100%" text="Type in your title" editable="true" maxChars="250" paddingLeft="10"/>
|
||||
</mx:HBox>
|
||||
<mx:Spacer height="3"/>
|
||||
|
||||
<mx:HBox width="100%" height="20" horizontalAlign="left">
|
||||
<mx:Spacer width="3"/>
|
||||
<mx:Label id="questionLabel" text="Question" styleName="presentationNamesLabelStyle"/>
|
||||
<mx:HBox width="100%" height="20" horizontalAlign="left" paddingTop="3">
|
||||
<mx:Label id="questionLabel" text="Question" styleName="presentationNamesLabelStyle" paddingLeft="3"/>
|
||||
</mx:HBox>
|
||||
<mx:Spacer height="5"/>
|
||||
<mx:HBox width="96%" height="75">
|
||||
<mx:Spacer width="10"/>
|
||||
<mx:TextArea id="pollQuestion" width="100%" height="100%" wordWrap="true" text="Type in your questions" editable="true" maxChars="1000"/>
|
||||
<mx:HBox width="96%" height="75" paddingTop="5">
|
||||
<mx:TextArea id="pollQuestion" width="100%" height="100%" wordWrap="true" text="Type in your questions" editable="true" maxChars="1000" paddingLeft="10"/>
|
||||
</mx:HBox>
|
||||
<mx:Spacer height="3"/>
|
||||
|
||||
<mx:HBox width="100%" height="20" horizontalAlign="left">
|
||||
<mx:Spacer width="3"/>
|
||||
<mx:Label id="answersLabel" text="Answers" styleName="presentationNamesLabelStyle"/>
|
||||
<mx:HBox width="100%" height="20" horizontalAlign="left" paddingTop="3">
|
||||
<mx:Label id="answersLabel" text="Answers" styleName="presentationNamesLabelStyle" paddingLeft="3"/>
|
||||
</mx:HBox>
|
||||
<mx:HBox width="100%" height="20" horizontalAlign="left">
|
||||
<mx:Spacer width="10"/>
|
||||
<mx:Label id="hintAnswersLabel" text="Start every answer with a new line" fontSize="12" styleName="presentationNamesLabelStyle"/>
|
||||
<mx:Label id="hintAnswersLabel" text="Start every answer with a new line" fontSize="12" styleName="presentationNamesLabelStyle" paddingLeft="10"/>
|
||||
</mx:HBox>
|
||||
<mx:Spacer height="5"/>
|
||||
<mx:HBox width="96%" height="150">
|
||||
<mx:Spacer width="10"/>
|
||||
<mx:TextArea id="pollAnswers" width="100%" height="100%" wordWrap="true" text="Answers" maxChars="2000"/>
|
||||
<mx:HBox width="96%" height="150" paddingTop="5">
|
||||
<mx:TextArea id="pollAnswers" width="100%" height="100%" wordWrap="true" text="Answers" maxChars="2000" paddingLeft="10"/>
|
||||
</mx:HBox>
|
||||
<mx:Spacer height="3"/>
|
||||
<mx:CheckBox id="multiple_response"
|
||||
<mx:CheckBox id="multiple_response" paddingTop="3" paddingBottom="5"
|
||||
label="{ResourceUtil.getInstance().getString('bbb.polling.createPoll.moreThanOneResponse')}"
|
||||
tabIndex="{baseIndex+4}"/>
|
||||
|
||||
<mx:Spacer height="5"/>
|
||||
|
||||
</mx:VBox>
|
||||
|
||||
<mx:HBox width="100%" height="35" horizontalAlign="right">
|
||||
<mx:Button label="Create" styleName="presentationUploadShowButtonStyle" click="createPoll()"/>
|
||||
<mx:Spacer width="5"/>
|
||||
<mx:Button label="Cancel" styleName="presentationUploadShowButtonStyle" click="close()"/>
|
||||
<mx:Spacer width="5"/>
|
||||
<mx:HBox width="100%" height="35" horizontalAlign="right" paddingBottom="5">
|
||||
<mx:Button label="Create" styleName="presentationUploadShowButtonStyle" click="createPoll()" paddingRight="5"/>
|
||||
<mx:Button label="Cancel" styleName="presentationUploadShowButtonStyle" click="close()" paddingRight="5"/>
|
||||
</mx:HBox>
|
||||
|
||||
<mx:Spacer height="5"/>
|
||||
</mx:Panel>
|
||||
|
@ -53,40 +53,30 @@
|
||||
|
||||
<mx:VBox width="100%" height="50%" borderStyle="solid" borderThickness="1">
|
||||
<mx:HBox width="100%" height="20" horizontalAlign="left">
|
||||
<mx:Spacer width="3"/>
|
||||
<mx:Label id="pollsLabel" text="Select a poll from the list." styleName="presentationNamesLabelStyle"/>
|
||||
<mx:Label id="pollsLabel" text="Select a poll from the list." styleName="presentationNamesLabelStyle" paddingLeft="3"/>
|
||||
</mx:HBox>
|
||||
<mx:Spacer height="5"/>
|
||||
<mx:HBox width="96%" height="150">
|
||||
<mx:Spacer width="10"/>
|
||||
<mx:HBox width="96%" height="150" paddingTop="5" paddingBottom="3">
|
||||
<mx:List id="pollsList" width="100%" height="100%" alternatingItemColors="[#EFEFEF, #FEFEFE]" allowMultipleSelection="false"
|
||||
itemRenderer="org.bigbluebutton.modules.polling.views.CreatedPollsRenderer"
|
||||
dragEnabled="false" dataProvider="{_polls}">
|
||||
dragEnabled="false" dataProvider="{_polls}" paddingLeft="10">
|
||||
</mx:List>
|
||||
</mx:HBox>
|
||||
<mx:Spacer height="3"/>
|
||||
</mx:VBox>
|
||||
|
||||
<mx:Spacer height="5"/>
|
||||
|
||||
<mx:HBox width="100%" height="25" horizontalAlign="left">
|
||||
<mx:HBox width="100%" height="25" horizontalAlign="left" paddingTop="5">
|
||||
<mx:Label text="Custom Poll" styleName="micSettingsWindowTitleStyle"/>
|
||||
</mx:HBox>
|
||||
|
||||
<mx:VBox width="100%" height="15%" borderStyle="solid" borderThickness="1">
|
||||
<mx:HBox width="100%" height="25">
|
||||
<mx:Spacer width="5"/>
|
||||
<mx:Label id="customPollsLabel" text="Create a custom poll" styleName="presentationNamesLabelStyle"/>
|
||||
<mx:Label id="customPollsLabel" text="Create a custom poll" styleName="presentationNamesLabelStyle" paddingLeft="5"/>
|
||||
</mx:HBox>
|
||||
<mx:HBox width="100%" height="30" horizontalAlign="center">
|
||||
<mx:HBox width="100%" height="30" horizontalAlign="center" paddingBottom="3">
|
||||
<mx:Button label="Create Custom Poll" height="25" click="createPoll()"/>
|
||||
</mx:HBox>
|
||||
<mx:Spacer height="3"/>
|
||||
</mx:VBox>
|
||||
|
||||
<mx:Spacer height="5"/>
|
||||
|
||||
<mx:HBox width="100%" height="35" horizontalAlign="right">
|
||||
<mx:HBox width="100%" height="35" horizontalAlign="right" paddingTop="5">
|
||||
<mx:Button label="Close" styleName="presentationUploadShowButtonStyle" click="close()"/>
|
||||
</mx:HBox>
|
||||
</mx:VBox>
|
||||
|
@ -88,27 +88,22 @@
|
||||
<mx:RadioButton groupName="charttype" id="pieChart" label="Pie Chart" value="piechart" width="100" />
|
||||
</mx:HBox>
|
||||
-->
|
||||
<mx:Spacer id="spacer" height="5"/>
|
||||
<mx:HBox height="5%" width="100%" horizontalAlign="right">
|
||||
<mx:Spacer width="5"/>
|
||||
<mx:Label text="Time remaining:" fontSize="12" styleName="micSettingsWindowTitleStyle" visible="true" />
|
||||
<mx:Label id="timeRemaining" text="{pollTimeRemaining}" fontSize="12" styleName="micSettingsWindowTitleStyle" visible="true" />
|
||||
<mx:Spacer width="100%"/>
|
||||
<mx:Button id="btnStop" label="Stop Polling" visible="{_showStopButton}" click="stop()"/>
|
||||
<mx:Spacer width="5"/>
|
||||
<mx:Button id="btnClose" label="Close" click="close()"/>
|
||||
<mx:Spacer width="5"/>
|
||||
<mx:HBox id="pollResultBox" height="5%" width="100%" horizontalAlign="right" paddingTop="5">
|
||||
<mx:Label text="Time remaining:" fontSize="12" styleName="micSettingsWindowTitleStyle" visible="true" paddingLeft="5"/>
|
||||
<mx:Label id="timeRemaining" text="{pollTimeRemaining}" fontSize="12" styleName="micSettingsWindowTitleStyle" visible="true"/>
|
||||
<mx:Button id="btnStop" label="Stop Polling" visible="{_showStopButton}" click="stop()" paddingRight="5"/>
|
||||
<mx:Button id="btnClose" label="Close" click="close()" paddingRight="5"/>
|
||||
</mx:HBox>
|
||||
</mx:VBox>
|
||||
|
||||
<mx:states>
|
||||
<mx:State name="PieChart" >
|
||||
<mx:AddChild relativeTo="{spacer}" position="before" >
|
||||
<mx:AddChild relativeTo="{pollResultBox}" position="before" >
|
||||
<poll:DisplayResultPieChartPanel width="100%" height="80%" viewModel="{viewModel}" pollID="{pollID}" horizontalAlign="center"/>
|
||||
</mx:AddChild>
|
||||
</mx:State>
|
||||
<mx:State name="BarChart">
|
||||
<mx:AddChild relativeTo="{spacer}" position="before">
|
||||
<mx:AddChild relativeTo="{pollResultBox}" position="before">
|
||||
<poll:DisplayResultBarChartPanel width="100%" height="80%" viewModel="{viewModel}" pollID="{pollID}" horizontalAlign="center"/>
|
||||
</mx:AddChild>
|
||||
</mx:State>
|
||||
|
@ -90,23 +90,17 @@
|
||||
|
||||
</mx:Script>
|
||||
<mx:HBox width="100%" height="20" horizontalAlign="left">
|
||||
<mx:Spacer width="3"/>
|
||||
<mx:Label id="questionLabel" text="Question" styleName="presentationNamesLabelStyle"/>
|
||||
<mx:Label id="questionLabel" text="Question" styleName="presentationNamesLabelStyle" paddingLeft="3"/>
|
||||
</mx:HBox>
|
||||
<mx:Spacer height="5"/>
|
||||
<mx:HBox width="96%" height="30">
|
||||
<mx:Spacer width="10"/>
|
||||
<mx:Label id="questionTextLabel" text="{_question}" fontSize="12" styleName="presentationNamesLabelStyle"/>
|
||||
<mx:HBox width="96%" height="30" paddingTop="5">
|
||||
<mx:Label id="questionTextLabel" text="{_question}" fontSize="12" styleName="presentationNamesLabelStyle" paddingLeft="10"/>
|
||||
</mx:HBox>
|
||||
<mx:Spacer height="3"/>
|
||||
|
||||
<mx:HBox width="100%" height="20" horizontalAlign="left">
|
||||
<mx:Spacer width="3"/>
|
||||
<mx:Label id="answersLabel" text="Answers" styleName="presentationNamesLabelStyle"/>
|
||||
<mx:HBox width="100%" height="20" horizontalAlign="left" paddingTop="3">
|
||||
<mx:Label id="answersLabel" text="Answers" styleName="presentationNamesLabelStyle" paddingLeft="3"/>
|
||||
</mx:HBox>
|
||||
<mx:HBox>
|
||||
<mx:Spacer width="10"/>
|
||||
<mx:VBox id="answersBox">
|
||||
<mx:VBox id="answersBox" paddingLeft="10">
|
||||
<mx:RadioButtonGroup id="rbGroup" itemClick="handleCard(event);"/>
|
||||
<!-- Placeholder for the responses -->
|
||||
</mx:VBox>
|
||||
|
@ -79,35 +79,25 @@
|
||||
]]>
|
||||
</mx:Script>
|
||||
<mx:HBox width="100%" height="25" horizontalAlign="left">
|
||||
<mx:Spacer width="3"/>
|
||||
<mx:Label text="Take Poll" styleName="micSettingsWindowTitleStyle"/>
|
||||
<mx:Label text="Take Poll" styleName="micSettingsWindowTitleStyle" paddingLeft="3"/>
|
||||
</mx:HBox>
|
||||
|
||||
<mx:VBox width="90%" height="90%" horizontalAlign="left" borderStyle="solid" borderThickness="1">
|
||||
|
||||
<mx:HBox width="100%" height="20" horizontalAlign="left">
|
||||
<mx:Spacer width="3"/>
|
||||
<mx:Label id="titleLabel" text="Title" styleName="presentationNamesLabelStyle"/>
|
||||
<mx:Label id="titleLabel" text="Title" styleName="presentationNamesLabelStyle" paddingLeft="3"/>
|
||||
</mx:HBox>
|
||||
<mx:Spacer height="5"/>
|
||||
<mx:HBox width="96%" height="25">
|
||||
<mx:Spacer width="10"/>
|
||||
<mx:Label id="titleTextLabel" text="{_title}" fontSize="12" styleName="presentationNamesLabelStyle"/>
|
||||
<mx:HBox width="96%" height="25" paddingTop="5">
|
||||
<mx:Label id="titleTextLabel" text="{_title}" fontSize="12" styleName="presentationNamesLabelStyle" paddingLeft="10"/>
|
||||
</mx:HBox>
|
||||
<mx:Spacer height="3"/>
|
||||
|
||||
<poll:QuestionRenderer viewModel="{viewModel}" pollID="{pollID}" responseCollector="{responseCollector}"/>
|
||||
|
||||
<mx:Spacer height="5"/>
|
||||
<poll:QuestionRenderer viewModel="{viewModel}" pollID="{pollID}" responseCollector="{responseCollector}" paddingTop="3" paddingBottom="5"/>
|
||||
|
||||
</mx:VBox>
|
||||
|
||||
<mx:HBox width="100%" height="35" horizontalAlign="right">
|
||||
<mx:Button label="Submit" styleName="presentationUploadShowButtonStyle" click="onSubmit()"/>
|
||||
<mx:Spacer width="5"/>
|
||||
<mx:Button label="Don't Submit" styleName="presentationUploadShowButtonStyle" click="close()"/>
|
||||
<mx:Spacer width="5"/>
|
||||
<mx:HBox width="100%" height="35" horizontalAlign="right" paddingBottom="5">
|
||||
<mx:Button label="Submit" styleName="presentationUploadShowButtonStyle" click="onSubmit()" paddingRight="5"/>
|
||||
<mx:Button label="Don't Submit" styleName="presentationUploadShowButtonStyle" click="close()" paddingRight="5"/>
|
||||
</mx:HBox>
|
||||
|
||||
<mx:Spacer height="5"/>
|
||||
</mx:Panel>
|
||||
|
@ -133,62 +133,43 @@
|
||||
]]>
|
||||
</mx:Script>
|
||||
<mx:HBox width="100%" height="25" horizontalAlign="left">
|
||||
<mx:Spacer width="3"/>
|
||||
<mx:Label text="Update Poll" styleName="micSettingsWindowTitleStyle"/>
|
||||
<mx:Label text="Update Poll" styleName="micSettingsWindowTitleStyle" paddingLeft="3"/>
|
||||
</mx:HBox>
|
||||
|
||||
<mx:VBox width="90%" height="90%" horizontalAlign="center" borderStyle="solid" borderThickness="1">
|
||||
|
||||
<mx:HBox width="100%" height="20" horizontalAlign="left">
|
||||
<mx:Spacer width="3"/>
|
||||
<mx:Label id="titleLabel" text="Title" styleName="presentationNamesLabelStyle"/>
|
||||
<mx:Label id="titleLabel" text="Title" styleName="presentationNamesLabelStyle" paddingLeft="3"/>
|
||||
</mx:HBox>
|
||||
<mx:Spacer height="5"/>
|
||||
<mx:HBox width="96%" height="25">
|
||||
<mx:Spacer width="10"/>
|
||||
<mx:TextInput id="pollTitle" width="100%" text="{_title}" editable="true" maxChars="250"/>
|
||||
<mx:HBox width="96%" height="25" paddingTop="5">
|
||||
<mx:TextInput id="pollTitle" width="100%" text="{_title}" editable="true" maxChars="250" paddingLeft="10"/>
|
||||
</mx:HBox>
|
||||
<mx:Spacer height="3"/>
|
||||
|
||||
<mx:HBox width="100%" height="20" horizontalAlign="left">
|
||||
<mx:Spacer width="3"/>
|
||||
<mx:Label id="questionLabel" text="Question" styleName="presentationNamesLabelStyle"/>
|
||||
<mx:HBox width="100%" height="20" horizontalAlign="left" paddingTop="3">
|
||||
<mx:Label id="questionLabel" text="Question" styleName="presentationNamesLabelStyle" paddingLeft="3"/>
|
||||
</mx:HBox>
|
||||
<mx:Spacer height="5"/>
|
||||
<mx:HBox width="96%" height="75">
|
||||
<mx:Spacer width="10"/>
|
||||
<mx:TextArea id="pollQuestion" width="100%" height="100%" wordWrap="true" text="{qvo.question}" editable="true" maxChars="1000"/>
|
||||
<mx:HBox width="96%" height="75" paddingTop="5">
|
||||
<mx:TextArea id="pollQuestion" width="100%" height="100%" wordWrap="true" text="{qvo.question}" editable="true" maxChars="1000" paddingLeft="10"/>
|
||||
</mx:HBox>
|
||||
<mx:Spacer height="3"/>
|
||||
|
||||
<mx:HBox width="100%" height="20" horizontalAlign="left">
|
||||
<mx:Spacer width="3"/>
|
||||
<mx:Label id="answersLabel" text="Answers" styleName="presentationNamesLabelStyle"/>
|
||||
<mx:HBox width="100%" height="20" horizontalAlign="left" paddingLeft="3">
|
||||
<mx:Label id="answersLabel" text="Answers" styleName="presentationNamesLabelStyle" paddingLeft="3"/>
|
||||
</mx:HBox>
|
||||
<mx:HBox width="100%" height="20" horizontalAlign="left">
|
||||
<mx:Spacer width="10"/>
|
||||
<mx:Label id="hintAnswersLabel" text="Start every answer with a new line" fontSize="12" styleName="presentationNamesLabelStyle"/>
|
||||
<mx:Label id="hintAnswersLabel" text="Start every answer with a new line" fontSize="12" styleName="presentationNamesLabelStyle" paddingLeft="10"/>
|
||||
</mx:HBox>
|
||||
<mx:Spacer height="5"/>
|
||||
<mx:HBox width="96%" height="150">
|
||||
<mx:Spacer width="10"/>
|
||||
<mx:TextArea id="pollAnswers" width="100%" height="100%" wordWrap="true" text="{_answersText}" maxChars="2000"/>
|
||||
<mx:HBox width="96%" height="150" paddingTop="5">
|
||||
<mx:TextArea id="pollAnswers" width="100%" height="100%" wordWrap="true" text="{_answersText}" maxChars="2000" paddingLeft="10"/>
|
||||
</mx:HBox>
|
||||
<mx:Spacer height="3"/>
|
||||
<mx:CheckBox id="multiple_response" selected="{qvo.multiResponse}"
|
||||
<mx:CheckBox id="multiple_response" selected="{qvo.multiResponse}" paddingTop="3" paddingBottom="5"
|
||||
label="{ResourceUtil.getInstance().getString('bbb.polling.createPoll.moreThanOneResponse')}"
|
||||
tabIndex="{baseIndex+4}"/>
|
||||
|
||||
<mx:Spacer height="5"/>
|
||||
|
||||
</mx:VBox>
|
||||
|
||||
<mx:HBox width="100%" height="35" horizontalAlign="right">
|
||||
<mx:Button label="Update" styleName="presentationUploadShowButtonStyle" click="onUpdate()"/>
|
||||
<mx:Spacer width="5"/>
|
||||
<mx:Button label="Cancel" styleName="presentationUploadShowButtonStyle" click="close()"/>
|
||||
<mx:Spacer width="5"/>
|
||||
<mx:HBox width="100%" height="35" horizontalAlign="right" paddingBottom="5">
|
||||
<mx:Button label="Update" styleName="presentationUploadShowButtonStyle" click="onUpdate()" paddingRight="5"/>
|
||||
<mx:Button label="Cancel" styleName="presentationUploadShowButtonStyle" click="close()" paddingRight="5"/>
|
||||
</mx:HBox>
|
||||
|
||||
<mx:Spacer height="5"/>
|
||||
</mx:Panel>
|
||||
|
@ -9,6 +9,8 @@ package org.bigbluebutton.modules.present.services
|
||||
import org.bigbluebutton.modules.present.events.PageChangedEvent;
|
||||
import org.bigbluebutton.modules.present.events.PageMovedEvent;
|
||||
import org.bigbluebutton.modules.present.events.PresentationChangedEvent;
|
||||
import org.bigbluebutton.modules.present.events.RemovePresentationEvent;
|
||||
import org.bigbluebutton.modules.present.events.UploadEvent;
|
||||
import org.bigbluebutton.modules.present.model.Page;
|
||||
import org.bigbluebutton.modules.present.model.Presentation;
|
||||
import org.bigbluebutton.modules.present.model.PresentationModel;
|
||||
@ -149,5 +151,18 @@ package org.bigbluebutton.modules.present.services
|
||||
trace(LOG + "Switching presentation but presentation [" + presVO.id + "] is not current [" + presVO.isCurrent() + "]");
|
||||
}
|
||||
}
|
||||
|
||||
public function removePresentation(presentationID:String):void {
|
||||
var removedEvent:RemovePresentationEvent = new RemovePresentationEvent(RemovePresentationEvent.PRESENTATION_REMOVED_EVENT);
|
||||
removedEvent.presentationName = presentationID;
|
||||
dispatcher.dispatchEvent(removedEvent);
|
||||
|
||||
if(presentationID == model.getCurrentPresentation().id) {
|
||||
var uploadEvent:UploadEvent = new UploadEvent(UploadEvent.CLEAR_PRESENTATION);
|
||||
dispatcher.dispatchEvent(uploadEvent);
|
||||
}
|
||||
|
||||
model.removePresentation(presentationID);
|
||||
}
|
||||
}
|
||||
}
|
10
bigbluebutton-client/src/org/bigbluebutton/modules/present/services/messaging/MessageReceiver.as
Normal file → Executable file
10
bigbluebutton-client/src/org/bigbluebutton/modules/present/services/messaging/MessageReceiver.as
Normal file → Executable file
@ -197,10 +197,12 @@ package org.bigbluebutton.modules.present.services.messaging
|
||||
}
|
||||
|
||||
private function handleRemovePresentationCallback(msg:Object):void {
|
||||
trace(LOG + "***TODO: handleRemovePresentationCallback " + msg.msg + " **** \n");
|
||||
var e:RemovePresentationEvent = new RemovePresentationEvent(RemovePresentationEvent.PRESENTATION_REMOVED_EVENT);
|
||||
e.presentationName = msg.presentationID;
|
||||
// dispatcher.dispatchEvent(e);
|
||||
trace(LOG + "***DOING: handleRemovePresentationCallback " + msg.msg + " **** \n");
|
||||
var map:Object = JSON.parse(msg.msg);
|
||||
|
||||
if(map.hasOwnProperty("presentationID")) {
|
||||
service.removePresentation(map.presentationID);
|
||||
}
|
||||
}
|
||||
|
||||
private function handleConversionCompletedUpdateMessageCallback(msg:Object) : void {
|
||||
|
14
bigbluebutton-client/src/org/bigbluebutton/modules/present/ui/views/FileUploadWindow.mxml
Normal file → Executable file
14
bigbluebutton-client/src/org/bigbluebutton/modules/present/ui/views/FileUploadWindow.mxml
Normal file → Executable file
@ -39,15 +39,18 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
<mate:Listener type="{ConversionUnsupportedDocEvent.UNSUPPORTED_DOC}" method="handleUnsupportedDocument"/>
|
||||
<mate:Listener type="{ConversionPageCountError.PAGE_COUNT_ERROR}" method="handlePageCountFailed"/>
|
||||
<mate:Listener type="{ConversionPageCountMaxed.PAGE_COUNT_MAXED}" method="handlePageCountExceeded"/>
|
||||
<mate:Listener type="{RemovePresentationEvent.PRESENTATION_REMOVED_EVENT}" method="handlePresentationRemoved" />
|
||||
<mx:Script>
|
||||
<![CDATA[
|
||||
import com.asfusion.mate.events.Dispatcher;
|
||||
|
||||
import mx.collections.*;
|
||||
import mx.events.FlexEvent;
|
||||
import mx.events.ValidationResultEvent;
|
||||
import mx.managers.PopUpManager;
|
||||
import mx.utils.*;
|
||||
import mx.validators.*;
|
||||
import mx.validators.*;
|
||||
|
||||
import org.bigbluebutton.common.Images;
|
||||
import org.bigbluebutton.common.LogUtil;
|
||||
import org.bigbluebutton.modules.present.commands.UploadFileCommand;
|
||||
@ -280,6 +283,15 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
private function enableClosing():void {
|
||||
okCancelBtn.enabled = true;
|
||||
}
|
||||
|
||||
private function handlePresentationRemoved(e:RemovePresentationEvent):void {
|
||||
for(var i:int = 0; i < presentationNamesAC.length; i++) {
|
||||
if(e.presentationName == presentationNamesAC.getItemAt(i).id) {
|
||||
presentationNamesAC.removeItemAt(i);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
]]>
|
||||
|
||||
</mx:Script>
|
||||
|
10
bigbluebutton-client/src/org/bigbluebutton/modules/present/ui/views/PresentationWindow.mxml
Normal file → Executable file
10
bigbluebutton-client/src/org/bigbluebutton/modules/present/ui/views/PresentationWindow.mxml
Normal file → Executable file
@ -479,11 +479,17 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
private function clearPresentation(e:UploadEvent):void{
|
||||
slideView.visible = false;
|
||||
slideView.visible = false;
|
||||
slideView.slideLoader.source = null;
|
||||
slideView.setSelectedSlide(0);
|
||||
btnSlideNum.label = "";
|
||||
displaySlideNavigationControls(false);
|
||||
|
||||
backButton.visible = false;
|
||||
forwardButton.visible = false;
|
||||
zoomSlider.visible = false;
|
||||
btnSlideNum.visible = false;
|
||||
btnFitToWidth.visible = false;
|
||||
btnFitToPage.visible = false;
|
||||
|
||||
// Change the title of the window.
|
||||
currentPresentation = ResourceUtil.getInstance().getString('bbb.presentation.title');
|
||||
|
@ -190,8 +190,8 @@ package org.bigbluebutton.modules.present.ui.views.models
|
||||
}
|
||||
|
||||
public function onMove(deltaX:Number, deltaY:Number):void {
|
||||
_calcPageX += deltaX;
|
||||
_calcPageY += deltaY;
|
||||
_calcPageX += deltaX / MYSTERY_NUM;
|
||||
_calcPageY += deltaY / MYSTERY_NUM;
|
||||
|
||||
onResizeMove();
|
||||
calcViewedRegion();
|
||||
|
@ -20,7 +20,7 @@
|
||||
$Id: $
|
||||
-->
|
||||
|
||||
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml"
|
||||
<mx:Box xmlns:mx="http://www.adobe.com/2006/mxml"
|
||||
verticalScrollPolicy="off" horizontalScrollPolicy="off">
|
||||
<mx:Script>
|
||||
<![CDATA[
|
||||
@ -31,4 +31,4 @@
|
||||
fontWeight="{data.me ? 'bold' : 'normal'}"
|
||||
color="{data.me ? 0x003399 : 0x000000}"
|
||||
toolTip="{data.name}"/>
|
||||
</mx:HBox>
|
||||
</mx:Box>
|
||||
|
@ -227,13 +227,10 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
</mx:Script>
|
||||
<mx:Button id="muteUnmuteBtn" visible="false" click="onMuteUnmuteClicked(event)"
|
||||
width="{BUTTONS_SIZE}" height="{BUTTONS_SIZE}" styleName="videoUnmutedButtonStyle"/>
|
||||
<mx:Spacer width="2"/>
|
||||
<mx:Button id="switchPresenter" visible="false" click="onSwitchPresenterClicked(event)"
|
||||
width="{BUTTONS_SIZE}" height="{BUTTONS_SIZE}" styleName="videoSwitchPresenterButtonStyle"/>
|
||||
<mx:Spacer width="2"/>
|
||||
width="{BUTTONS_SIZE}" height="{BUTTONS_SIZE}" styleName="videoSwitchPresenterButtonStyle" paddingTop="2"/>
|
||||
<mx:Button id="ejectUserBtn" visible="false" click="onKickUserClicked(event)"
|
||||
width="{BUTTONS_SIZE}" height="{BUTTONS_SIZE}" styleName="videoEjectUserButtonStyle"/>
|
||||
<mx:Spacer width="2"/>
|
||||
width="{BUTTONS_SIZE}" height="{BUTTONS_SIZE}" styleName="videoEjectUserButtonStyle" paddingTop="2"/>
|
||||
<mx:Button id="privateChatBtn" click="onPrivateChatClicked(event)"
|
||||
width="{BUTTONS_SIZE}" height="{BUTTONS_SIZE}" styleName="videoPrivateChatButtonStyle"/>
|
||||
width="{BUTTONS_SIZE}" height="{BUTTONS_SIZE}" styleName="videoPrivateChatButtonStyle" paddingTop="2"/>
|
||||
</mx:HBox>
|
||||
|
@ -348,8 +348,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
<wbBtns:PanZoomButton id="panzoomBtn"
|
||||
tabIndex="{baseIndex}"
|
||||
visible="{showWhiteboardToolbar}"/>
|
||||
<mx:Spacer height="10" visible="{showWhiteboardToolbar}"/>
|
||||
<wbBtns:ScribbleButton id="scribbleBtn"
|
||||
<wbBtns:ScribbleButton id="scribbleBtn" paddingLeft="{showWhiteboardToolbar ? 10 : 0}"
|
||||
tabIndex="{baseIndex+1}"
|
||||
visible="{showWhiteboardToolbar}"/>
|
||||
<wbBtns:RectangleButton id="rectangleBtn"
|
||||
@ -368,15 +367,15 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
tabIndex="{baseIndex+6}"
|
||||
visible="{showWhiteboardToolbar}"/>
|
||||
|
||||
<mx:Spacer height="5" visible="{showWhiteboardToolbar}"/>
|
||||
<wbBtns:ClearButton id="clearBtn"
|
||||
tabIndex="{baseIndex+7}"
|
||||
visible="{showWhiteboardToolbar}"/>
|
||||
visible="{showWhiteboardToolbar}"
|
||||
paddingLeft="{showWhiteboardToolbar ? 5 : 0}"/>
|
||||
<wbBtns:UndoButton id="undoBtn"
|
||||
tabIndex="{baseIndex+8}"
|
||||
visible="{showWhiteboardToolbar}"/>
|
||||
visible="{showWhiteboardToolbar}"
|
||||
paddingRight="{showWhiteboardToolbar ? 5 : 0}"/>
|
||||
|
||||
<mx:Spacer height="5" visible="{showWhiteboardToolbar}"/>
|
||||
|
||||
<!--
|
||||
Properties that were removed from original color picker:
|
||||
|
Loading…
Reference in New Issue
Block a user