Merge branch 'riadvice-2x-client-theme' into bbb-2x-mconf

This commit is contained in:
Richard Alam 2017-08-03 11:50:10 -07:00
commit 30503d9c5d
13 changed files with 371 additions and 198 deletions

View File

@ -1,5 +1,6 @@
@namespace mx "library://ns.adobe.com/flex/mx";
@namespace flexlib "http://code.google.com/p/flexlib/";
@namespace flexlibcontainers "flexlib.mdi.containers.*";
@namespace users "org.bigbluebutton.modules.users.views.*";
@namespace poll "org.bigbluebutton.modules.polling.views.*";
@namespace whiteboard "org.bigbluebutton.modules.whiteboard.views.*";
@ -42,8 +43,8 @@ global {
selectionColor : #1070D7;
textSelectedColor : #FFFFFF;
focusColor : #1070D7;
rollOverColor : #DBE4ED;
textRollOverColor : #1070D7;
rollOverColor : #0A5EAC;
textRollOverColor : #FFFFFF;
}
.defaultShellStyle {
@ -394,6 +395,10 @@ mx|Button {
//------------------------------
*/
users|BreakoutRoomSettings {
headerHeight : 0;
}
users|RoomActionsRenderer {
paddingLeft : 5;
paddingRight : 5;
@ -708,7 +713,7 @@ flexlib|MDIWindow {
/*None of the following properties are overridden by the MDIWindow class*/
backgroundSize : "100%";
headerHeight : 40;
headerHeight : 30;
cornerRadius : 4;
dropShadowEnabled : false;
@ -734,6 +739,11 @@ flexlib|MDIWindow {
showHeaderSeparator : true;
}
flexlibcontainers|MDIWindowControlsContainer {
paddingRight : 12;
horizontalGap : 12;
}
.mdiMaximizeButtonStyle {
upSkin : Embed(source="assets/swf/v2_skin.swf", symbol="MDI_Button_Maximize_Up");
overSkin : Embed(source="assets/swf/v2_skin.swf", symbol="MDI_Button_Maximize_Over");
@ -867,7 +877,8 @@ mx|Panel {
*/
presentation|UploadedPresentationRenderer {
iconSave : Embed(source="assets/swf/v2_skin.swf", symbol="Icon_Save_Disabled");
iconSave : Embed(source="assets/swf/v2_skin.swf", symbol="Icon_Save_File");
iconSaveWhite : Embed(source="assets/swf/v2_skin.swf", symbol="Icon_Save_File_White");
}
.presentationWindowControlsStyle {
@ -943,19 +954,31 @@ presentation|UploadedPresentationRenderer {
color : #2A2D33;
}
presentation|FileUploadWindow {
iconGo : Embed(source="assets/swf/v2_skin.swf", symbol="Icon_Go");
titleStyleName : "presentationFileUploadWindowTitleStyle";
.uploadFileButton {
fillColorUp : #1070D7;
fillColorOver : #0A5EAC;
fillColorDown : #1070D7;
fillColorDisabled : #F0F2F6;
color : #FFFFFF;
textRollOverColor : #FFFFFF;
textSelectedColor : #FFFFFF;
borderStyle : none;
borderThickness : 0;
}
.presentationFileUploadWindowTitleStyle, .presentationUploadTitleStyle {
fontSize : 18;
fontWeight : bold;
.uploadFileButton {
icon : Embed(source="assets/swf/v2_skin.swf", symbol="Icon_Go");
disabledIcon : Embed(source="assets/swf/v2_skin.swf", symbol="Icon_Go_Disabled");
}
.presentationNamesLabelStyle {
fontSize : 14;
fontWeight : bold;
.presentationNameLabelOver {
color : #FFFFFF;
fontSize : 14;
}
.presentationNameLabelUp {
color : #05172A;
fontSize : 14;
}
.presentationUploadChooseFileButtonStyle {
@ -966,6 +989,15 @@ presentation|FileUploadWindow {
color : #2A2D33;
}
.presentationDownloadShowButtonStyle {
/* Normal state */
borderStyle : none;
borderThickness : 0;
color : #1070D7;
textDecoration : underline;
}
.presentationUploadFileFormatHintBoxStyle, .audioBroswerHintBoxStyle {
backgroundColor : #CDD4DB;
dropShadowEnabled : false;
@ -1087,9 +1119,9 @@ mx|TitleWindow {
}
.titleWindowStyle {
color : #05172A;
fontSize : 24;
textAlign :center;
color : #05172A;
fontSize : 24;
textAlign : center;
}
/*
@ -1118,11 +1150,13 @@ mx|ToolTip {
*/
users|UsersWindow {
iconAudioMuted : Embed(source="assets/swf/v2_skin.swf", symbol="Icon_User_Audio_Muted");
iconAudio : Embed(source="assets/swf/v2_skin.swf", symbol="Icon_User_Audio");
iconLock : Embed(source="assets/swf/v2_skin.swf", symbol="Icon_User_Lock");
iconMood : Embed(source="assets/swf/v2_skin.swf", symbol="Icon_User_Mood_Happy");
iconSettings : Embed(source="assets/swf/v2_skin.swf", symbol="Icon_User_Settings");
iconAudioMuted : Embed(source="assets/swf/v2_skin.swf", symbol="Icon_User_Audio_Muted");
iconAudio : Embed(source="assets/swf/v2_skin.swf", symbol="Icon_User_Audio");
iconLock : Embed(source="assets/swf/v2_skin.swf", symbol="Icon_User_Lock");
iconMood : Embed(source="assets/swf/v2_skin.swf", symbol="Icon_User_Mood_Happy");
iconSettings : Embed(source="assets/swf/v2_skin.swf", symbol="Icon_User_Settings");
iconClearStatus : Embed(source="assets/swf/v2_skin.swf", symbol="Icon_User_ClearStatus");
iconRooms : Embed(source="assets/swf/v2_skin.swf", symbol="Icon_User_Rooms");
}
users|StatusItemRenderer {

View File

@ -0,0 +1,37 @@
/**
* BigBlueButton open source conferencing system - http://www.bigbluebutton.org/
*
* Copyright (c) 2010 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 2.1 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.modules.present.events {
import flash.events.Event;
public class PresentationRollEvent extends Event {
public static const PRESENTATION_ROLL_OVER:String = "PresentationRollOver";
public static const PRESENTATION_ROLL_OUT:String = "PresentationRollOut";
public static const PRESENTATION_SELECT:String = "PresentationSelect";
public var presentationId:String;
public function PresentationRollEvent(type:String, p:String) {
super(type, true, false);
presentationId = p;
}
}
}

View File

@ -1,30 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<mx:HBox xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:fx="http://ns.adobe.com/mxml/2009" width="90%" verticalAlign="middle">
<fx:Script>
<![CDATA[
import com.asfusion.mate.events.Dispatcher;
import org.bigbluebutton.util.i18n.ResourceUtil;
import org.bigbluebutton.modules.present.events.DownloadEvent;
<mx:HBox xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:fx="http://ns.adobe.com/mxml/2009"
width="90%"
verticalAlign="middle">
<fx:Script>
<![CDATA[
import com.asfusion.mate.events.Dispatcher;
import org.bigbluebutton.util.i18n.ResourceUtil;
import org.bigbluebutton.modules.present.events.DownloadEvent;
private var globalDispatch:Dispatcher = new Dispatcher();
private var globalDispatch:Dispatcher = new Dispatcher();
private function downloadPresentation():void {
var downloadEvent:DownloadEvent = new DownloadEvent(DownloadEvent.DOWNLOAD_PRESENTATION);
downloadEvent.fileNameToDownload = data.id as String;
globalDispatch.dispatchEvent(downloadEvent);
}
]]>
</fx:Script>
<mx:Label id="presentationNameLabel"
width="{this.width-downloadBtn.width-30}"
text="{data.name as String}"
toolTip="{data.name as String}"
styleName="presentationNameLabelStyle"
truncateToFit="true"/>
<mx:Button id="downloadBtn"
label="{ResourceUtil.getInstance().getString('bbb.filedownload.downloadBtn')}"
toolTip="{ResourceUtil.getInstance().getString('bbb.filedownload.downloadBtn')}"
styleName="presentationUploadShowButtonStyle"
click="downloadPresentation()"
enabled="{data.downloadable as Boolean}"/>
private function downloadPresentation():void {
var downloadEvent:DownloadEvent = new DownloadEvent(DownloadEvent.DOWNLOAD_PRESENTATION);
downloadEvent.fileNameToDownload = data.id as String;
globalDispatch.dispatchEvent(downloadEvent);
}
]]>
</fx:Script>
<mx:Label id="presentationNameLabel"
width="{this.width-downloadBtn.width-30}"
text="{data.name as String}"
toolTip="{data.name as String}"
truncateToFit="true" />
<mx:Button id="downloadBtn"
label="{ResourceUtil.getInstance().getString('bbb.filedownload.downloadBtn')}"
toolTip="{ResourceUtil.getInstance().getString('bbb.filedownload.downloadBtn')}"
styleName="presentationDownloadShowButtonStyle"
click="downloadPresentation()"
buttonMode="true"
enabled="{data.downloadable as Boolean}" />
</mx:HBox>

View File

@ -21,64 +21,59 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
-->
<mx:TitleWindow xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:mate="http://mate.asfusion.com/"
layout="absolute"
width="580"
styleName="presentationFileUploadWindowStyle"
initialize="initData();">
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:mate="http://mate.asfusion.com/"
layout="absolute"
width="580"
height="410"
showCloseButton="true"
close="{globalDispatch.dispatchEvent(new DownloadEvent(DownloadEvent.CLOSE_DOWNLOAD_WINDOW))}"
initialize="initData();">
<fx:Declarations>
<mate:Dispatcher id="globalDispatch"/>
<mate:Dispatcher id="globalDispatch" />
</fx:Declarations>
<fx:Script>
<![CDATA[
import com.asfusion.mate.events.Dispatcher;
import mx.collections.ArrayCollection;
import org.bigbluebutton.modules.present.events.DownloadEvent;
import org.bigbluebutton.modules.present.model.PresentationModel;
import org.bigbluebutton.util.i18n.ResourceUtil;
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
[Bindable] private var downloadablePresentations:ArrayCollection;
import org.bigbluebutton.modules.present.events.DownloadEvent;
import org.bigbluebutton.modules.present.model.PresentationModel;
import org.bigbluebutton.util.i18n.ResourceUtil;
override public function move(x:Number, y:Number):void
{
return;
}
[Bindable]
private var downloadablePresentations:ArrayCollection;
private function initData():void {
downloadablePresentations = PresentationModel.getInstance().getDownloadablePresentations();
}
]]>
override public function move(x:Number, y:Number):void {
return;
}
</fx:Script>
private function initData():void {
downloadablePresentations = PresentationModel.getInstance().getDownloadablePresentations();
}
]]>
<mx:VBox width="100%" height="100%">
<mx:Label text="{ResourceUtil.getInstance().getString('bbb.filedownload.title')}" styleName="presentationUploadTitleStyle" paddingBottom="0"/>
<mx:Canvas width="100%" height="205" verticalScrollPolicy="off">
<mx:List id="presentationNamesList"
alternatingItemColors="[#EFEFEF, #FEFEFE]"
allowMultipleSelection="false"
width="100%"
height="202"
left="5"
top="5"
right="5"
bottom="5"
itemRenderer="org.bigbluebutton.modules.present.ui.views.DownloadPresentationRenderer"
dragEnabled="false"
dataProvider="{downloadablePresentations}">
</mx:List>
</mx:Canvas>
<mx:Canvas width="100%" height="48">
<mx:Button id="okCancelBtn"
label="{ResourceUtil.getInstance().getString('bbb.fileupload.okCancelBtn')}"
styleName="presentationUploadCancelButtonStyle"
right="5"
bottom="15"
click="globalDispatch.dispatchEvent(new DownloadEvent(DownloadEvent.CLOSE_DOWNLOAD_WINDOW))"
toolTip="{ResourceUtil.getInstance().getString('bbb.fileupload.okCancelBtn.toolTip')}"/>
</mx:Canvas>
</mx:VBox>
</fx:Script>
<mx:VBox width="100%"
height="100%">
<mx:TextArea borderSkin="{null}"
text="{ResourceUtil.getInstance().getString('bbb.filedownload.title')}"
editable="false"
styleName="titleWindowStyle"
width="100%" />
<mx:List id="presentationNamesList"
allowMultipleSelection="false"
width="100%"
height="100%"
left="5"
top="5"
right="5"
bottom="5"
itemRenderer="org.bigbluebutton.modules.present.ui.views.DownloadPresentationRenderer"
dragEnabled="false"
dataProvider="{downloadablePresentations}">
</mx:List>
</mx:VBox>
</mx:TitleWindow>

View File

@ -54,8 +54,10 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.listClasses.IListItemRenderer;
import mx.core.mx_internal;
import mx.events.FlexEvent;
import mx.events.ListEvent;
import mx.utils.StringUtil;
import org.as3commons.lang.StringUtils;
@ -75,6 +77,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
import org.bigbluebutton.modules.present.events.OfficeDocConvertFailedEvent;
import org.bigbluebutton.modules.present.events.OfficeDocConvertInvalidEvent;
import org.bigbluebutton.modules.present.events.OfficeDocConvertSuccessEvent;
import org.bigbluebutton.modules.present.events.PresentationRollEvent;
import org.bigbluebutton.modules.present.events.RemovePresentationEvent;
import org.bigbluebutton.modules.present.events.UploadCompletedEvent;
import org.bigbluebutton.modules.present.events.UploadEvent;
@ -82,6 +85,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
import org.bigbluebutton.modules.present.events.UploadProgressEvent;
import org.bigbluebutton.modules.present.events.UploadSecurityErrorEvent;
import org.bigbluebutton.modules.present.model.PresentOptions;
import org.bigbluebutton.modules.present.model.Presentation;
import org.bigbluebutton.modules.present.model.PresentationModel;
import org.bigbluebutton.util.i18n.ResourceUtil;
@ -91,6 +95,8 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
[Bindable] private var presentationNamesAC:ArrayCollection;
[BIndable] public var maxFileSize:Number;
private var dispatcher:Dispatcher;
private var thumbnailTimer:Timer = new Timer(5000);
private var genThumbText:String = ResourceUtil.getInstance().getString('bbb.fileupload.genThumbText');
@ -105,6 +111,8 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
protected function onCreationComplete(event:FlexEvent):void
{
dispatcher = new Dispatcher();
this.mx_internal::closeButton.toolTip = ResourceUtil.getInstance().getString('bbb.fileupload.okCancelBtn.toolTip');
}
@ -319,6 +327,28 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
}
}
private function onItemRollOver(event:ListEvent):void {
var item:IListItemRenderer = event.itemRenderer;
var presentation:Presentation = item.data as Presentation;
var rollEvent:PresentationRollEvent = new PresentationRollEvent(PresentationRollEvent.PRESENTATION_ROLL_OVER, presentation.id);
dispatcher.dispatchEvent(rollEvent);
}
private function onItemRollOut(event:ListEvent):void {
var item:IListItemRenderer = event.itemRenderer;
var presentation:Presentation = item.data as Presentation;
var rollEvent:PresentationRollEvent = new PresentationRollEvent(PresentationRollEvent.PRESENTATION_ROLL_OUT, presentation.id);
dispatcher.dispatchEvent(rollEvent);
}
protected function onItemClick(event:ListEvent):void
{
var item:IListItemRenderer = event.itemRenderer;
var presentation:Presentation = item.data as Presentation;
var rollEvent:PresentationRollEvent = new PresentationRollEvent(PresentationRollEvent.PRESENTATION_SELECT, presentation.id);
dispatcher.dispatchEvent(rollEvent);
}
]]>
</fx:Script>
@ -326,34 +356,37 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
<mx:VBox width="100%" height="100%" verticalAlign="top">
<mx:TextArea borderSkin="{null}"
text="{ResourceUtil.getInstance().getString('bbb.fileupload.title')}"
editable="false" styleName="presentationUploadTitleStyle"
editable="false" styleName="titleWindowStyle"
width="100%"/>
<mx:HBox id="fileUploadBox" width="100%" paddingLeft="5" paddingRight="5" paddingTop="0" verticalAlign="middle">
<mx:Box width="100%" height="100%" paddingLeft="5" paddingRight="5">
<mx:Box width="100%" height="100%" verticalAlign="middle" horizontalAlign="center" styleName="presentationUploadFileFormatHintBoxStyle">
<mx:Text width="100%" id="fileFormatHintLbl" textAlign="center" text="{ResourceUtil.getInstance().getString('bbb.fileupload.fileFormatHint')}" styleName="presentationUploadFileFormatHintTextStyle"/>
</mx:Box>
</mx:Box>
<mx:HBox id="fileUploadBox" width="100%" paddingLeft="5" paddingRight="5" paddingTop="5" verticalAlign="middle">
<mx:Label id="lblFileName" truncateToFit="true" width="{fileUploadBox.width-selectBtn.width-uploadBtn.width-30}" selectable="false" click="selectFile()" text="{ResourceUtil.getInstance().getString('bbb.fileupload.lblFileName.defaultText')}" />
<mx:Button id="selectBtn" label="{ResourceUtil.getInstance().getString('bbb.fileupload.selectBtn.label')}"
toolTip="{ResourceUtil.getInstance().getString('bbb.fileupload.selectBtn.toolTip')}"
click="selectFile()" styleName="presentationUploadChooseFileButtonStyle"/>
<mx:Button id="uploadBtn" label="{ResourceUtil.getInstance().getString('bbb.fileupload.uploadBtn')}"
<mx:Button id="uploadBtn" label="{ResourceUtil.getInstance().getString('bbb.fileupload.uploadBtn')}"
styleName="uploadFileButton"
toolTip="{ResourceUtil.getInstance().getString('bbb.fileupload.uploadBtn.toolTip')}" click="startUpload()"
enabled="false" icon="{getStyle('iconGo')}"/>
enabled="false"/>
</mx:HBox>
<mx:Box paddingLeft="5" paddingTop="5" visible="{presentOptions.enableDownload}" includeInLayout="{presentOptions.enableDownload}" >
<mx:CheckBox id="letUserDownload" label="{ResourceUtil.getInstance().getString('bbb.fileupload.letUserDownload')}" selected="{presentOptions.enableDownload}" toolTip="{ResourceUtil.getInstance().getString('bbb.fileupload.letUserDownload.tooltip')}"/>
</mx:Box>
<mx:HBox id="progressReportBox" width="100%" paddingLeft="10" paddingRight="10" paddingTop="5" paddingBottom="10" includeInLayout="true" visible="false">
<mx:HBox id="progressReportBox" width="100%" paddingLeft="10" paddingRight="10" paddingTop="5" paddingBottom="5" includeInLayout="true" visible="false">
<mx:Label id="progBarLbl" text="{ResourceUtil.getInstance().getString('bbb.fileupload.progBarLbl')}"
styleName="presentationUploadProgressBarLabelStyle" visible="false"/>
<mx:ProgressBar id="progressBar" mode="manual" label="{ResourceUtil.getInstance().getString('bbb.fileupload.progBarLbl')}"
styleName="presentationUploadProgressBarStyle" labelPlacement="center" width="100%" visible="false"/>
</mx:HBox>
<mx:Box width="100%" height="100%" paddingLeft="5" paddingRight="5">
<mx:Box width="100%" height="100%" verticalAlign="middle" horizontalAlign="center" styleName="presentationUploadFileFormatHintBoxStyle">
<mx:Text width="100%" id="fileFormatHintLbl" textAlign="center" text="{ResourceUtil.getInstance().getString('bbb.fileupload.fileFormatHint')}" styleName="presentationUploadFileFormatHintTextStyle"/>
</mx:Box>
</mx:Box>
<mx:Canvas width="100%" height="145" verticalScrollPolicy="off">
<mx:List height="142" left="5" top="5" right="5" bottom="5" id="uploadedFilesList" alternatingItemColors="[#EFEFEF, #FEFEFE]" allowMultipleSelection="false"
<mx:List height="142" left="5" top="5" right="5" bottom="5" id="uploadedFilesList" allowMultipleSelection="false"
itemRenderer="org.bigbluebutton.modules.present.ui.views.UploadedPresentationRenderer"
itemRollOver="onItemRollOver(event)" itemRollOut="onItemRollOut(event)" itemClick="onItemClick(event)"
dragEnabled="false" dataProvider="{presentationNamesAC}">
</mx:List>
</mx:Canvas>

View File

@ -1,53 +1,104 @@
<?xml version="1.0" encoding="utf-8"?>
<mx:HBox xmlns:mx="library://ns.adobe.com/flex/mx"
<mx:HBox xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:fx="http://ns.adobe.com/mxml/2009"
width="90%"
verticalScrollPolicy="off"
horizontalScrollPolicy="off"
toolTip="{data as String}"
xmlns:mate="http://mate.asfusion.com/"
width="100%"
paddingLeft="12"
paddingRight="12"
verticalScrollPolicy="off"
horizontalScrollPolicy="off"
toolTip="{data as String}"
verticalAlign="middle">
<fx:Script>
<![CDATA[
import com.asfusion.mate.events.Dispatcher;
import org.as3commons.logging.api.ILogger;
import org.as3commons.logging.api.getClassLogger;
import org.bigbluebutton.modules.present.commands.ChangePresentationCommand;
import org.bigbluebutton.modules.present.events.RemovePresentationEvent;
import org.bigbluebutton.modules.present.events.UploadEvent;
import org.bigbluebutton.util.i18n.ResourceUtil;
private static const LOGGER:ILogger = getClassLogger(UploadedPresentationRenderer);
private var globalDispatch:Dispatcher = new Dispatcher();
private function showPresentation():void {
var changePresCommand:ChangePresentationCommand = new ChangePresentationCommand(data.id);
globalDispatch.dispatchEvent(changePresCommand);
globalDispatch.dispatchEvent(new UploadEvent(UploadEvent.CLOSE_UPLOAD_WINDOW));
}
private function deletePresentation():void {
LOGGER.debug("FileUploadWindow.mxml::deletePresentation() {0}", [data.id]);
<fx:Declarations>
<mate:Listener type="{PresentationRollEvent.PRESENTATION_ROLL_OVER}"
method="onRollOver" />
<mate:Listener type="{PresentationRollEvent.PRESENTATION_ROLL_OUT}"
method="onRollOut" />
<mate:Listener type="{PresentationRollEvent.PRESENTATION_SELECT}"
method="onSelect" />
</fx:Declarations>
<fx:Script>
<![CDATA[
import com.asfusion.mate.events.Dispatcher;
import org.as3commons.logging.api.ILogger;
import org.as3commons.logging.api.getClassLogger;
import org.bigbluebutton.modules.present.commands.ChangePresentationCommand;
import org.bigbluebutton.modules.present.events.PresentationRollEvent;
import org.bigbluebutton.modules.present.events.RemovePresentationEvent;
import org.bigbluebutton.modules.present.events.UploadEvent;
import org.bigbluebutton.util.i18n.ResourceUtil;
private static const LOGGER:ILogger = getClassLogger(UploadedPresentationRenderer);
private var globalDispatch:Dispatcher = new Dispatcher();
[Bindable]
private var rolledOver:Boolean = false;
[Bindable]
private var selected:Boolean = false;
private function showPresentation():void {
var changePresCommand:ChangePresentationCommand = new ChangePresentationCommand(data.id);
globalDispatch.dispatchEvent(changePresCommand);
globalDispatch.dispatchEvent(new UploadEvent(UploadEvent.CLOSE_UPLOAD_WINDOW));
}
private function deletePresentation():void {
LOGGER.debug("FileUploadWindow.mxml::deletePresentation() {0}", [data.id]);
var rEvent:RemovePresentationEvent = new RemovePresentationEvent(RemovePresentationEvent.REMOVE_PRESENTATION_EVENT);
rEvent.presentationName = data.id as String;
dispatchEvent(rEvent);
}
private function onRollOver(e:PresentationRollEvent):void {
if (e.presentationId == data.id) {
rolledOver = true;
} else {
rolledOver = false;
}
}
private function onRollOut(e:PresentationRollEvent):void {
rolledOver = false;
}
private function onSelect(e:PresentationRollEvent):void {
if (e.presentationId == data.id) {
selected = true;
} else {
selected = false;
}
}
]]>
</fx:Script>
<mx:Label id="presentationNameLabel"
width="{this.width-isDownloadable.width-showBtn.width-deleteBtn.width-30}"
text="{data.name as String}"
styleName="{rolledOver || selected ? 'presentationNameLabelOver' : 'presentationNameLabelUp'}" />
<mx:Image id="isDownloadable"
visible="{data.downloadable as Boolean}"
source="{rolledOver || selected ? getStyle('iconSaveWhite') : getStyle('iconSave')}"
toolTip="{ResourceUtil.getInstance().getString('bbb.filedownload.thisFileIsDownloadable')}"
verticalAlign="middle" />
<mx:Button id="showBtn"
label="{ResourceUtil.getInstance().getString('bbb.fileupload.showBtn')}"
toolTip="{ResourceUtil.getInstance().getString('bbb.fileupload.showBtn.toolTip')}"
styleName="presentationUploadShowButtonStyle"
height="26"
click="showPresentation()"
enabled="{!data.current}" />
<mx:Button id="deleteBtn"
label=""
toolTip="{ResourceUtil.getInstance().getString('bbb.fileupload.deleteBtn.toolTip')}"
styleName="presentationUploadDeleteButtonStyle"
click="deletePresentation()"
visible="{String(data.name) != 'default.pdf'}" />
var rEvent:RemovePresentationEvent = new RemovePresentationEvent(RemovePresentationEvent.REMOVE_PRESENTATION_EVENT);
rEvent.presentationName = data.id as String;
dispatchEvent(rEvent);
}
]]>
</fx:Script>
<mx:Label id="presentationNameLabel" width="{this.width-isDownloadable.width-showBtn.width-deleteBtn.width-30}" text="{data.name as String}" styleName="presentationNameLabelStyle"/>
<mx:Image id="isDownloadable" visible="{data.downloadable as Boolean}"
source="{getStyle('iconSave')}"
toolTip="{ResourceUtil.getInstance().getString('bbb.filedownload.thisFileIsDownloadable')}"
verticalAlign="middle" />
<mx:Button id="showBtn" label="{ResourceUtil.getInstance().getString('bbb.fileupload.showBtn')}"
toolTip="{ResourceUtil.getInstance().getString('bbb.fileupload.showBtn.toolTip')}"
styleName="presentationUploadShowButtonStyle" height="26"
click="showPresentation()" enabled="{!data.current}"/>
<mx:Button id="deleteBtn" label="" toolTip="{ResourceUtil.getInstance().getString('bbb.fileupload.deleteBtn.toolTip')}"
styleName="presentationUploadDeleteButtonStyle"
click="deletePresentation()" visible="{String(data.name) != 'default.pdf'}"/>
</mx:HBox>

View File

@ -22,7 +22,8 @@ package org.bigbluebutton.modules.sharednotes.maps
import com.asfusion.mate.events.Dispatcher;
import mx.binding.utils.BindingUtils;
import mx.utils.ObjectUtil;
import mx.utils.ObjectUtil;
import org.as3commons.logging.api.ILogger;
import org.as3commons.logging.api.getClassLogger;
import org.bigbluebutton.common.events.CloseWindowEvent;
@ -64,7 +65,7 @@ package org.bigbluebutton.modules.sharednotes.maps
}
private function openAdditionalNotesSet(numAdditionalSharedNotes:Number):void {
var extraNotes = numAdditionalSharedNotes - numExistentsAdditionalNotes();
var extraNotes : Number = numAdditionalSharedNotes - numExistentsAdditionalNotes();
if (extraNotes > 0) {
var e:SharedNotesEvent = new SharedNotesEvent(SharedNotesEvent.REQUEST_ADDITIONAL_NOTES_SET_EVENT);
e.payload.numAdditionalSharedNotes = extraNotes;

View File

@ -25,7 +25,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:mate="http://mate.asfusion.com/"
xmlns:common="org.bigbluebutton.common.*"
width="630" height="650"
width="630" height="630"
close="onCloseClicked()"
visible="false"
showCloseButton="false">
@ -276,8 +276,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
<mx:VBox width="100%" height="100%" paddingBottom="5" paddingLeft="5" paddingRight="5" paddingTop="5">
<mx:TextArea width="100%" borderSkin="{null}" editable="false"
id="textArea" text="{ResourceUtil.getInstance().getString('bbb.users.breakout.breakoutRooms')}"
styleName="breakoutRoomSettingTitleStyle"/>
styleName="titleWindowStyle"/>
<mx:Canvas width="100%" styleName="breakoutTipBox" backgroundColor="0xcccccc">
<mx:Text horizontalCenter="0" text="{ResourceUtil.getInstance().getString('bbb.users.breakout.dragAndDropToolTip')}"/>
</mx:Canvas>

View File

@ -344,37 +344,48 @@
}
]]>
</fx:Script>
<mx:Canvas id="webcamCanvas" width="28" height="20" visible="{webcamImg.visible || webcamBtn.visible}" includeInLayout="{webcamCanvas.visible}">
<mx:Image id="webcamImg" visible="false" source="{getStyle('iconWebcam')}"
horizontalCenter="0" verticalCenter="0"
toolTip="{ResourceUtil.getInstance().getString('bbb.users.usersGrid.mediaItemRenderer.webcam')}" />
<mx:Button id="webcamBtn" visible="false" includeInLayout="false" icon="{getStyle('iconWebcam')}"
width="28" height="20" horizontalCenter="0" verticalCenter="0"
enabled="true" click="viewCamera()"
toolTip="{ResourceUtil.getInstance().getString('bbb.users.usersGrid.mediaItemRenderer.webcamBtn')}" />
</mx:Canvas>
<mx:Image id="webcamImg" visible="false" source="{getStyle('iconWebcam')}"
width="20" height="20"
toolTip="{ResourceUtil.getInstance().getString('bbb.users.usersGrid.mediaItemRenderer.webcam')}" />
<mx:Button id="webcamBtn" visible="false" includeInLayout="false" icon="{getStyle('iconWebcam')}"
width="20" height="20" enabled="true" click="viewCamera()"
toolTip="{ResourceUtil.getInstance().getString('bbb.users.usersGrid.mediaItemRenderer.webcamBtn')}" />
<mx:Image id="muteImg" visible="false" includeInLayout="true" width="20" height="20" />
<mx:Button id="muteBtn" visible="false" includeInLayout="false" enabled="false" icon="{getStyle('iconAudio')}"
width="20" height="20" click="toggleMuteState()"
mouseOver="muteMouseOverHandler()"
mouseOut="muteMouseOutHandler()"
toolTip="{data.muted ? ResourceUtil.getInstance().getString('bbb.users.usersGrid.mediaItemRenderer.pushToTalk',[data.name]) : ResourceUtil.getInstance().getString('bbb.users.usersGrid.mediaItemRenderer.pushToMute',[data.name])}" />
<mx:Image id="lockImg" visible="false" includeInLayout="false" width="20" height="20" />
<mx:Button id="lockBtn" visible="false" includeInLayout="false" enabled="false"
width="20" height="20" click="toggleLockState()"
mouseOver="lockMouseOverHandler()"
mouseOut="lockMouseOutHandler()"
toolTip="{data.locked ? ResourceUtil.getInstance().getString('bbb.users.usersGrid.mediaItemRenderer.pushToUnlock',[data.name]) : ResourceUtil.getInstance().getString('bbb.users.usersGrid.mediaItemRenderer.pushToLock',[data.name])}" />
<mx:Canvas id="muteCanvas" width="20" height="20" visible="{muteImg.visible || muteBtn.visible}" includeInLayout="{muteCanvas.visible}">
<mx:Image id="muteImg" visible="false" includeInLayout="true"
horizontalCenter="0" verticalCenter="0" />
<mx:Button id="muteBtn" visible="false" includeInLayout="false" enabled="false" icon="{getStyle('iconAudio')}"
width="20" height="20" horizontalCenter="0" verticalCenter="0"
click="toggleMuteState()"
mouseOver="muteMouseOverHandler()"
mouseOut="muteMouseOutHandler()"
toolTip="{data.muted ? ResourceUtil.getInstance().getString('bbb.users.usersGrid.mediaItemRenderer.pushToTalk',[data.name]) : ResourceUtil.getInstance().getString('bbb.users.usersGrid.mediaItemRenderer.pushToMute',[data.name])}" />
</mx:Canvas>
<mx:Canvas id="lockCanvas" width="20" height="20" visible="{lockImg.visible || lockBtn.visible}" includeInLayout="{lockCanvas.visible}">
<mx:Image id="lockImg" visible="false" includeInLayout="false"
horizontalCenter="0" verticalCenter="0" />
<mx:Button id="lockBtn" visible="false" includeInLayout="false" enabled="false"
width="20" height="20" horizontalCenter="0" verticalCenter="0" click="toggleLockState()"
mouseOver="lockMouseOverHandler()"
mouseOut="lockMouseOutHandler()"
toolTip="{data.locked ? ResourceUtil.getInstance().getString('bbb.users.usersGrid.mediaItemRenderer.pushToUnlock',[data.name]) : ResourceUtil.getInstance().getString('bbb.users.usersGrid.mediaItemRenderer.pushToLock',[data.name])}" />
</mx:Canvas>
<mx:Button id="settingsBtn"
visible="false"
width="20"
height="20"
click="openSettings()"
icon="{getStyle('iconSettings')}"
toolTip="{ResourceUtil.getInstance().getString('bbb.users.settings.buttonTooltip')}"/>
visible="false"
width="20"
height="20"
click="openSettings()"
icon="{getStyle('iconSettings')}"
toolTip="{ResourceUtil.getInstance().getString('bbb.users.settings.buttonTooltip')}"/>
<!-- Helper objects because using BindingUtil with data break when the itemRenderer is recycled -->
<mx:Image id="muteInd" includeInLayout="false" visible="{data.muted}" />
<mx:Image id="voiceJoinedInd" includeInLayout="false" visible="{data.inVoiceConf}" />
<mx:Image id="userLockedInd" includeInLayout="false" visible="{data.locked}" />
<mx:Image id="hasStreamInd" includeInLayout="false" visible="{data.hasStream}" />
<mx:Image id="viewingStreamInd" includeInLayout="false" visible="{data.viewingStream}" />
<mx:Image id="listenOnlyInd" includeInLayout="false" visible="{data.listenOnly}" />
<mx:Image id="hasStreamInd" includeInLayout="false" visible="{data.hasStream}" />
<mx:Image id="viewingStreamInd" includeInLayout="false" visible="{data.viewingStream}" />
<mx:Image id="listenOnlyInd" includeInLayout="false" visible="{data.listenOnly}" />
</mx:HBox>

View File

@ -190,24 +190,33 @@
dispatchEvent(e);
}
}
private function emojiBtnClicked() : void {
private function emojiBtnClicked():void {
if (data.hasEmojiStatus) {
dispatchEvent(new EmojiStatusEvent(EmojiStatusEvent.EMOJI_STATUS, "none", data.userId));
}
}
}
// Need to refresh the roleBtn toolTip text on locale change
private function localeChanged(e:Event):void {
updateButtons();
}
]]>
</fx:Script>
<mx:Image id="emojiImg" visible="true" includeInLayout="{emojiImg.visible}" />
<mx:Button id="emojiBtn" visible="false" enabled="false" width="20" height="20" click="emojiBtnClicked()" includeInLayout="{emojiBtn.visible}" />
<mx:Image id="roleImg" visible="true" width="20" height="20" includeInLayout="{roleImg.visible}" />
<mx:Button id="roleBtn" visible="false" enabled="false" width="20" height="20" click="roleBtnClicked()" includeInLayout="{roleBtn.visible}" />
<mx:Canvas id="emojiCanvas" width="20" height="20" visible="{emojiImg.visible || emojiBtn.visible}" includeInLayout="{emojiCanvas.visible}">
<mx:Image id="emojiImg" visible="true" includeInLayout="{emojiImg.visible}" horizontalCenter="0" verticalCenter="0"/>
<mx:Button id="emojiBtn" visible="false" enabled="false"
width="20" height="20" horizontalCenter="0" verticalCenter="0"
click="emojiBtnClicked()" includeInLayout="{emojiBtn.visible}" />
</mx:Canvas>
<mx:Canvas id="roleCanvas" width="20" height="20" visible="{roleImg.visible || roleBtn.visible}" includeInLayout="{roleCanvas.visible}">
<mx:Image id="roleImg" visible="true" includeInLayout="{roleImg.visible}" horizontalCenter="0" verticalCenter="0"/>
<mx:Button id="roleBtn" visible="false" enabled="false"
width="20" height="20" horizontalCenter="0" verticalCenter="0"
click="roleBtnClicked()" includeInLayout="{roleBtn.visible}" />
</mx:Canvas>
<!-- Helper objects because direct bindings to data break when the itemRenderer is recycled -->
<mx:Image id="presenterInd" includeInLayout="false" visible="{data.presenter}" />

View File

@ -387,7 +387,7 @@ $Id: $
private function openSettings():void {
paramsMenuData = [];
paramsMenuData.push({label: ResourceUtil.getInstance().getString('bbb.users.settings.clearAllStatus'), handler: resetEmojiStatuses});
paramsMenuData.push({label: ResourceUtil.getInstance().getString('bbb.users.settings.clearAllStatus'), icon: getStyle('iconClearStatus'), handler: resetEmojiStatuses});
if (!roomMuted) {
paramsMenuData.push({label: ResourceUtil.getInstance().getString('bbb.users.settings.muteAll'), icon: getStyle('iconAudioMuted'), handler: muteAll});
@ -400,7 +400,7 @@ $Id: $
paramsMenuData.push({label: ResourceUtil.getInstance().getString('bbb.users.settings.lockSettings'), icon: getStyle('iconLock'), handler: lockSettings});
if (breakoutOptions.enabled && amIModerator && !UsersUtil.isBreakout()) {
if (breakoutRoomsList.length == 0) {
paramsMenuData.push({label: ResourceUtil.getInstance().getString('bbb.users.settings.breakoutRooms'), handler: breakoutRooms});
paramsMenuData.push({label: ResourceUtil.getInstance().getString('bbb.users.settings.breakoutRooms'), icon: getStyle('iconRooms'), handler: breakoutRooms});
} else {
paramsMenuData.push({label: ResourceUtil.getInstance().getString('bbb.users.settings.sendBreakoutRoomsInvitations'), handler: sendBreakoutRoomsInvitations});
}