From b3602126124e5e3f4f0817c39ced5ffd37ec5a31 Mon Sep 17 00:00:00 2001 From: Ghazi Triki Date: Fri, 21 Aug 2015 11:09:45 +0100 Subject: [PATCH 1/6] Custom polling window simplified. --- .../locale/en_US/bbbResources.properties | 1 + .../polling/views/PollChoicesModal.mxml | 28 ++++--------------- .../present/ui/views/PresentationWindow.mxml | 2 +- 3 files changed, 7 insertions(+), 24 deletions(-) diff --git a/bigbluebutton-client/locale/en_US/bbbResources.properties b/bigbluebutton-client/locale/en_US/bbbResources.properties index 5726f99686..f0592da75c 100755 --- a/bigbluebutton-client/locale/en_US/bbbResources.properties +++ b/bigbluebutton-client/locale/en_US/bbbResources.properties @@ -503,6 +503,7 @@ bbb.polling.startButton.label = Start Poll bbb.polling.publishButton.label = Publish bbb.polling.closeButton.label = Close bbb.polling.pollModal.title = Live Poll Results +bbb.polling.customChoices.title = Enter Polling Choices bbb.polling.respondersLabel.novotes = Waiting for responses bbb.polling.respondersLabel.text = {0} Users Responded bbb.polling.respondersLabel.finished = Done diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/polling/views/PollChoicesModal.mxml b/bigbluebutton-client/src/org/bigbluebutton/modules/polling/views/PollChoicesModal.mxml index bd726873bb..1fc81ff939 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/polling/views/PollChoicesModal.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/polling/views/PollChoicesModal.mxml @@ -21,8 +21,8 @@ with BigBlueButton; if not, see . + width="350" layout="vertical" + show="{focusManager.setFocus(choiceFirst)}"> . + text="{ResourceUtil.getInstance().getString('bbb.polling.customChoices.title')}" width="100%"/> - - - - + - - - - - - - - - - - - - - - - + diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/present/ui/views/PresentationWindow.mxml b/bigbluebutton-client/src/org/bigbluebutton/modules/present/ui/views/PresentationWindow.mxml index 572c301536..7d6d523661 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/present/ui/views/PresentationWindow.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/present/ui/views/PresentationWindow.mxml @@ -623,7 +623,7 @@ with BigBlueButton; if not, see . constructedLabel += "/" + ResourceUtil.getInstance().getString("bbb.polling.answer."+String.fromCharCode(65+i)); pollMenuData.push({label: constructedLabel}); } - pollMenuData.push({label: "Custom"}); + pollMenuData.push({label: "Custom Poll..."}); } private function onPollStartButtonClicked():void { From 2240ff0cd3a44e6f4a262276ca0f913dbf11290b Mon Sep 17 00:00:00 2001 From: Chad Pilkey Date: Mon, 24 Aug 2015 14:31:28 -0400 Subject: [PATCH 2/6] added a checkbox for audible chat notifications --- .../branding/default/style/css/BBBDefault.css | 8 ++ .../chat/events/ChatNoiseEnabledEvent.as | 15 ++++ .../modules/chat/views/AddChatTabBox.mxml | 43 +++++----- .../modules/chat/views/ChatView.mxml | 79 +++++++++++-------- 4 files changed, 91 insertions(+), 54 deletions(-) create mode 100755 bigbluebutton-client/src/org/bigbluebutton/modules/chat/events/ChatNoiseEnabledEvent.as mode change 100644 => 100755 bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/AddChatTabBox.mxml mode change 100644 => 100755 bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/ChatView.mxml diff --git a/bigbluebutton-client/branding/default/style/css/BBBDefault.css b/bigbluebutton-client/branding/default/style/css/BBBDefault.css index 2b9bc55fd5..b3fb0e527f 100755 --- a/bigbluebutton-client/branding/default/style/css/BBBDefault.css +++ b/bigbluebutton-client/branding/default/style/css/BBBDefault.css @@ -883,4 +883,12 @@ PollChoicesModal { fontSize: 14; paddingLeft: 16; paddingRight: 16; +} + +.chatOptionsLabel { + fontSize: 12; + color: #000000; + textRollOverColor: #000000; + textSelectedColor: #000000; + fontFamily: Arial; } diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/chat/events/ChatNoiseEnabledEvent.as b/bigbluebutton-client/src/org/bigbluebutton/modules/chat/events/ChatNoiseEnabledEvent.as new file mode 100755 index 0000000000..43da5e5b10 --- /dev/null +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/chat/events/ChatNoiseEnabledEvent.as @@ -0,0 +1,15 @@ +package org.bigbluebutton.modules.chat.events { + import flash.events.Event; + + public class ChatNoiseEnabledEvent extends Event { + public static const CHAT_NOISE_CHANGE_EVENT:String = "chat noise change event"; + + public var enabled:Boolean = false; + + public function ChatNoiseEnabledEvent(enabled:Boolean) { + super(CHAT_NOISE_CHANGE_EVENT, true); + + this.enabled = enabled; + } + } +} \ No newline at end of file diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/AddChatTabBox.mxml b/bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/AddChatTabBox.mxml old mode 100644 new mode 100755 index 9576101898..13268d5e16 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/AddChatTabBox.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/AddChatTabBox.mxml @@ -43,6 +43,7 @@ with BigBlueButton; if not, see . import org.bigbluebutton.core.managers.UserManager; import org.bigbluebutton.main.model.users.BBBUser; import org.bigbluebutton.main.model.users.Conference; + import org.bigbluebutton.modules.chat.events.ChatNoiseEnabledEvent; import org.bigbluebutton.modules.chat.events.ChatOptionsEvent; import org.bigbluebutton.modules.chat.model.ChatOptions; import org.bigbluebutton.util.i18n.ResourceUtil; @@ -63,6 +64,7 @@ with BigBlueButton; if not, see . } else { LOGGER.debug("fontSize in config.xml not found: {0}", [chatOptions.fontSize]); } + chatNoiseCheckBox.visible = Accessibility.active; } public function accessibleClick(event:KeyboardEvent):void{ @@ -78,6 +80,11 @@ with BigBlueButton; if not, see . dispatchEvent(e); } + private function changeChatNoise():void { + LOGGER.debug("changing chat noise, active=" + chatNoiseCheckBox.selected); + dispatchEvent(new ChatNoiseEnabledEvent(chatNoiseCheckBox.selected)); + } + protected function openPrivateChat(event:Event):void{ if (usersList.selectedIndex == -1) return; @@ -117,23 +124,21 @@ with BigBlueButton; if not, see . ]]> - - - - - - - - - - - - - - - + + + + + + + + + + diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/ChatView.mxml b/bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/ChatView.mxml old mode 100644 new mode 100755 index 72d40ede1d..75f86197d6 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/ChatView.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/ChatView.mxml @@ -35,26 +35,27 @@ with BigBlueButton; if not, see . . private static const PUBLIC_TAB_NEW:String = ResourceUtil.getInstance().getString("bbb.accessibility.chat.chatView.publicTabNew"); private var publicWaiting:Boolean = false; private var publicFocus:Boolean = false; - private var noticeLabel:String; + private var noticeLabel:String; + private var chatNoiseEnabled:Boolean = true; [Embed(source="../sounds/notice.mp3")] private var noticeSoundClass:Class; @@ -85,19 +87,20 @@ with BigBlueButton; if not, see . } - private function onCreationComplete():void{ + private function onCreationComplete():void{ openChatBoxFor(PUBLIC_CHAT_USERID, true); - makePublicChatUncloseable(); - - if (chatOptions.privateEnabled) { - createAddTabBox(); - makeAddPrivateChatUncloseable(); - } + makePublicChatUncloseable(); + + if (chatOptions.privateEnabled) { + createAddTabBox(); + makeAddPrivateChatUncloseable(); + } ResourceUtil.getInstance().addEventListener(Event.CHANGE, localeChanged); // Listen for locale changing addEventListener(SuperTabEvent.TAB_CLOSE, onUserClosedTab); - + addEventListener(ChatNoiseEnabledEvent.CHAT_NOISE_CHANGE_EVENT, onChatNoiseChangeEvent); + systemManager.stage.addEventListener(Event.MOUSE_LEAVE, mouseLeave); systemManager.stage.addEventListener(Event.ACTIVATE, activate); systemManager.stage.addEventListener(Event.DEACTIVATE, deactivate); @@ -293,9 +296,7 @@ with BigBlueButton; if not, see . // Activates an audio alert for screen-reader users on public message reception private function publicNotification():void { publicWaiting = true; - if (Accessibility.active){ - noticeSound.play(); - } + playSound(); chatTabs.getChildByName(PUBLIC_CHAT_USERID).addEventListener(FocusEvent.FOCUS_IN, publicChatFocus); chatTabs.getChildByName(PUBLIC_CHAT_USERID).addEventListener(FocusEvent.FOCUS_OUT, publicChatUnfocus); } @@ -303,12 +304,20 @@ with BigBlueButton; if not, see . // Activates an audio alert for screen-reader users on private message reception private function privateNotification(event:PrivateChatMessageEvent):void{ if (! UsersUtil.isMe(event.message.fromUserID)) { - if (Accessibility.active){ - noticeSound.play(); - } + playSound(); } } + private function playSound():void { + if (Accessibility.active && chatNoiseEnabled){ + noticeSound.play(); + } + } + + private function onChatNoiseChangeEvent(e:ChatNoiseEnabledEvent):void { + chatNoiseEnabled = e.enabled; + } + public function publicChatFocus(event:FocusEvent):void{ publicFocus = true; publicWaiting = false; From 0994e90d6daf75b7f2ff7a71dc2fd23a09303406 Mon Sep 17 00:00:00 2001 From: Chad Pilkey Date: Wed, 26 Aug 2015 16:50:59 -0400 Subject: [PATCH 3/6] increased the audio dialog font size --- bigbluebutton-client/branding/default/style/css/BBBDefault.css | 2 +- .../src/org/bigbluebutton/main/views/FlashMicSettings.mxml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) mode change 100644 => 100755 bigbluebutton-client/src/org/bigbluebutton/main/views/FlashMicSettings.mxml diff --git a/bigbluebutton-client/branding/default/style/css/BBBDefault.css b/bigbluebutton-client/branding/default/style/css/BBBDefault.css index b3fb0e527f..1f08c11c1c 100755 --- a/bigbluebutton-client/branding/default/style/css/BBBDefault.css +++ b/bigbluebutton-client/branding/default/style/css/BBBDefault.css @@ -529,7 +529,7 @@ TitleWindow { .micSettingsWindowHearFromHeadsetLabelStyle, .micSettingsWindowSpeakIntoMicLabelStyle, .micSettingsWindowMicNameLabelStyle, .webcamPermissionSettingsTextStyle { fontFamily: Arial; - fontSize: 12; + fontSize: 14; } .micSettingsWindowPlaySoundButtonStyle, .micSettingsWindowChangeMicButtonStyle { diff --git a/bigbluebutton-client/src/org/bigbluebutton/main/views/FlashMicSettings.mxml b/bigbluebutton-client/src/org/bigbluebutton/main/views/FlashMicSettings.mxml old mode 100644 new mode 100755 index a37d6d7e1f..9038640c4b --- a/bigbluebutton-client/src/org/bigbluebutton/main/views/FlashMicSettings.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/main/views/FlashMicSettings.mxml @@ -21,7 +21,7 @@ with BigBlueButton; if not, see . Date: Wed, 26 Aug 2015 16:55:52 -0400 Subject: [PATCH 4/6] move the chrome mic permission window down 50px --- .../src/org/bigbluebutton/main/views/MainApplicationShell.mxml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) mode change 100644 => 100755 bigbluebutton-client/src/org/bigbluebutton/main/views/MainApplicationShell.mxml diff --git a/bigbluebutton-client/src/org/bigbluebutton/main/views/MainApplicationShell.mxml b/bigbluebutton-client/src/org/bigbluebutton/main/views/MainApplicationShell.mxml old mode 100644 new mode 100755 index 2693b6ece9..6c99d157e6 --- a/bigbluebutton-client/src/org/bigbluebutton/main/views/MainApplicationShell.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/main/views/MainApplicationShell.mxml @@ -457,7 +457,7 @@ with BigBlueButton; if not, see . var chromeBrowser:ChromeMicPermissionImage = PopUpManager.createPopUp(mdiCanvas, ChromeMicPermissionImage, true) as ChromeMicPermissionImage; chromeBrowser.addEventListener(FlexEvent.CREATION_COMPLETE, function(e:Event):void { chromeBrowser.x = 20; - chromeBrowser.y = 80; + chromeBrowser.y = 130; }); } } From cd58b764a4a105df722dcca0b8b7ed90ca81d220 Mon Sep 17 00:00:00 2001 From: Chad Pilkey Date: Wed, 26 Aug 2015 16:56:18 -0400 Subject: [PATCH 5/6] clean up the presentation sizing on page load --- .../modules/present/ui/views/PresentationWindow.mxml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/present/ui/views/PresentationWindow.mxml b/bigbluebutton-client/src/org/bigbluebutton/modules/present/ui/views/PresentationWindow.mxml index 7d6d523661..47640819d5 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/present/ui/views/PresentationWindow.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/present/ui/views/PresentationWindow.mxml @@ -798,7 +798,7 @@ with BigBlueButton; if not, see . mouseUp="mouseDown = false" verticalScrollPolicy="off" horizontalScrollPolicy="off"/> - + @@ -829,6 +829,6 @@ with BigBlueButton; if not, see . - + From 760b7b306ab4e5ffaacc76cab66191fde0728a06 Mon Sep 17 00:00:00 2001 From: Chad Pilkey Date: Wed, 26 Aug 2015 16:56:52 -0400 Subject: [PATCH 6/6] add in an ICE connection timeout set to 60s --- .../locale/en_US/bbbResources.properties | 1 + .../resources/prod/lib/bbb_webrtc_bridge_sip.js | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/bigbluebutton-client/locale/en_US/bbbResources.properties b/bigbluebutton-client/locale/en_US/bbbResources.properties index f0592da75c..bc98fe2771 100755 --- a/bigbluebutton-client/locale/en_US/bbbResources.properties +++ b/bigbluebutton-client/locale/en_US/bbbResources.properties @@ -75,6 +75,7 @@ bbb.webrtcWarning.failedError.1006 = Error 1006: Call timed out bbb.webrtcWarning.failedError.1007 = Error 1007: ICE negotiation failed bbb.webrtcWarning.failedError.1008 = Error 1008: Transfer failed bbb.webrtcWarning.failedError.1009 = Error 1009: Could not fetch STUN/TURN server information +bbb.webrtcWarning.failedError.1010 = Error 1010: ICE negotiation timeout bbb.webrtcWarning.failedError.unknown = Error {0}: Unknown error code bbb.webrtcWarning.failedError.mediamissing = Could not get your microphone for a WebRTC call bbb.webrtcWarning.failedError.endedunexpectedly = The WebRTC echo test ended unexpectedly diff --git a/bigbluebutton-client/resources/prod/lib/bbb_webrtc_bridge_sip.js b/bigbluebutton-client/resources/prod/lib/bbb_webrtc_bridge_sip.js index 782e3c5f9f..884026f2e4 100755 --- a/bigbluebutton-client/resources/prod/lib/bbb_webrtc_bridge_sip.js +++ b/bigbluebutton-client/resources/prod/lib/bbb_webrtc_bridge_sip.js @@ -1,5 +1,5 @@ -var userID, callerIdName, conferenceVoiceBridge, userAgent=null, userMicMedia, userWebcamMedia, currentSession=null, callTimeout, callActive, callICEConnected, callFailCounter, callPurposefullyEnded, uaConnected, transferTimeout; +var userID, callerIdName, conferenceVoiceBridge, userAgent=null, userMicMedia, userWebcamMedia, currentSession=null, callTimeout, callActive, callICEConnected, iceConnectedTimeout, callFailCounter, callPurposefullyEnded, uaConnected, transferTimeout; var inEchoTest = true; function webRTCCallback(message) { @@ -419,6 +419,17 @@ function make_call(username, voiceBridge, server, callback, recall, isListenOnly callback({'status':'started'}); } else { callback({'status':'waitingforice'}); + console.log('Waiting for ICE negotiation'); + iceConnectedTimeout = setTimeout(function() { + console.log('60 seconds without ICE finishing'); + callback({'status':'failed', 'errorcode': 1010}); // Failure on call + currentSession = null; + if (userAgent != null) { + var userAgentTemp = userAgent; + userAgent = null; + userAgentTemp.stop(); + } + }, 60000); } clearTimeout(callTimeout); }); @@ -426,6 +437,7 @@ function make_call(username, voiceBridge, server, callback, recall, isListenOnly console.log('received ice negotiation failed'); callback({'status':'failed', 'errorcode': 1007}); // Failure on call currentSession = null; + clearTimeout(iceConnectedTimeout); if (userAgent != null) { var userAgentTemp = userAgent; userAgent = null; @@ -441,6 +453,7 @@ function make_call(username, voiceBridge, server, callback, recall, isListenOnly console.log('Received ICE status changed to connected'); if (callICEConnected === false) { callICEConnected = true; + clearTimeout(iceConnectedTimeout); if (callActive === true) { callback({'status':'started'}); } @@ -452,6 +465,7 @@ function make_call(username, voiceBridge, server, callback, recall, isListenOnly console.log('Received ICE status changed to completed'); if (callICEConnected === false) { callICEConnected = true; + clearTimeout(iceConnectedTimeout); if (callActive === true) { callback({'status':'started'}); }