From f32ede3a5b04b5472896044bf467c18478ca24ea Mon Sep 17 00:00:00 2001 From: Richard Alam Date: Mon, 21 Aug 2017 11:42:57 -0700 Subject: [PATCH] - move public chat save, copy, and clean into chat options box for accessibility --- .../locale/en_US/bbbResources.properties | 2 +- .../modules/chat/views/AddChatTabBox.mxml | 69 ++++++++++++++++++- .../modules/chat/views/ChatBox.mxml | 14 ++-- .../modules/chat/views/ChatView.mxml | 8 ++- 4 files changed, 81 insertions(+), 12 deletions(-) diff --git a/bigbluebutton-client/locale/en_US/bbbResources.properties b/bigbluebutton-client/locale/en_US/bbbResources.properties index d79383a91f..0277f19e8d 100755 --- a/bigbluebutton-client/locale/en_US/bbbResources.properties +++ b/bigbluebutton-client/locale/en_US/bbbResources.properties @@ -599,7 +599,7 @@ bbb.accessibility.chat.chatBox.navigatedLatest = You have navigated to the lates bbb.accessibility.chat.chatBox.navigatedLatestRead = You have navigated to the most recent message you have read. bbb.accessibility.chat.chatwindow.input = Chat input bbb.accessibility.chat.chatwindow.audibleChatNotification = Audible Chat Notification - +bbb.accessibility.chat.chatwindow.publicChatOptions = Public Chat Options bbb.accessibility.chat.initialDescription = Please use the arrow keys to navigate through chat messages. bbb.accessibility.notes.notesview.input = Notes input diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/AddChatTabBox.mxml b/bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/AddChatTabBox.mxml index 90b04d61eb..7af371e4f2 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/AddChatTabBox.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/AddChatTabBox.mxml @@ -39,6 +39,8 @@ with BigBlueButton; if not, see . import com.asfusion.mate.events.Dispatcher; import mx.collections.ArrayCollection; + import mx.controls.Alert; + import mx.events.CloseEvent; import org.as3commons.logging.api.ILogger; import org.as3commons.logging.api.getClassLogger; @@ -53,6 +55,7 @@ with BigBlueButton; if not, see . import org.bigbluebutton.main.model.users.events.ChangeMyRole; import org.bigbluebutton.modules.chat.events.ChatNoiseEnabledEvent; import org.bigbluebutton.modules.chat.events.ChatOptionsEvent; + import org.bigbluebutton.modules.chat.events.ChatToolbarButtonEvent; import org.bigbluebutton.modules.chat.model.ChatOptions; import org.bigbluebutton.util.i18n.ResourceUtil; @@ -63,7 +66,10 @@ with BigBlueButton; if not, see . [Bindable] private var fontSizes:Array = ['8', '10', '12', '14', '16', '18']; [Bindable] public var chatOptions:ChatOptions; - + [Bindable] private var clrBtnVisible:Boolean = false; + + private var globalDispatcher:Dispatcher = new Dispatcher(); + private var handler: ChatWindowEventHandler = new ChatWindowEventHandler(); private function handleUserLeftEvent(event: UserLeftEvent): void { @@ -76,6 +82,8 @@ with BigBlueButton; if not, see . } private function onCreationComplete():void{ + clrBtnVisible = UsersUtil.amIModerator(); + handler.populateAllUsers() users = handler.users; chatOptions = Options.getOptions(ChatOptions) as ChatOptions; @@ -151,6 +159,7 @@ with BigBlueButton; if not, see . } private function refreshRole(e:ChangeMyRole):void { + clearBtn.visible = clearBtn.enabled = clearBtn.includeInLayout = clrBtnVisible = UsersUtil.amIModerator(); refreshListStatus(); } @@ -161,6 +170,28 @@ with BigBlueButton; if not, see . usersList.enabled = ! LiveMeeting.inst().me.disableMyPrivateChat; } + public function sendSaveEvent():void{ + var saveEvent:ChatToolbarButtonEvent = new ChatToolbarButtonEvent(ChatToolbarButtonEvent.SAVE_CHAT_TOOLBAR_EVENT); + globalDispatcher.dispatchEvent(saveEvent); + } + + public function sendCopyEvent():void{ + var copyEvent:ChatToolbarButtonEvent = new ChatToolbarButtonEvent(ChatToolbarButtonEvent.COPY_CHAT_TOOLBAR_EVENT); + globalDispatcher.dispatchEvent(copyEvent); + } + + public function sendClearEvent():void{ + var clearChatHistoryAlert:Alert = Alert.show(ResourceUtil.getInstance().getString('bbb.chat.clearBtn.alert.text'), + ResourceUtil.getInstance().getString('bbb.chat.clearBtn.alert.title'), + Alert.YES | Alert.NO, null, handleClearChatHistoryAlert, null, Alert.YES); + } + + private function handleClearChatHistoryAlert(e:CloseEvent):void { + if (e.detail == Alert.YES) { + var clearEvent:ChatToolbarButtonEvent = new ChatToolbarButtonEvent(ChatToolbarButtonEvent.CLEAR_PUBLIC_CHAT_TOOLBAR_EVENT); + globalDispatcher.dispatchEvent(clearEvent); + } + } ]]> @@ -186,7 +217,41 @@ with BigBlueButton; if not, see . selectedIndex="1" toolTip="{ResourceUtil.getInstance().getString('bbb.chat.cmbFontSize.toolTip')}" /> - + + + + + + + + + + diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/ChatBox.mxml b/bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/ChatBox.mxml index b27f643a5f..105eea4f14 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/ChatBox.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/ChatBox.mxml @@ -159,7 +159,7 @@ with BigBlueButton; if not, see . LOGGER.debug(" onCreationComplete. Apply lock settings"); applyLockSettings(); - chatToolbar.registerListeners(chatMessagesList); +// chatToolbar.registerListeners(chatMessagesList); chatMessagesList.addEventListener(ChatEvent.RESIZE_CHAT_TOOLBAR, adjustToolbarWidthAccordingToScrollBar); } @@ -611,12 +611,12 @@ with BigBlueButton; if not, see . const paddingHeight:int = 5; const paddingWidth:int = 5; - chatToolbar.x = (chatMessagesCanvas.width - chatToolbar.width) - 20; - chatToolbar.y = 10; +// chatToolbar.x = (chatMessagesCanvas.width - chatToolbar.width) - 20; +// chatToolbar.y = 10; - if (!publicChat) { - chatToolbar.publicChat = false; - } +// if (!publicChat) { +// chatToolbar.publicChat = false; +// } } ]]> @@ -633,7 +633,7 @@ with BigBlueButton; if not, see . dataProvider="{chatMessages.messages}" styleName="chatMessageListStyle" accessibilityName="{ResourceUtil.getInstance().getString('bbb.chat.messageList')}" /> - + . return chatBox; } + private function getPublicChatBox():ChatBox { + return publicBox; + } + private function dispatchSaveChatEvent(e:Event):void { - var chatBox:ChatBox = getVisibleChatBox(); + var chatBox:ChatBox = getPublicChatBox(); var saveEvent:ChatSaveEvent = new ChatSaveEvent(ChatSaveEvent.SAVE_CHAT_EVENT); if (chatBox.chatWithUsername == null || chatBox.chatWithUsername == "") { @@ -135,7 +139,7 @@ with BigBlueButton; if not, see . } private function dispatchCopyChatEvent(e:Event):void { - var chatBox:ChatBox = getVisibleChatBox(); + var chatBox:ChatBox = getPublicChatBox(); var copyEvent:ChatCopyEvent = new ChatCopyEvent(ChatCopyEvent.COPY_CHAT_EVENT); copyEvent.chatMessages = chatBox.getChatMessages();