Merge branch 'master' of github.com:bigbluebutton/bigbluebutton
This commit is contained in:
commit
b77a8f46ca
@ -1,9 +1,31 @@
|
||||
<?php
|
||||
/*
|
||||
Copyright 2010 Blindside Networks
|
||||
|
||||
if(function_exists("curl_init()"))
|
||||
{
|
||||
function bbb_wrap_simplexml_load_file($url)
|
||||
{
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
Versions:
|
||||
1.0 -- Initial version written by DJP
|
||||
(email: djp [a t ] architectes DOT .org)
|
||||
1.1 -- Updated by Omar Shammas and Sebastian Schneider
|
||||
(email : omar DOT shammas [a t ] g m ail DOT com)
|
||||
(email : seb DOT sschneider [ a t ] g m ail DOT com)
|
||||
*/
|
||||
|
||||
function bbb_wrap_simplexml_load_file($url){
|
||||
if(function_exists("curl_init()")){
|
||||
$ch = curl_init() or die ( curl_error() );
|
||||
$timeout = 10;
|
||||
curl_setopt( $ch, CURLOPT_URL, $url );
|
||||
@ -12,18 +34,10 @@ if(function_exists("curl_init()"))
|
||||
$data = curl_exec( $ch );
|
||||
curl_close( $ch );
|
||||
return (new SimpleXMLElement($data));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*
|
||||
* REQUIREMENT - PHP.INI
|
||||
* allow_url_fopen = On
|
||||
*/
|
||||
function bbb_wrap_simplexml_load_file($url)
|
||||
{
|
||||
return (simplexml_load_file($url));
|
||||
}
|
||||
}
|
||||
else{
|
||||
return (simplexml_load_file($url));
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@ -119,12 +133,12 @@ else
|
||||
}
|
||||
}
|
||||
|
||||
public function createMeeting( $username, $meetingID, $welcomeString, $mPW, $aPW, $SALT, $URL, $logoutURL ) {
|
||||
public function createMeetingReturnJoinURL( $username, $meetingID, $meetingName, $welcomeString, $mPW, $aPW, $SALT, $URL, $logoutURL ) {
|
||||
$url_create = $URL."api/create?";
|
||||
$url_join = $URL."api/join?";
|
||||
$voiceBridge = 70000 + rand(0, 9999);
|
||||
|
||||
$params = 'name='.urlencode($username).'&meetingID='.urlencode($meetingID).'&attendeePW='.$aPW.'&moderatorPW='.$mPW.'&voiceBridge='.$voiceBridge.'&logoutURL='.urlencode($logoutURL);
|
||||
$params = 'name='.urlencode($meetingName).'&meetingID='.urlencode($meetingID).'&attendeePW='.$aPW.'&moderatorPW='.$mPW.'&voiceBridge='.$voiceBridge.'&logoutURL='.urlencode($logoutURL);
|
||||
|
||||
if( trim( $welcomeString ) )
|
||||
$params .= '&welcome='.urlencode($welcomeString);
|
||||
@ -143,7 +157,7 @@ public function createMeeting( $username, $meetingID, $welcomeString, $mPW, $aPW
|
||||
}
|
||||
}
|
||||
|
||||
public function createMeetingXML( $username, $meetingID, $welcomeString, $mPW, $aPW, $SALT, $URL, $logoutURL ) {
|
||||
public function createMeetingArray( $username, $meetingID, $welcomeString, $mPW, $aPW, $SALT, $URL, $logoutURL ) {
|
||||
$url_create = $URL."api/create?";
|
||||
$url_join = $URL."api/join?";
|
||||
$voiceBridge = 70000 + rand(0, 9999);
|
||||
@ -202,18 +216,17 @@ public function getMeetingInfo( $meetingID, $modPW, $URL, $SALT ) {
|
||||
public function getMeetingInfoArray( $meetingID, $modPW, $URL, $SALT ) {
|
||||
$xml = bbb_wrap_simplexml_load_file( BigBlueButton::getUrlFromMeetingInfo( $meetingID, $modPW, $URL, $SALT ) );
|
||||
if( $xml && $xml->returncode == 'SUCCESS' && $xml->messageKey == null){//The meetings were returned
|
||||
return array('returncode' => $xml->returncode, 'message' => $xml->message, 'messageKey' => $xml->messageKey );
|
||||
}
|
||||
else if($xml && $xml->returncode == 'SUCCESS'){ //If there were meetings already created
|
||||
return array( 'meetingID' => $xml->meetingID, 'moderatorPW' => $xml->moderatorPW, 'attendeePW' => $xml->attendeePW, 'hasBeenForciblyEnded' => $xml->hasBeenForciblyEnded, 'running' => $xml->running, 'startTime' => $xml->startTime, 'endTime' => $xml->endTime, 'participantCount' => $xml->participantCount, 'moderatorCount' => $xml->moderatorCount, 'attendees' => $xml->attendees );
|
||||
}
|
||||
else if( $xml ) { //If the xml packet returned failure it displays the message to the user
|
||||
|
||||
return array('returncode' => $xml->returncode, 'message' => $xml->message, 'messageKey' => $xml->messageKey);
|
||||
}
|
||||
else { //If the server is unreachable, then prompts the user of the necessary action
|
||||
return null;
|
||||
}
|
||||
return array('returncode' => $xml->returncode, 'message' => $xml->message, 'messageKey' => $xml->messageKey );
|
||||
}
|
||||
else if($xml && $xml->returncode == 'SUCCESS'){ //If there were meetings already created
|
||||
return array( 'meetingID' => $xml->meetingID, 'moderatorPW' => $xml->moderatorPW, 'attendeePW' => $xml->attendeePW, 'hasBeenForciblyEnded' => $xml->hasBeenForciblyEnded, 'running' => $xml->running, 'startTime' => $xml->startTime, 'endTime' => $xml->endTime, 'participantCount' => $xml->participantCount, 'moderatorCount' => $xml->moderatorCount, 'attendees' => $xml->attendees );
|
||||
}
|
||||
else if( $xml ) { //If the xml packet returned failure it displays the message to the user
|
||||
return array('returncode' => $xml->returncode, 'message' => $xml->message, 'messageKey' => $xml->messageKey);
|
||||
}
|
||||
else { //If the server is unreachable, then prompts the user of the necessary action
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -1,51 +1,52 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<actionScriptProperties mainApplicationPath="BigBlueButton.mxml" projectUUID="2f78753b-2e4c-41b4-8cf4-eddb768eb4b3" version="6">
|
||||
<compiler additionalCompilerArguments="-locale=" autoRSLOrdering="true" copyDependentFiles="true" flexSDK="Flex 3.5" fteInMXComponents="false" generateAccessible="false" htmlExpressInstall="true" htmlGenerate="true" htmlHistoryManagement="true" htmlPlayerVersionCheck="true" includeNetmonSwc="false" outputFolderPath="bin" sourceFolderPath="src" strict="true" targetPlayerVersion="10.0.0" useApolloConfig="false" useDebugRSLSwfs="true" verifyDigests="true" warn="true">
|
||||
<compilerSourcePath>
|
||||
<compilerSourcePathEntry kind="1" linkType="1" path="tests/integration"/>
|
||||
</compilerSourcePath>
|
||||
<libraryPath defaultLinkType="1">
|
||||
<libraryPathEntry kind="4" path="">
|
||||
<modifiedEntries>
|
||||
<libraryPathEntry kind="3" linkType="4" path="${PROJECT_FRAMEWORKS}/libs/framework.swc" useDefaultLinkType="true">
|
||||
<crossDomainRsls>
|
||||
<crossDomainRslEntry autoExtract="true" policyFileUrl="" rslUrl="framework_3.1.0.2710.swz"/>
|
||||
<crossDomainRslEntry autoExtract="true" policyFileUrl="" rslUrl="framework_3.1.0.2710.swf"/>
|
||||
</crossDomainRsls>
|
||||
</libraryPathEntry>
|
||||
</modifiedEntries>
|
||||
<excludedEntries>
|
||||
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/qtp.swc" useDefaultLinkType="false"/>
|
||||
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/automation.swc" useDefaultLinkType="false"/>
|
||||
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/automation_dmv.swc" useDefaultLinkType="false"/>
|
||||
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/automation_agent.swc" useDefaultLinkType="false"/>
|
||||
</excludedEntries>
|
||||
</libraryPathEntry>
|
||||
<libraryPathEntry kind="1" linkType="1" path="libs"/>
|
||||
</libraryPath>
|
||||
<sourceAttachmentPath/>
|
||||
</compiler>
|
||||
<applications>
|
||||
<application path="src/main.mxml"/>
|
||||
<application path="MessagingUnitTests.mxml"/>
|
||||
<application path="BigBlueButton.mxml"/>
|
||||
<application path="BigBlueButtonUnitTests.mxml"/>
|
||||
<application path="DeskshareStandalone.mxml"/>
|
||||
<application path="src/TestRunners.mxml"/>
|
||||
</applications>
|
||||
<modules>
|
||||
<module application="src/BigBlueButton.mxml" destPath="DynamicInfoModule.swf" optimize="true" sourcePath="src/DynamicInfoModule.mxml"/>
|
||||
<module application="src/BigBlueButton.mxml" destPath="PhoneModule.swf" optimize="true" sourcePath="src/PhoneModule.mxml"/>
|
||||
<module application="src/BigBlueButton.mxml" destPath="PresentModule.swf" optimize="true" sourcePath="src/PresentModule.mxml"/>
|
||||
<module application="src/BigBlueButton.mxml" destPath="ExampleChatModule.swf" optimize="true" sourcePath="src/ExampleChatModule.mxml"/>
|
||||
<module application="src/BigBlueButton.mxml" destPath="DeskShareModule.swf" optimize="true" sourcePath="src/DeskShareModule.mxml"/>
|
||||
<module application="src/BigBlueButton.mxml" destPath="VideoconfModule.swf" optimize="true" sourcePath="src/VideoconfModule.mxml"/>
|
||||
<module application="src/BigBlueButton.mxml" destPath="ViewersModule.swf" optimize="true" sourcePath="src/ViewersModule.mxml"/>
|
||||
<module application="src/BigBlueButton.mxml" destPath="ChatModule.swf" optimize="true" sourcePath="src/ChatModule.mxml"/>
|
||||
<module application="src/BigBlueButton.mxml" destPath="ListenersModule.swf" optimize="true" sourcePath="src/ListenersModule.mxml"/>
|
||||
<module application="src/BigBlueButton.mxml" destPath="WhiteboardModule.swf" optimize="true" sourcePath="src/WhiteboardModule.mxml"/>
|
||||
</modules>
|
||||
<buildCSSFiles>
|
||||
<buildCSSFileEntry destPath="bin" sourcePath="src/branding/css/theme.css"/>
|
||||
</buildCSSFiles>
|
||||
</actionScriptProperties>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<actionScriptProperties mainApplicationPath="BigBlueButton.mxml" projectUUID="2f78753b-2e4c-41b4-8cf4-eddb768eb4b3" version="6">
|
||||
<compiler additionalCompilerArguments="-locale=" autoRSLOrdering="true" copyDependentFiles="true" flexSDK="Flex 3.5" fteInMXComponents="false" generateAccessible="false" htmlExpressInstall="true" htmlGenerate="true" htmlHistoryManagement="true" htmlPlayerVersionCheck="true" includeNetmonSwc="false" outputFolderPath="bin" sourceFolderPath="src" strict="true" targetPlayerVersion="10.0.0" useApolloConfig="false" useDebugRSLSwfs="true" verifyDigests="true" warn="true">
|
||||
<compilerSourcePath>
|
||||
<compilerSourcePathEntry kind="1" linkType="1" path="tests/integration"/>
|
||||
</compilerSourcePath>
|
||||
<libraryPath defaultLinkType="1">
|
||||
<libraryPathEntry kind="4" path="">
|
||||
<modifiedEntries>
|
||||
<libraryPathEntry kind="3" linkType="4" path="${PROJECT_FRAMEWORKS}/libs/framework.swc" useDefaultLinkType="true">
|
||||
<crossDomainRsls>
|
||||
<crossDomainRslEntry autoExtract="true" policyFileUrl="" rslUrl="framework_3.1.0.2710.swz"/>
|
||||
<crossDomainRslEntry autoExtract="true" policyFileUrl="" rslUrl="framework_3.1.0.2710.swf"/>
|
||||
</crossDomainRsls>
|
||||
</libraryPathEntry>
|
||||
</modifiedEntries>
|
||||
<excludedEntries>
|
||||
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/qtp.swc" useDefaultLinkType="false"/>
|
||||
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/automation.swc" useDefaultLinkType="false"/>
|
||||
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/automation_dmv.swc" useDefaultLinkType="false"/>
|
||||
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/automation_agent.swc" useDefaultLinkType="false"/>
|
||||
</excludedEntries>
|
||||
</libraryPathEntry>
|
||||
<libraryPathEntry kind="1" linkType="1" path="libs"/>
|
||||
</libraryPath>
|
||||
<sourceAttachmentPath/>
|
||||
</compiler>
|
||||
<applications>
|
||||
<application path="src/main.mxml"/>
|
||||
<application path="MessagingUnitTests.mxml"/>
|
||||
<application path="BigBlueButton.mxml"/>
|
||||
<application path="BigBlueButtonUnitTests.mxml"/>
|
||||
<application path="DeskshareStandalone.mxml"/>
|
||||
<application path="src/TestRunners.mxml"/>
|
||||
</applications>
|
||||
<modules>
|
||||
<module application="src/BigBlueButton.mxml" destPath="DynamicInfoModule.swf" optimize="true" sourcePath="src/DynamicInfoModule.mxml"/>
|
||||
<module application="src/BigBlueButton.mxml" destPath="PhoneModule.swf" optimize="true" sourcePath="src/PhoneModule.mxml"/>
|
||||
<module application="src/BigBlueButton.mxml" destPath="PresentModule.swf" optimize="true" sourcePath="src/PresentModule.mxml"/>
|
||||
<module application="src/BigBlueButton.mxml" destPath="ExampleChatModule.swf" optimize="true" sourcePath="src/ExampleChatModule.mxml"/>
|
||||
<module application="src/BigBlueButton.mxml" destPath="DeskShareModule.swf" optimize="true" sourcePath="src/DeskShareModule.mxml"/>
|
||||
<module application="src/BigBlueButton.mxml" destPath="VideoconfModule.swf" optimize="true" sourcePath="src/VideoconfModule.mxml"/>
|
||||
<module application="src/BigBlueButton.mxml" destPath="ViewersModule.swf" optimize="true" sourcePath="src/ViewersModule.mxml"/>
|
||||
<module application="src/BigBlueButton.mxml" destPath="ChatModule.swf" optimize="true" sourcePath="src/ChatModule.mxml"/>
|
||||
<module application="src/BigBlueButton.mxml" destPath="ListenersModule.swf" optimize="true" sourcePath="src/ListenersModule.mxml"/>
|
||||
<module application="src/BigBlueButton.mxml" destPath="WhiteboardModule.swf" optimize="true" sourcePath="src/WhiteboardModule.mxml"/>
|
||||
<module application="src/BigBlueButton.mxml" destPath="BreakoutModule.swf" optimize="true" sourcePath="src/BreakoutModule.mxml"/>
|
||||
</modules>
|
||||
<buildCSSFiles>
|
||||
<buildCSSFileEntry destPath="bin" sourcePath="src/branding/css/theme.css"/>
|
||||
</buildCSSFiles>
|
||||
</actionScriptProperties>
|
||||
|
@ -1,2 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<flexProperties flexServerType="0" toolCompile="true" useServerFlexSDK="false" version="1"/>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<flexProperties enableServiceManager="false" flexServerFeatures="0" flexServerType="0" toolCompile="true" useServerFlexSDK="false" version="1"/>
|
||||
|
2
bigbluebutton-client/.gitignore
vendored
Normal file → Executable file
2
bigbluebutton-client/.gitignore
vendored
Normal file → Executable file
@ -1,5 +1,3 @@
|
||||
.actionScriptProperties
|
||||
.flexProperties
|
||||
linker-report.xml
|
||||
bin
|
||||
client
|
||||
|
@ -25,6 +25,7 @@
|
||||
<property name="VIDEO" value="VideoconfModule" />
|
||||
<property name="WHITEBOARD" value="WhiteboardModule" />
|
||||
<property name="DYN_INFO" value="DynamicInfoModule" />
|
||||
<property name="BREAKOUT" value="BreakoutModule" />
|
||||
|
||||
<property name="AVAILABLE_LOCALES" value="az_AZ,bg_BG,de_DE,el_GR,en_US,es_ES,es_LA,fr_FR,fr_CA,hu_HU,it_IT,lt_LT,nb_NO,nl_NL,pl_PL,pt_BR,pt_PT,ro_RO,ru_RU,tr_TR,vi_VN,zh_CN,zh_TW,sv_SE,fa_IR,ja_JP"/>
|
||||
|
||||
@ -100,6 +101,8 @@
|
||||
<target-player>10.0.0</target-player>
|
||||
<source-path path-element="locale/{locale}"/>
|
||||
<include-resource-bundles>bbbResources</include-resource-bundles>
|
||||
<include-resource-bundles>core</include-resource-bundles>
|
||||
<include-resource-bundles>controls</include-resource-bundles>
|
||||
<source-path path-element="${FLEX_HOME}/frameworks"/>
|
||||
</mxmlc>
|
||||
</sequential>
|
||||
@ -114,6 +117,10 @@
|
||||
</copy>
|
||||
</target>
|
||||
|
||||
<target name="build-breakout" description="Compile Breakout Module" >
|
||||
<build-module src="${SRC_DIR}" target="${BREAKOUT}" />
|
||||
</target>
|
||||
|
||||
<target name="build-chat" description="Compile Chat Module">
|
||||
<build-module src="${SRC_DIR}" target="${CHAT}" />
|
||||
</target>
|
||||
@ -169,8 +176,8 @@
|
||||
|
||||
<!-- just a grouping of modules to compile -->
|
||||
<target name="build-main-chat-viewers-listeners-present"
|
||||
depends="build-bbb-main, build-chat, build-viewers, build-listeners, build-present"
|
||||
description="Compile main, chat, viewers, listeners, present modules">
|
||||
depends="build-bbb-main, build-chat, build-viewers, build-listeners, build-present, build-breakout"
|
||||
description="Compile main, chat, viewers, listeners, present, breakout modules">
|
||||
</target>
|
||||
|
||||
<!-- just a grouping of modules to compile -->
|
||||
@ -323,7 +330,7 @@
|
||||
description="Build BBB client skipping compiling of locales"/>
|
||||
<target name="clean-build-all" depends="clean, generate-html-wrapper, localization, compile-deskshare-standalone, compile-bbb"
|
||||
description="Build BBB client including locales"/>
|
||||
<target name="build-bbb" depends="init-ant-contrib, generate-html-wrapper, compile-deskshare-standalone, compile-bbb"
|
||||
<target name="modules" depends="init-ant-contrib, generate-html-wrapper, compile-deskshare-standalone, compile-bbb"
|
||||
description="Build BBB client without locales"/>
|
||||
<target name="cleanandmake" depends="clean-build-all" description="Build BBB client including locales"/>
|
||||
</project>
|
||||
|
@ -1,5 +1,6 @@
|
||||
## BigBlueButton.mxml
|
||||
bbb.pageTitle = BigBlueButton
|
||||
|
||||
# BigBlueButton.mxml
|
||||
bbb.pageTitle = BigBlueButton
|
||||
|
||||
# MainApplicationShell.mxml
|
||||
@ -8,13 +9,13 @@ bbb.mainshell.statusProgress.connecting = Свързване със сървър
|
||||
bbb.mainshell.statusProgress.loading = Зареждане на {0} модул/а
|
||||
bbb.mainshell.statusProgress.cannotConnectServer = Съжалявам, не мога да се свържа със сървърът.
|
||||
bbb.mainshell.copyrightLabel2 = (c) 2010, BigBlueButton build {0} - За повече информация вижте http://www.bigbluebutton.org/.
|
||||
bbb.mainshell.logBtn.toolTip = Отвори Дневник Прозорцът
|
||||
bbb.mainshell.logBtn.toolTip = Отвори Дневник Прозорецът
|
||||
bbb.mainshell.fullScreenBtn.toolTip = Премини на Цял Екран
|
||||
bbb.mainshell.resetLayoutBtn.toolTip = Презареди Изгледа
|
||||
|
||||
# OldLocaleWarnWIndow.mxml
|
||||
bbb.oldlocalewindow.reminder1=Вие може да имате стар превод на BigBlueButton.
|
||||
bbb.oldlocalewindow.reminder2=Моля изчистете кеша на браузера си и опитайте отново.
|
||||
bbb.oldlocalewindow.reminder2=Моля изчистете кеша на браузъра си и опитайте отново.
|
||||
bbb.oldlocalewindow.windowTitle=Предупреждение: Стар превод на езика
|
||||
|
||||
# LogWindow.mxml
|
||||
@ -47,7 +48,7 @@ bbb.viewers.viewersGrid.statusItemRenderer = Състояние
|
||||
bbb.viewers.viewersGrid.statusItemRenderer.raiseHand.toolTip = Вдигната ръка на {0}
|
||||
bbb.viewers.viewersGrid.statusItemRenderer.streamIcon.toolTip = Натисни за да видиш.
|
||||
bbb.viewers.viewersGrid.statusItemRenderer.presIcon.toolTip = Презентатор
|
||||
bbb.viewers.presentBtn.toolTip = Изберете кои уеб учстници да са презентатори.
|
||||
bbb.viewers.presentBtn.toolTip = Изберете кои уеб участници да са презентатори.
|
||||
bbb.viewers.raiseHandBtn.toolTip = Натисни за да вдигнеш ръка.
|
||||
bbb.viewers.presentBtn.label = Смени Презентаторът
|
||||
bbb.viewers.kickUserBtn.toolTip = Изхвърли потребител
|
||||
@ -62,7 +63,7 @@ bbb.presentation.slideNumLbl =
|
||||
bbb.presentation.forwardBtn.toolTip = Следваща страница
|
||||
bbb.presentation.resetZoomBtn.toolTip = Презареди Мащаба
|
||||
bbb.presentation.presenterNameLbl = {0} текущо презентират.
|
||||
bbb.presentation.maximizeRestoreBtn.toolTip = Увелечете този прозорец
|
||||
bbb.presentation.maximizeRestoreBtn.toolTip = Увеличете този прозорец
|
||||
bbb.presentation.maximizeRestoreBtn.toolTip2 = Възстановяване на предишният размер
|
||||
bbb.presentation.clickToUpload = Зареди презентация
|
||||
bbb.presentation.maxUploadFileExceededAlert = Грешка: Файлът е по-голям от позволеното.
|
||||
@ -175,4 +176,4 @@ bbb.highlighter.toolbar.thickness = Смени дебелина
|
||||
|
||||
# WhiteboardButton.mxml
|
||||
bbb.highlighter.button.toolTipShow = Покажи Дъската
|
||||
bbb.highlighter.button.toolTipHide = Скрий Дъската
|
||||
bbb.highlighter.button.toolTipHide = Скрий Дъската
|
||||
|
@ -1,183 +1,177 @@
|
||||
|
||||
# BigBlueButton.mxml
|
||||
bbb.pageTitle =BigBlueButton
|
||||
|
||||
# MainApplicationShell.mxml
|
||||
bbb.mainshell.locale.version=0.7
|
||||
bbb.mainshell.statusInfo =しばらくお待ちください。{0} モジュールを読み込み中・・・
|
||||
bbb.mainshell.statusInfo.loaded ={0}読み込み完了
|
||||
bbb.mainshell.statusInfo.testRTMPConnection =しばらくお待ちください。サーバへのコネクションをテスト中です。
|
||||
bbb.mainshell.statusInfo2 =ご注意:もし読み込みがストップした場合、ご使用のブラウザのキャッシュを削除した後、再度実行してみてください。
|
||||
bbb.mainshell.statusProgress.testRTMPConnection =RTMP://{0}:1935/{1}への接続
|
||||
bbb.mainshell.statusProgress.testRTMPTConnection =RTMP://{0}:80/{1}への接続
|
||||
bbb.mainshell.statusProgress.loading =読み込み中...
|
||||
bbb.mainshell.statusProgress.loaded =読み込み中・・・ {0} {1}% が読み込まれました。
|
||||
bbb.mainshell.statusProgress.cannotConnectServer =申し訳ありません。サーバーに接続できません。
|
||||
bbb.mainshell.copyrightLabel2 =(c) 2010, BigBlueButton build {0} - 詳細につきましては、http://www.bigbluebutton.org/をご覧ください。
|
||||
bbb.mainshell.logBtn.toolTip =ログウィンドウを開く
|
||||
bbb.mainshell.fullScreenBtn.toolTip =フルスクリーンで見る
|
||||
bbb.mainshell.resetLayoutBtn.toolTip =レイアウトをリセット
|
||||
|
||||
# OldLocaleWarnWIndow.mxml
|
||||
bbb.oldlocalewindow.reminder1=BigBlueButtonの古い言語翻訳を使用しているようです。
|
||||
bbb.oldlocalewindow.reminder2=ご使用のブラウザのキャッシュを削除した後、再度実行してみてください。
|
||||
bbb.oldlocalewindow.windowTitle=警告:古い言語翻訳
|
||||
|
||||
# LogWindow.mxml
|
||||
bbb.logwindow.title =ログウィンドウ
|
||||
bbb.logwindow.highlight =ハイライト:
|
||||
bbb.logwindow.turnLoggingOff =ログ作業オフ
|
||||
bbb.logwindow.clearBtn =クリア
|
||||
bbb.logwindow.refreshBtn =更新
|
||||
|
||||
# JoinFailedWindow.mxml
|
||||
bbb.joinFailedWindow.title =参加に失敗しました
|
||||
bbb.joinFailedWindow.okBtn =OK
|
||||
bbb.joinFailedWindow.failedInfo =有効なセッションがありません。[OK]をクリックしてログインしてください。
|
||||
|
||||
# MainToolbar.mxml
|
||||
bbb.mainToolbar.loggedInUserLbl ={1}: ダイヤル: 613-520-7610 85115
|
||||
bbb.mainToolbar.helpBtn =ヘルプ
|
||||
bbb.mainToolbar.logoutBtn =ログアウト
|
||||
bbb.mainToolbar.logoutBtn.toolTip =ログアウト
|
||||
|
||||
|
||||
###### modules ######
|
||||
|
||||
# ViewersWindow.mxml
|
||||
bbb.viewers.title =ユーザー{0} {1}
|
||||
bbb.viewers.viewersGrid.nameItemRenderer =名前
|
||||
bbb.viewers.viewersGrid.nameItemRenderer.nameLabel.toolTip =あなたはこのユーザーとしてログインしています。
|
||||
bbb.viewers.viewersGrid.roleItemRenderer =役割
|
||||
bbb.viewers.viewersGrid.statusItemRenderer =ステータス
|
||||
bbb.viewers.viewersGrid.statusItemRenderer.raiseHand.toolTip =挙手件数 {0}
|
||||
bbb.viewers.viewersGrid.statusItemRenderer.streamIcon.toolTip =クリックして閲覧
|
||||
bbb.viewers.viewersGrid.statusItemRenderer.presIcon.toolTip =プレゼンター
|
||||
bbb.viewers.presentBtn.toolTip =Web参加者をプレゼンターとして選択
|
||||
bbb.viewers.raiseHandBtn.toolTip =クリックして挙手。
|
||||
bbb.viewers.presentBtn.label =プレゼンターをスイッチ
|
||||
|
||||
# Presentation
|
||||
## PresentationWindow.mxml
|
||||
bbb.presentation.title =プレゼンテーション
|
||||
bbb.presentation.uploadPresBtn =プレゼンテーションのドキュメントをアップロード。
|
||||
bbb.presentation.uploadPresBtn.toolTip =プレゼンテーションのドキュメントをアップロード。
|
||||
bbb.presentation.backBtn.toolTip =前のスライド。
|
||||
bbb.presentation.slideNumLbl =
|
||||
bbb.presentation.forwardBtn.toolTip =次のスライド
|
||||
bbb.presentation.resetZoomBtn.toolTip =ズームをリセット
|
||||
bbb.presentation.presenterNameLbl ={0} が、現在プレゼン中。
|
||||
bbb.presentation.maximizeRestoreBtn.toolTip =このウィンドウを最大化
|
||||
bbb.presentation.maximizeRestoreBtn.toolTip2 =前のサイズに戻す
|
||||
bbb.presentation.clickToUpload =ロードプレゼンテーションをアップロード
|
||||
bbb.presentation.maxUploadFileExceededAlert =エラー:このファイルは許可サイズより大きすぎます。
|
||||
|
||||
## PresentationWindowMediator.as
|
||||
bbb.presentation.presenting ={0} が、現在プレゼン中。
|
||||
bbb.presentation.pages ={0} / {1}
|
||||
|
||||
## FileUploadWindowMediator.as
|
||||
bbb.presentation.uploadcomplete =アップロードが完了しました。文書を変換し終わるまで、しばらくお待ちください。
|
||||
bbb.presentation.uploadsuccessful =アップロードに成功
|
||||
bbb.presentation.uploaded =アップロードされました。
|
||||
bbb.presentation.document.supported =アップロードしたドキュメントはサポートされています。変換を開始...
|
||||
bbb.presentation.document.converted =正常にオフィス文書に変換されました。
|
||||
bbb.presentation.error.document.convert.failed =エラー:オフィス文書への変換に失敗しました。
|
||||
bbb.presentation.error.io =IOエラー:管理者に連絡してください。
|
||||
bbb.presentation.error.security =セキュリティエラー:管理者に連絡してください。
|
||||
bbb.presentation.error.convert.format =エラー:アップロードされたファイルが有効な拡張子かどうか、ご確認ください。
|
||||
bbb.presentation.error.convert.notsupported =エラー:アップロードしたドキュメントはサポートされていません。利用可能なファイルをアップロードしてください。
|
||||
bbb.presentation.error.convert.soffice =エラー:アップロードしたドキュメントを変換に失敗しました。
|
||||
bbb.presentation.error.convert.nbpage =エラー:アップロードしたドキュメントのページ数が特定できません。
|
||||
bbb.presentation.error.convert.maxnbpagereach =エラー:アップロードしたドキュメントのページが多すぎます。
|
||||
bbb.presentation.error.convert.swf =エラー:アップロードファイルの変換時。管理者にお問い合わせください。
|
||||
bbb.presentation.error.convert.swfimage =画像ファイルをSWFファイルに変換時にエラー:画像が破損していないかどうか、またJPG/PNGフォーマットかどうか、ご確認ください。
|
||||
bbb.presentation.error.convert.swfpdf =PDFファイルをSWFファイルに変換時にエラー:PDFファイルが破損していないかどうか、ご確認ください。
|
||||
bbb.presentation.error.convert.thumbnail =サムネイル作成時にエラー。管理者にお問い合わせください。
|
||||
bbb.presentation.converted ={1} 中、{0} スライドを変換しました。
|
||||
bbb.presentation.extracting =スライドの抽出、{1} 中、{0} スライドを抽出しました。
|
||||
bbb.presentation.ok =OK
|
||||
bbb.presentation.uploadwindow.presentationfile =プレゼンテーションファイル
|
||||
bbb.presentation.uploadwindow.pdf =PDF
|
||||
bbb.presentation.uploadwindow.word =WORD
|
||||
bbb.presentation.uploadwindow.excel =エクセル
|
||||
bbb.presentation.uploadwindow.powerpoint =パワーポイント
|
||||
bbb.presentation.uploadwindow.image =画像
|
||||
|
||||
## FileUploadWindow.mxml
|
||||
bbb.fileupload.title =プレゼンテーションをアップロード
|
||||
bbb.fileupload.fileLbl =ファイル:
|
||||
bbb.fileupload.selectBtn.toolTip =ファイルを閲覧
|
||||
bbb.fileupload.uploadBtn =アップロード
|
||||
bbb.fileupload.uploadBtn.toolTip =ファイルをアップロード
|
||||
bbb.fileupload.presentationNamesLbl =プレゼンテーションのアップロード:
|
||||
bbb.fileupload.deleteBtn.toolTip =プレゼンテーションを削除
|
||||
bbb.fileupload.showBtn =表示
|
||||
bbb.fileupload.showBtn.toolTip =プレゼンテーションを表示
|
||||
bbb.fileupload.okCancelBtn =キャンセル
|
||||
bbb.fileupload.progressLbl.uploadSuccessful =アップロードが完了しました。文書を変換し終わるまで、しばらくお待ちください。
|
||||
bbb.fileupload.progressBar.uploadSuccessful =アップロード成功
|
||||
bbb.fileupload.progressLbl.uploading ={0}% がアップロードされました。
|
||||
bbb.fileupload.progressBar.uploading ={0}% がアップロードされました。
|
||||
bbb.fileupload.progressLbl.converting ={1} 中、{0} スライドを変換しました。
|
||||
bbb.fileupload.progressBar.converting ={1} 中、{0} スライドを変換しました。
|
||||
bbb.fileupload.progressLbl.extracting =スライドの抽出、{1} 中、{0} スライドを抽出しました。
|
||||
bbb.fileupload.progressBar.extracting =スライドの抽出、{1} 中、{0} スライドを抽出しました。
|
||||
bbb.fileupload.genThumbText =サムネイルの生成..
|
||||
bbb.fileupload.progBarLbl =進捗:
|
||||
|
||||
# ChatWindow.mxml
|
||||
bbb.chat.title =チャット
|
||||
bbb.chat.cmpColorPicker.toolTip =テキスト色
|
||||
bbb.chat.sendBtn =送信
|
||||
bbb.chat.sendBtn.toolTip =メッセージを送信
|
||||
bbb.chat.publicChatUsername =すべて
|
||||
bbb.chat.publicMsgAwaiting =公開メッセージ待機中
|
||||
bbb.chat.publicMsgAwaiting2 =*公開メッセージ待機中*
|
||||
bbb.chat.privateMsgAwaiting =プライベートメッセージ待機中
|
||||
bbb.chat.privateMsgAwaiting2 =*プライベートメッセージ待機中*
|
||||
bbb.chat.privateChatSelect =プライベートにチャットする個人を選択
|
||||
bbb.chat.chatOptions =チャットオプション
|
||||
bbb.chat.fontSize =フォントサイズ
|
||||
|
||||
# ListenersWindow.mxml
|
||||
bbb.listeners.title =リスナー{0} {1}
|
||||
bbb.listeners.muteAllBtn.toolTip =ミュートすべて
|
||||
bbb.listeners.unmuteAllBtn.toolTip =ミュート解除すべて
|
||||
bbb.listeners.ejectBtn.toolTip =締め出す音声参加者を選択。
|
||||
bbb.listeners.ejectTooltip =クリックしてユーザを締め出す。
|
||||
|
||||
# ListenerItem.mxml
|
||||
bbb.listenerItem.nameLbl.toolTip =このユーザーを選択し、クリックしてミュートあるいは、ミュート解除。
|
||||
bbb.listenerItem.talkImg.toolTip =会話中
|
||||
bbb.listenerItem.lockImg.toolTip =クリックしてミュートまたはミュート解除を維持
|
||||
bbb.listenerItem.muteUnmute.toolTip =このリスナーをミュートまたはミュート解除
|
||||
|
||||
# PublishWindow.mxml
|
||||
bbb.publishVideo.title =ウェブカメラをストリーム
|
||||
bbb.publishVideo.startPublishBtn.toolTip =ストリーミングを開始
|
||||
|
||||
|
||||
# DesktopPublishWindow.mxml
|
||||
bbb.desktopPublish.title =デスクトップの共有:プレゼンタのプレビュー
|
||||
bbb.desktopView.title =デスクトップの共有
|
||||
bbb.desktopView.fitToWindow =ウィンドウに合わせる
|
||||
bbb.desktopView.actualSize =実サイズで表示
|
||||
|
||||
# ToolbarButton.mxml
|
||||
bbb.toolbar.phone.toolTip =マイクを起動
|
||||
bbb.toolbar.deskshare.toolTip =デスクトップを共有
|
||||
bbb.toolbar.video.toolTip =カメラを起動
|
||||
|
||||
# HighlighterToolbar.mxml
|
||||
bbb.highlighter.toolbar.pencil =蛍光ペン
|
||||
bbb.highlighter.toolbar.ellipse =円形
|
||||
bbb.highlighter.toolbar.rectangle =四角形
|
||||
bbb.highlighter.toolbar.clear =ページをクリア
|
||||
bbb.highlighter.toolbar.undo =元に戻す
|
||||
bbb.highlighter.toolbar.color =色を選択
|
||||
bbb.highlighter.toolbar.thickness =太さを変更
|
||||
|
||||
# WhiteboardButton.mxml
|
||||
bbb.highlighter.button.toolTipShow =ホワイトボードを表示
|
||||
bbb.highlighter.button.toolTipHide =ホワイトボードを非表示
|
||||
# BigBlueButton.mxml
|
||||
bbb.pageTitle = BigBlueButton
|
||||
|
||||
# MainApplicationShell.mxml
|
||||
bbb.mainshell.locale.version=0.7
|
||||
bbb.mainshell.statusProgress.connecting = サーバーに接続中
|
||||
bbb.mainshell.statusProgress.loading = {0} つのモジュールをロード中
|
||||
bbb.mainshell.statusProgress.cannotConnectServer = サーバーに接続することができません。
|
||||
bbb.mainshell.copyrightLabel2 = (c) 2010, BigBlueButton build {0} - For more information see http://www.bigbluebutton.org/.
|
||||
bbb.mainshell.logBtn.toolTip = ログのウィンドウ
|
||||
bbb.mainshell.fullScreenBtn.toolTip = フルスクリーン
|
||||
bbb.mainshell.resetLayoutBtn.toolTip = レイアウトを戻す
|
||||
|
||||
# OldLocaleWarnWIndow.mxml
|
||||
bbb.oldlocalewindow.reminder1=あなたはBigBlueButtonの古い翻訳を持つことができます。
|
||||
bbb.oldlocalewindow.reminder2=ブラウザのキャッシュを削除してからもう一度試してください。
|
||||
bbb.oldlocalewindow.windowTitle=Warning: 古い翻訳です。
|
||||
|
||||
# LogWindow.mxml
|
||||
bbb.logwindow.title = ログウィンドウ
|
||||
bbb.logwindow.highlight = Highlight:
|
||||
bbb.logwindow.turnLoggingOff = ログをオフにします。
|
||||
bbb.logwindow.clearBtn = 削除
|
||||
bbb.logwindow.refreshBtn = 最新の情報に更新
|
||||
|
||||
# JoinFailedWindow.mxml
|
||||
bbb.joinFailedWindow.title = 接続に失敗しました。
|
||||
bbb.joinFailedWindow.okBtn = OK
|
||||
bbb.joinFailedWindow.failedInfo = 有効なセッションがありません。 ログインするためにOKにクリックしてください。
|
||||
|
||||
# MainToolbar.mxml
|
||||
bbb.mainToolbar.loggedInUserLbl = {1}: Dial: 613-520-7610 85115
|
||||
bbb.mainToolbar.helpBtn = ヘルプ
|
||||
bbb.mainToolbar.logoutBtn = ログアウト
|
||||
bbb.mainToolbar.logoutBtn.toolTip = ログアウト
|
||||
|
||||
|
||||
###### modules ######
|
||||
|
||||
# ViewersWindow.mxml
|
||||
bbb.viewers.title = ユーザー数{0} {1}
|
||||
bbb.viewers.viewersGrid.nameItemRenderer = 名前
|
||||
bbb.viewers.viewersGrid.nameItemRenderer.nameLabel.toolTip = あなたはこのユーザとしてログインします。
|
||||
bbb.viewers.viewersGrid.roleItemRenderer = 権限
|
||||
bbb.viewers.viewersGrid.statusItemRenderer = 状態
|
||||
bbb.viewers.viewersGrid.statusItemRenderer.raiseHand.toolTip = 挙手数 {0}
|
||||
bbb.viewers.viewersGrid.statusItemRenderer.streamIcon.toolTip = 視点にクリックしてください。
|
||||
bbb.viewers.viewersGrid.statusItemRenderer.presIcon.toolTip = プレゼンター
|
||||
bbb.viewers.presentBtn.toolTip = プレセンターを選択してください。
|
||||
bbb.viewers.raiseHandBtn.toolTip = クリックして、手を上げてください。
|
||||
bbb.viewers.presentBtn.label = プレセンターを変える
|
||||
bbb.viewers.kickUserBtn.toolTip = 退席させる
|
||||
|
||||
# Presentation
|
||||
## PresentationWindow.mxml
|
||||
bbb.presentation.title = プレゼンテーション
|
||||
bbb.presentation.uploadPresBtn = 資料アップロード
|
||||
bbb.presentation.uploadPresBtn.toolTip = 資料をアップロードします。
|
||||
bbb.presentation.backBtn.toolTip = 前に戻ります。
|
||||
bbb.presentation.slideNumLbl =
|
||||
bbb.presentation.forwardBtn.toolTip = 次に進みます。
|
||||
bbb.presentation.resetZoomBtn.toolTip = ズームを戻します。
|
||||
bbb.presentation.presenterNameLbl = {0} がプレゼン中です。
|
||||
bbb.presentation.maximizeRestoreBtn.toolTip = 最大化
|
||||
bbb.presentation.maximizeRestoreBtn.toolTip2 = 元に戻す
|
||||
bbb.presentation.clickToUpload = 資料をアップロード
|
||||
bbb.presentation.maxUploadFileExceededAlert = エラー: このファイルは許可されているサイズを超えています。
|
||||
|
||||
## PresentationWindowMediator.as
|
||||
bbb.presentation.presenting = {0} がプレゼン中です。
|
||||
bbb.presentation.pages = {0} / {1}
|
||||
|
||||
## FileUploadWindowMediator.as
|
||||
bbb.presentation.uploadcomplete = アップロードが終了しました。ファイルを変換中です。もうしばらくお待ち下さい。
|
||||
bbb.presentation.uploadsuccessful = アップロードは成功しました。
|
||||
bbb.presentation.uploaded = アップロードされた。
|
||||
bbb.presentation.document.supported = アップロードされた資料は対応しています。 変換を始めます。
|
||||
bbb.presentation.document.converted = オフィスドキュメントの変換に成功しました。
|
||||
bbb.presentation.error.document.convert.failed = エラー: オフィスドキュメントの変換に失敗しました。
|
||||
bbb.presentation.error.io = IO エラー: システム管理者に連絡してください。
|
||||
bbb.presentation.error.security = セキュリティ エラー: システム管理者に連絡してください。
|
||||
bbb.presentation.error.convert.format = エラー: アップロードされたファイルの拡張子を確認してください。
|
||||
bbb.presentation.error.convert.notsupported = エラー: アップロードされたドキュメントは対応していません。 対応しているファイルをアップロードしてください。
|
||||
bbb.presentation.error.convert.soffice = エラー: アップロードされた資料の変換に失敗しました。
|
||||
bbb.presentation.error.convert.nbpage = エラー: アップロードされた資料のページ数の測定に、失敗します。
|
||||
bbb.presentation.error.convert.maxnbpagereach = エラー: アップロードされた資料のページ数が多すぎます。
|
||||
bbb.presentation.error.convert.swf = アップロードされたファイルを変換中にエラーが起こりました。システム管理者に連絡してください。
|
||||
bbb.presentation.error.convert.swfimage = 画像をフラッシュ形式に変換中にエラーが起きました。: 画像ファイルが壊れていないのを確認するか、JPG・PNG形式でアップロードしてください。
|
||||
bbb.presentation.error.convert.swfpdf = PDFファイルをフラッシュ形式に変換中にエラーが起きました。: PDFファイルが壊れていないか確認してください。
|
||||
bbb.presentation.error.convert.thumbnail = サムネイル画像を作成中にエラーが起きました。システム管理者に連絡してください。
|
||||
bbb.presentation.converted = {1} 枚中 {0} のスライドを変換しました。
|
||||
bbb.presentation.extracting = {1} 枚中 {0} のスライドを抽出中。
|
||||
bbb.presentation.ok = OK
|
||||
bbb.presentation.uploadwindow.presentationfile = 資料
|
||||
bbb.presentation.uploadwindow.pdf = PDF
|
||||
bbb.presentation.uploadwindow.word = WORD
|
||||
bbb.presentation.uploadwindow.excel = EXCEL
|
||||
bbb.presentation.uploadwindow.powerpoint = POWERPOINT
|
||||
bbb.presentation.uploadwindow.image = 画像
|
||||
|
||||
## FileUploadWindow.mxml
|
||||
bbb.fileupload.title = 資料アップロード
|
||||
bbb.fileupload.fileLbl = ファイル:
|
||||
bbb.fileupload.selectBtn.toolTip = ファイルの場所
|
||||
bbb.fileupload.uploadBtn = アップロード
|
||||
bbb.fileupload.uploadBtn.toolTip = 資料アップロード
|
||||
bbb.fileupload.presentationNamesLbl = アップロードされた資料:
|
||||
bbb.fileupload.deleteBtn.toolTip = 資料を削除
|
||||
bbb.fileupload.showBtn = 表示
|
||||
bbb.fileupload.showBtn.toolTip = 選択した資料を表示します。
|
||||
bbb.fileupload.okCancelBtn = キャンセル
|
||||
bbb.fileupload.progressLbl.uploadSuccessful = アップロードは終了しました。ファイルを変換しますのでもうしばらくお待ち下さい。
|
||||
bbb.fileupload.progressBar.uploadSuccessful = アップロードは成功しました。
|
||||
bbb.fileupload.progressLbl.uploading = {0}% アップロードされました。
|
||||
bbb.fileupload.progressBar.uploading = {0}% アップロードされました。間下このみ
|
||||
bbb.fileupload.progressLbl.converting = {1} 枚中 {0} のスライドを変換しました。
|
||||
bbb.fileupload.progressBar.converting = {1} 枚中 {0} のスライドを変換しました。
|
||||
bbb.fileupload.progressLbl.extracting = {1} 枚中 {0} のスライドを抽出中。
|
||||
bbb.fileupload.progressBar.extracting = {1} 枚中 {0} のスライドを抽出中。
|
||||
bbb.fileupload.genThumbText = サムネイルを作っています..
|
||||
bbb.fileupload.progBarLbl = 進行状況:
|
||||
|
||||
# ChatWindow.mxml
|
||||
bbb.chat.title = チャット
|
||||
bbb.chat.cmpColorPicker.toolTip = カラーを選択
|
||||
bbb.chat.sendBtn = 送信
|
||||
bbb.chat.sendBtn.toolTip = チャットメッセージを送信します。
|
||||
bbb.chat.publicChatUsername = 全員に
|
||||
bbb.chat.publicMsgAwaiting = 全員向けメッセージを待っています。
|
||||
bbb.chat.publicMsgAwaiting2 = * 全員向けメッセージを待っています *
|
||||
bbb.chat.privateMsgAwaiting = 個人的メッセージを待っています。
|
||||
bbb.chat.privateMsgAwaiting2 = * 個人的メッセージを待っています *
|
||||
bbb.chat.privateChatSelect = 個人的にチャットする人を選んでください。
|
||||
bbb.chat.chatOptions = チャットオプション
|
||||
bbb.chat.fontSize = フォントサイズ
|
||||
|
||||
# ListenersWindow.mxml
|
||||
bbb.listeners.title = リスナー{0} {1}
|
||||
bbb.listeners.muteAllBtn.toolTip = 全てをミュート
|
||||
bbb.listeners.unmuteAllBtn.toolTip = 全てミュート解除
|
||||
bbb.listeners.ejectBtn.toolTip = 外す音声のユーザーを選択してください。
|
||||
bbb.listeners.ejectTooltip = リスナーを外します。
|
||||
|
||||
# ListenerItem.mxml
|
||||
bbb.listenerItem.nameLbl.toolTip = このユーザーを選択してクリックでミュート・ミュート解除できます。
|
||||
bbb.listenerItem.talkImg.toolTip = 話します。
|
||||
bbb.listenerItem.lockImg.toolTip = ミュート・ミュート解除を保持します。
|
||||
bbb.listenerItem.muteUnmute.toolTip = このリスナーをミュート・ミュート解除します。
|
||||
|
||||
# PublishWindow.mxml
|
||||
bbb.publishVideo.title = ウェブカメラ中継
|
||||
bbb.publishVideo.startPublishBtn.toolTip = 中継スタート
|
||||
|
||||
|
||||
# DesktopPublishWindow.mxml
|
||||
bbb.desktopPublish.title = デスクトップ共有: プレゼンターのプレビュー
|
||||
bbb.desktopView.title = デスクトップ共有
|
||||
bbb.desktopView.fitToWindow = ウィンドウに合わせる
|
||||
bbb.desktopView.actualSize = 実際のサイズで表示
|
||||
|
||||
# ToolbarButton.mxml
|
||||
bbb.toolbar.phone.toolTip = マイクを使う
|
||||
bbb.toolbar.deskshare.toolTip = デスクトップを共有する
|
||||
bbb.toolbar.video.toolTip = カメラを使う
|
||||
|
||||
# HighlighterToolbar.mxml
|
||||
bbb.highlighter.toolbar.pencil = ペン
|
||||
bbb.highlighter.toolbar.ellipse = 円形
|
||||
bbb.highlighter.toolbar.rectangle = 長方形
|
||||
bbb.highlighter.toolbar.clear = ページをクリア
|
||||
bbb.highlighter.toolbar.undo = 元に戻す
|
||||
bbb.highlighter.toolbar.color = 色を選ぶ
|
||||
bbb.highlighter.toolbar.thickness = 線の太さ
|
||||
|
||||
# WhiteboardButton.mxml
|
||||
bbb.highlighter.button.toolTipShow = 描画ツールを表示
|
||||
bbb.highlighter.button.toolTipHide = 描画ツールを隠す
|
@ -42,6 +42,7 @@
|
||||
uri="rtmp://HOST/video"
|
||||
dependsOn="ViewersModule"
|
||||
videoQuality="70"
|
||||
presenterShareOnly="false"
|
||||
/>
|
||||
|
||||
<module name="WhiteboardModule" url="WhiteboardModule.swf?v=VERSION"
|
||||
@ -68,5 +69,12 @@
|
||||
host="http://HOST"
|
||||
/>-->
|
||||
|
||||
<!--<module name="BreakoutModule" url="BreakoutModule.swf?v=VERSION"
|
||||
uri="rtmp://192.168.0.225/bigbluebutton"
|
||||
host="http://192.168.0.225"
|
||||
dependsOn="ViewersModule"
|
||||
salt="1708e5ecf25b7142b06f2338b4ea3cf1"
|
||||
/>-->
|
||||
|
||||
</modules>
|
||||
</config>
|
||||
|
66
bigbluebutton-client/src/BreakoutModule.mxml
Executable file
66
bigbluebutton-client/src/BreakoutModule.mxml
Executable file
@ -0,0 +1,66 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
|
||||
implements="org.bigbluebutton.common.IBigBlueButtonModule" xmlns:maps="org.bigbluebutton.modules.breakout.maps.*"
|
||||
>
|
||||
|
||||
<mx:Script>
|
||||
<![CDATA[
|
||||
import com.asfusion.mate.events.Dispatcher;
|
||||
|
||||
import org.bigbluebutton.modules.breakout.events.StartBreakoutModule;
|
||||
|
||||
private var globalDispatcher:Dispatcher;
|
||||
|
||||
private var _moduleId:String = "HighlighterModule";
|
||||
private var _moduleName:String = "Highlighter Module";
|
||||
private var _attributes:Object;
|
||||
|
||||
public function get moduleId():String {
|
||||
return _moduleId;
|
||||
}
|
||||
|
||||
public function get moduleName():String {
|
||||
return _moduleName;
|
||||
}
|
||||
|
||||
public function get uri():String {
|
||||
return _attributes.uri + "/" + _attributes.room;
|
||||
}
|
||||
|
||||
public function get username():String {
|
||||
return _attributes.username;
|
||||
}
|
||||
|
||||
public function get connection():NetConnection {
|
||||
return _attributes.connection;
|
||||
}
|
||||
|
||||
public function get mode():String {
|
||||
return _attributes.mode;
|
||||
}
|
||||
|
||||
public function get userid():Number {
|
||||
return _attributes.userid as Number;
|
||||
}
|
||||
|
||||
public function get role():String {
|
||||
return _attributes.userrole as String;
|
||||
}
|
||||
|
||||
public function start(attributes:Object):void {
|
||||
_attributes = attributes;
|
||||
globalDispatcher = new Dispatcher();
|
||||
|
||||
var e:StartBreakoutModule = new StartBreakoutModule(StartBreakoutModule.START_BREAKOUT);
|
||||
e.attributes = attributes;
|
||||
globalDispatcher.dispatchEvent(e);
|
||||
}
|
||||
|
||||
public function stop():void {
|
||||
|
||||
}
|
||||
]]>
|
||||
</mx:Script>
|
||||
|
||||
<maps:BreakoutMap id="breakoutMap"/>
|
||||
</mx:Module>
|
@ -73,6 +73,11 @@
|
||||
return Number(_attributes.videoQuality);
|
||||
}
|
||||
|
||||
public function get presenterShareOnly():Boolean{
|
||||
if (_attributes.presenterShareOnly == "true") return true;
|
||||
else return false;
|
||||
}
|
||||
|
||||
public function start(attributes:Object):void {
|
||||
LogUtil.debug("Videoconf attr: " + attributes.username);
|
||||
_attributes = attributes;
|
||||
|
@ -1,46 +0,0 @@
|
||||
package org.bigbluebutton.common
|
||||
{
|
||||
import mx.controls.Label;
|
||||
|
||||
/**
|
||||
* An extension for mx.controls.Label to truncate the text and show
|
||||
* a tooltip with the full-length content. This sub-class is meant to be
|
||||
* used when the regular truncateToFit does result in a "null" appendix
|
||||
* on the string instead of the "...". In order for this to work, I used
|
||||
* the following parameters in my mxml:
|
||||
*
|
||||
* - truncateToFit = false
|
||||
* - maxWidth = set
|
||||
* - width = set
|
||||
*
|
||||
*
|
||||
* @author Tomi Niittumäki // Feijk Industries 2010
|
||||
* @NOTE: Feel free to use! :)
|
||||
*/
|
||||
public class LabelTruncate extends Label{
|
||||
|
||||
// define the truncation indicator eg. ...(more) etc.
|
||||
private const TRUNCATION_INDICATOR:String = new String("...");
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function LabelTruncate(){
|
||||
super();
|
||||
}
|
||||
|
||||
/**
|
||||
* The overriding method, which forces the textField to truncate
|
||||
* its content with the method truncateToFit(truncationIndicator:String)
|
||||
* and then supers the tooltip to be the original full-length text.
|
||||
*/
|
||||
override protected function updateDisplayList(unscaledWidth:Number,
|
||||
unscaledHeight:Number):void{
|
||||
super.updateDisplayList(unscaledWidth, unscaledHeight);
|
||||
//trace("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!: "+textField.text);
|
||||
textField.truncateToFit(TRUNCATION_INDICATOR);
|
||||
super.toolTip = text;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -34,7 +34,6 @@ package org.bigbluebutton.main.model.modules
|
||||
import org.bigbluebutton.common.LogUtil;
|
||||
import org.bigbluebutton.common.Role;
|
||||
import org.bigbluebutton.main.events.ModuleLoadEvent;
|
||||
import org.bigbluebutton.main.events.UserServicesEvent;
|
||||
import org.bigbluebutton.main.model.ConferenceParameters;
|
||||
import org.bigbluebutton.main.model.ConfigParameters;
|
||||
|
||||
|
@ -32,6 +32,10 @@ package org.bigbluebutton.main.model.users
|
||||
|
||||
public class BBBUser
|
||||
{
|
||||
public static const MODERATOR:String = "MODERATOR";
|
||||
public static const VIEWER:String = "VIEWER";
|
||||
public static const PRESENTER:String = "PRESENTER";
|
||||
|
||||
[Bindable] public var me:Boolean = false;
|
||||
[Bindable] public var userid:Number;
|
||||
[Bindable] public var name:String;
|
||||
@ -43,6 +47,8 @@ package org.bigbluebutton.main.model.users
|
||||
[Bindable] public var room:String = "";
|
||||
[Bindable] public var authToken:String = "";
|
||||
|
||||
[Bindable] public var selected:Boolean = false;
|
||||
|
||||
private var _status:StatusCollection = new StatusCollection();
|
||||
|
||||
public function get status():ArrayCollection {
|
||||
|
@ -97,8 +97,10 @@
|
||||
win.height = rightWindowHeight;
|
||||
break;
|
||||
case POPUP:
|
||||
x = 200;
|
||||
y = 200;
|
||||
x = (Math.random() * this.width) - 250;
|
||||
y = (Math.random() * this.height) - 250;
|
||||
if (x < 250) x = 1;
|
||||
if (y < 250) y = 1;
|
||||
break;
|
||||
case DESKTOP_SHARING_VIEW:
|
||||
x = 1;
|
||||
|
@ -0,0 +1,168 @@
|
||||
package org.bigbluebutton.modules.breakout.business
|
||||
{
|
||||
import com.adobe.crypto.SHA1;
|
||||
|
||||
import flash.events.Event;
|
||||
import flash.events.NetStatusEvent;
|
||||
import flash.events.SyncEvent;
|
||||
import flash.net.NetConnection;
|
||||
import flash.net.SharedObject;
|
||||
import flash.net.URLLoader;
|
||||
import flash.net.URLRequest;
|
||||
import flash.net.URLRequestMethod;
|
||||
import flash.net.navigateToURL;
|
||||
|
||||
import mx.controls.Alert;
|
||||
import mx.events.CloseEvent;
|
||||
|
||||
import org.bigbluebutton.main.api.UserManager;
|
||||
import org.bigbluebutton.main.model.users.BBBUser;
|
||||
import org.bigbluebutton.main.model.users.Conference;
|
||||
|
||||
public class BreakoutProxy
|
||||
{
|
||||
private var urlLoader:URLLoader;
|
||||
private var request:URLRequest;
|
||||
private var meetingName:String;
|
||||
private var attendeePW:String;
|
||||
private var moderatorPW:String;
|
||||
|
||||
private var host:String;
|
||||
private var conference:String;
|
||||
private var room:String;
|
||||
private var userid:Number;
|
||||
private var username:String;
|
||||
private var userrole:String;
|
||||
private var connection:NetConnection;
|
||||
private var ncURL:String;
|
||||
private var breakoutSO:SharedObject;
|
||||
|
||||
private var usersList:Array;
|
||||
private var kickUsers:Boolean;
|
||||
|
||||
private var api_url:String;
|
||||
private var api_salt:String;
|
||||
|
||||
private var completeJoinUrl:String;
|
||||
private var newWindow:String;
|
||||
|
||||
public function BreakoutProxy()
|
||||
{
|
||||
urlLoader = new URLLoader();
|
||||
}
|
||||
|
||||
public function connect(a:Object):void{
|
||||
host = a.host as String;
|
||||
conference = a.conference as String;
|
||||
room = a.room as String;
|
||||
userid = a.userid as Number;
|
||||
username = a.username as String;
|
||||
userrole = a.userrole as String;
|
||||
connection = a.connection;
|
||||
ncURL = connection.uri;
|
||||
|
||||
api_url = host + "/bigbluebutton/api";
|
||||
api_salt = a.salt;
|
||||
|
||||
breakoutSO = SharedObject.getRemote("breakoutSO", ncURL, false);
|
||||
breakoutSO.addEventListener(SyncEvent.SYNC, sharedObjectSyncHandler);
|
||||
breakoutSO.addEventListener(NetStatusEvent.NET_STATUS, netStatusEventHandler);
|
||||
breakoutSO.client = this;
|
||||
breakoutSO.connect(connection);
|
||||
}
|
||||
|
||||
private function sharedObjectSyncHandler(e:SyncEvent):void{
|
||||
|
||||
}
|
||||
|
||||
private function netStatusEventHandler(e:NetStatusEvent):void{
|
||||
|
||||
}
|
||||
|
||||
public function createRoom(usersList:Array, kickUsers:Boolean):void{
|
||||
this.usersList = usersList;
|
||||
this.kickUsers = kickUsers;
|
||||
|
||||
meetingName = Math.random().toString();
|
||||
var createString:String = "create" + "name=" + meetingName + "&meetingID=" + meetingName + api_salt;
|
||||
var hash:String = SHA1.hash(createString);
|
||||
|
||||
var completeUrl:String = api_url + "/create?" + "name=" + meetingName + "&meetingID=" + meetingName + "&checksum=" + hash;
|
||||
request = new URLRequest(completeUrl);
|
||||
request.method = URLRequestMethod.GET;
|
||||
urlLoader.addEventListener(Event.COMPLETE, handleMeetingCreated);
|
||||
urlLoader.load(request);
|
||||
}
|
||||
|
||||
private function handleMeetingCreated(e:Event):void{
|
||||
//Alert.show("" + e.target.data);
|
||||
//var returnString:String = '<?xml version="1.0" ?>' + e.target.data;
|
||||
var xml:XML = new XML(e.target.data);
|
||||
|
||||
if (xml.returncode == "SUCCESS"){
|
||||
attendeePW = xml.attendeePW;
|
||||
moderatorPW = xml.moderatorPW;
|
||||
startRoom();
|
||||
} else if (xml.returncode == "FAILED"){
|
||||
Alert.show(xml.messageKey + ":" + xml.message);
|
||||
}
|
||||
urlLoader.removeEventListener(Event.COMPLETE, handleMeetingCreated);
|
||||
}
|
||||
|
||||
private function startRoom():void{
|
||||
if (! newRoomHasModerator(usersList)) attendeePW = moderatorPW; //If there is no moderator assigned in the new room, assign everyone as Moderator;
|
||||
breakoutSO.send("redirectUser", meetingName, moderatorPW, attendeePW, kickUsers, usersList);
|
||||
}
|
||||
|
||||
public function redirectUser(newMeetingName:String, newModeratorPW:String, newAttendeePW:String, kickUser:Boolean, userList:Array):void{
|
||||
if (!checkIfUserInList(userList)) return;
|
||||
|
||||
var password:String;
|
||||
if (userrole == "MODERATOR" ) password = newModeratorPW;
|
||||
else password = newAttendeePW;
|
||||
|
||||
var safeUsername:String = username.replace(" ", "+");
|
||||
|
||||
var joinString:String = "join" + "fullName=" + safeUsername + "&meetingID=" + newMeetingName + "&password=" + password + "&userID=" + userid + api_salt;
|
||||
var hash:String = SHA1.hash(joinString);
|
||||
|
||||
completeJoinUrl = api_url + "/join?" + "fullName=" + safeUsername + "&meetingID=" + newMeetingName +
|
||||
"&password=" + password + "&userID=" + userid + "&checksum=" + hash;
|
||||
|
||||
var logoutMessage:String;
|
||||
if (kickUser){
|
||||
newWindow = "_self";
|
||||
logoutMessage = "You are being redirected to a new meeting. Click to continue";
|
||||
}
|
||||
else if (!kickUser){
|
||||
newWindow = "_blank";
|
||||
logoutMessage = "A new meeting will open. Click to continue";
|
||||
}
|
||||
|
||||
//Alert.show(completeJoinUrl);
|
||||
|
||||
Alert.show(logoutMessage, "", 4, null, onAlertClose);
|
||||
}
|
||||
|
||||
private function onAlertClose(e:CloseEvent):void{
|
||||
request = new URLRequest(completeJoinUrl);
|
||||
navigateToURL(request, newWindow);
|
||||
}
|
||||
|
||||
private function checkIfUserInList(list:Array):Boolean{
|
||||
for (var i:int = 0; i<list.length; i++){
|
||||
if (list[i] == userid) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private function newRoomHasModerator(list:Array):Boolean{
|
||||
var conference:Conference = UserManager.getInstance().getConference();
|
||||
for (var i:int = 0; i<list.length; i++){
|
||||
var user:BBBUser = conference.getParticipant(Number(list[i]));
|
||||
if (user.role == BBBUser.MODERATOR) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package org.bigbluebutton.modules.breakout.events
|
||||
{
|
||||
import flash.events.Event;
|
||||
|
||||
public class CreateRoomEvent extends Event
|
||||
{
|
||||
public static const CREATE_ROOM:String = "Create Breakout Room";
|
||||
|
||||
public var kickUsers:Boolean;
|
||||
public var usersList:Array;
|
||||
|
||||
public function CreateRoomEvent(type:String)
|
||||
{
|
||||
super(type, true, false);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
package org.bigbluebutton.modules.breakout.events
|
||||
{
|
||||
import flash.events.Event;
|
||||
|
||||
public class StartBreakoutModule extends Event
|
||||
{
|
||||
public static const START_BREAKOUT:String = "START_BREAKOUT";
|
||||
|
||||
public var attributes:Object;
|
||||
|
||||
public function StartBreakoutModule(type:String)
|
||||
{
|
||||
super(type, true, false);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,27 @@
|
||||
package org.bigbluebutton.modules.breakout.managers
|
||||
{
|
||||
import com.asfusion.mate.events.Dispatcher;
|
||||
|
||||
import org.bigbluebutton.main.events.ToolbarButtonEvent;
|
||||
import org.bigbluebutton.modules.breakout.views.BreakoutButton;
|
||||
|
||||
public class BreakoutManager
|
||||
{
|
||||
private var dispatcher:Dispatcher;
|
||||
|
||||
private var button:BreakoutButton;
|
||||
|
||||
public function BreakoutManager()
|
||||
{
|
||||
dispatcher = new Dispatcher();
|
||||
button = new BreakoutButton;
|
||||
}
|
||||
|
||||
public function addButton(attributes:Object):void{
|
||||
if (attributes.userrole != "MODERATOR") return;
|
||||
var e:ToolbarButtonEvent = new ToolbarButtonEvent(ToolbarButtonEvent.ADD);
|
||||
e.button = button;
|
||||
dispatcher.dispatchEvent(e);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<EventMap xmlns:mx="http://www.adobe.com/2006/mxml"
|
||||
xmlns="http://mate.asfusion.com/">
|
||||
<mx:Script>
|
||||
<![CDATA[
|
||||
import mx.events.FlexEvent;
|
||||
|
||||
import org.bigbluebutton.modules.breakout.business.BreakoutProxy;
|
||||
import org.bigbluebutton.modules.breakout.events.CreateRoomEvent;
|
||||
import org.bigbluebutton.modules.breakout.events.StartBreakoutModule;
|
||||
import org.bigbluebutton.modules.breakout.managers.BreakoutManager;
|
||||
]]>
|
||||
</mx:Script>
|
||||
|
||||
<EventHandlers type="{FlexEvent.PREINITIALIZE}" >
|
||||
<ObjectBuilder generator="{BreakoutProxy}" cache="global" />
|
||||
<ObjectBuilder generator="{BreakoutManager}" cache="global" />
|
||||
</EventHandlers>
|
||||
|
||||
<EventHandlers type="{StartBreakoutModule.START_BREAKOUT}" >
|
||||
<MethodInvoker generator="{BreakoutProxy}" method="connect" arguments="{event.attributes}" />
|
||||
<MethodInvoker generator="{BreakoutManager}" method="addButton" arguments="{event.attributes}" />
|
||||
</EventHandlers>
|
||||
|
||||
<EventHandlers type="{CreateRoomEvent.CREATE_ROOM}" >
|
||||
<MethodInvoker generator="{BreakoutProxy}" method="createRoom" arguments="{[event.usersList, event.kickUsers]}" />
|
||||
</EventHandlers>
|
||||
|
||||
</EventMap>
|
@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<mx:Button xmlns:mx="http://www.adobe.com/2006/mxml" label="Breakout" click="openWindow()" >
|
||||
<mx:Script>
|
||||
<![CDATA[
|
||||
import mx.core.Application;
|
||||
import mx.events.CloseEvent;
|
||||
import mx.managers.PopUpManager;
|
||||
|
||||
private var window:BreakoutWindow;
|
||||
|
||||
private function openWindow():void{
|
||||
window = BreakoutWindow(PopUpManager.createPopUp(this, BreakoutWindow, true));
|
||||
window.x = stage.width/2 - window.width/2;
|
||||
window.y = stage.height/2 - window.height/2;
|
||||
window.addEventListener(CloseEvent.CLOSE, onWindowClose);
|
||||
}
|
||||
|
||||
private function onWindowClose(e:CloseEvent):void{
|
||||
PopUpManager.removePopUp(window);
|
||||
window = null
|
||||
}
|
||||
]]>
|
||||
</mx:Script>
|
||||
</mx:Button>
|
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" borderStyle="solid" >
|
||||
|
||||
<mx:Script>
|
||||
<![CDATA[
|
||||
private function onClick():void{
|
||||
data.selected = checkUser.selected;
|
||||
}
|
||||
]]>
|
||||
</mx:Script>
|
||||
|
||||
<mx:Label id="lblName" width="100" text="{data.name}" />
|
||||
<mx:CheckBox id="checkUser" click="onClick()" />
|
||||
</mx:HBox>
|
@ -0,0 +1,55 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="400" height="300" label="Breakout participants to a separate room:"
|
||||
creationComplete="onCreationComplete()"
|
||||
showCloseButton="true">
|
||||
|
||||
<mx:Script>
|
||||
<![CDATA[
|
||||
import com.asfusion.mate.events.Dispatcher;
|
||||
|
||||
import mx.collections.ArrayCollection;
|
||||
import mx.controls.Alert;
|
||||
import mx.events.CloseEvent;
|
||||
|
||||
import org.bigbluebutton.main.api.UserManager;
|
||||
import org.bigbluebutton.main.model.users.Conference;
|
||||
import org.bigbluebutton.modules.breakout.events.CreateRoomEvent;
|
||||
|
||||
private var dispatcher:Dispatcher;
|
||||
|
||||
private var conference:Conference;
|
||||
[Bindable] private var participants:ArrayCollection;
|
||||
|
||||
private function onCreationComplete():void{
|
||||
dispatcher = new Dispatcher();
|
||||
conference = UserManager.getInstance().getConference();
|
||||
participants = conference.users;
|
||||
}
|
||||
|
||||
private function onClick():void{
|
||||
var e:CreateRoomEvent = new CreateRoomEvent(CreateRoomEvent.CREATE_ROOM);
|
||||
e.kickUsers = checkKick.selected;
|
||||
e.usersList = getUsersToBreakout();
|
||||
dispatcher.dispatchEvent(e);
|
||||
|
||||
dispatchEvent(new CloseEvent(CloseEvent.CLOSE));
|
||||
}
|
||||
|
||||
private function getUsersToBreakout():Array{
|
||||
var a:ArrayCollection = new ArrayCollection();
|
||||
for (var i:int = 0; i<participants.length; i++){
|
||||
if (participants.getItemAt(i).selected) a.addItem(participants[i].userid);
|
||||
}
|
||||
return a.toArray();
|
||||
}
|
||||
]]>
|
||||
</mx:Script>
|
||||
|
||||
<mx:List width="100%" height="100%" id="breakoutList" itemRenderer="org.bigbluebutton.modules.breakout.views.BreakoutItem"
|
||||
dataProvider="{participants}" allowMultipleSelection="true" />
|
||||
|
||||
<mx:ControlBar>
|
||||
<mx:Button id="btnCreate" click="onClick()" label="Create Room" />
|
||||
<mx:CheckBox id="checkKick" label="Kick selected users from current meeting" />
|
||||
</mx:ControlBar>
|
||||
</mx:TitleWindow>
|
@ -38,7 +38,7 @@
|
||||
]]>
|
||||
</mx:Script>
|
||||
|
||||
<common:LabelTruncate maxWidth="50" width="50" truncateToFit="false" id="lblName" text="{data.name}" visible="{!(data.name == data.lastSenderName)}" color="gray" />
|
||||
<mx:Label maxWidth="50" width="50" truncateToFit="true" id="lblName" text="{data.name}" visible="{!(data.name == data.lastSenderName)}" color="gray" />
|
||||
<mx:Text id="txtMessage" htmlText="{rolledOver ? data.senderText : data.text}" link="onLinkClick(event)" color="{data.color}"
|
||||
rollOver="onRollOver()" rollOut="onRollOut()" width="100%" />
|
||||
<mx:Label id="lblTime" text="{rolledOver ? data.senderTime : data.time}" visible="{!(data.lastTime == data.time) || !(data.name == data.lastSenderName)}" color="gray" />
|
||||
|
@ -34,8 +34,11 @@
|
||||
|
||||
import mx.controls.Alert;
|
||||
import mx.core.Application;
|
||||
import mx.resources.ResourceBundle;
|
||||
import mx.resources.ResourceManager;
|
||||
|
||||
import org.bigbluebutton.main.views.MainCanvas;
|
||||
import org.bigbluebutton.util.i18n.ResourceUtil;
|
||||
|
||||
private var _xPosition:int;
|
||||
private var _yPosition:int;
|
||||
@ -50,6 +53,11 @@
|
||||
/* Set up full screen handler. */
|
||||
Application.application.stage.addEventListener(FullScreenEvent.FULL_SCREEN, fullScreenHandler);
|
||||
dispState = Application.application.stage.displayState;
|
||||
|
||||
/*var r:ResourceBundle = new ResourceBundle("fr_FR", "core");
|
||||
r.content["truncationIndicator"] = '...';
|
||||
resourceManager.addResourceBundle(r);
|
||||
resourceManager.update();*/
|
||||
}
|
||||
|
||||
private function fullScreenHandler(evt:FullScreenEvent):void {
|
||||
@ -63,7 +71,12 @@
|
||||
chatView.txtMsg.enabled = true;
|
||||
chatView.sendBtn.enabled = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override protected function resourcesChanged():void{
|
||||
super.resourcesChanged();
|
||||
this.title = ResourceUtil.getInstance().getString("bbb.chat.title");
|
||||
}
|
||||
|
||||
]]>
|
||||
</mx:Script>
|
||||
|
@ -236,6 +236,11 @@
|
||||
closeWindow();
|
||||
}
|
||||
|
||||
override protected function resourcesChanged():void{
|
||||
super.resourcesChanged();
|
||||
this.title = ResourceUtil.getInstance().getString('bbb.desktopPublish.title');
|
||||
}
|
||||
|
||||
]]>
|
||||
</mx:Script>
|
||||
<mx:Image id="cursorImg" visible="false" source="@Embed('../../assets/images/cursor4.png')"/>
|
||||
|
@ -296,6 +296,11 @@
|
||||
dispatchEvent(new ViewWindowEvent(ViewWindowEvent.CLOSE));
|
||||
}
|
||||
|
||||
override protected function resourcesChanged():void{
|
||||
super.resourcesChanged();
|
||||
this.title = ResourceUtil.getInstance().getString('bbb.desktopView.title');
|
||||
}
|
||||
|
||||
]]>
|
||||
</mx:Script>
|
||||
<mx:Move id="cursorMove" target="{cursorImg}"/>
|
||||
|
@ -160,6 +160,14 @@
|
||||
moderator = e.moderator;
|
||||
showCloseButton = false;
|
||||
}
|
||||
|
||||
override protected function resourcesChanged():void{
|
||||
super.resourcesChanged();
|
||||
if (listeners.length > 4)
|
||||
windowTitle = ResourceUtil.getInstance().getString('bbb.listeners.title', [":", listeners.length]) ;
|
||||
else
|
||||
windowTitle = ResourceUtil.getInstance().getString('bbb.listeners.title', ["", ""]) ;
|
||||
}
|
||||
]]>
|
||||
</mx:Script>
|
||||
<mx:TileList id="listenersList" height="100%" width="100%" itemClick="listenerSelectEvent(event);"
|
||||
|
@ -532,6 +532,11 @@
|
||||
public function getSlideView():SlideView{
|
||||
return this.slideView;
|
||||
}
|
||||
|
||||
override protected function resourcesChanged():void{
|
||||
super.resourcesChanged();
|
||||
if ((slideView != null) && (!slideView.visible)) this.title = ResourceUtil.getInstance().getString('bbb.presentation.title');
|
||||
}
|
||||
|
||||
]]>
|
||||
</mx:Script>
|
||||
|
@ -114,7 +114,7 @@ package org.bigbluebutton.modules.videoconf.business
|
||||
ns.publish(e.stream);
|
||||
}
|
||||
|
||||
public function stopBroadcasting(e:StopBroadcastEvent):void{
|
||||
public function stopBroadcasting():void{
|
||||
if (ns != null) {
|
||||
ns.attachCamera(null);
|
||||
ns.close();
|
||||
|
@ -27,6 +27,7 @@
|
||||
|
||||
import org.bigbluebutton.common.LogUtil;
|
||||
import org.bigbluebutton.main.events.BBBEvent;
|
||||
import org.bigbluebutton.main.events.MadePresenterEvent;
|
||||
import org.bigbluebutton.main.events.OpenWindowEvent;
|
||||
import org.bigbluebutton.main.events.ToolbarButtonEvent;
|
||||
import org.bigbluebutton.main.model.users.events.BroadcastStartedEvent;
|
||||
@ -74,7 +75,8 @@
|
||||
}
|
||||
|
||||
public function addToolbarButton():void{
|
||||
button = new ToolbarButton();
|
||||
button = new ToolbarButton();
|
||||
button.isPresenter = !module.presenterShareOnly;
|
||||
var event:ToolbarButtonEvent = new ToolbarButtonEvent(ToolbarButtonEvent.ADD);
|
||||
event.button = button;
|
||||
globalDispatcher.dispatchEvent(event);
|
||||
@ -101,15 +103,16 @@
|
||||
}
|
||||
|
||||
private function stopPublishing(e:StopBroadcastEvent):void{
|
||||
proxy.stopBroadcasting(e);
|
||||
proxy.stopBroadcasting();
|
||||
proxy = null;
|
||||
proxy = new VideoProxy(module.uri);
|
||||
|
||||
var broadcastEvent:BroadcastStoppedEvent = new BroadcastStoppedEvent();
|
||||
broadcastEvent.stream = e.stream;
|
||||
broadcastEvent.stream = publishWindow.streamName;
|
||||
broadcastEvent.userid = module.userid;
|
||||
globalDispatcher.dispatchEvent(broadcastEvent);
|
||||
|
||||
//Make toolbar button visible again
|
||||
//Make toolbar button enabled again
|
||||
button.show();
|
||||
}
|
||||
|
||||
@ -118,6 +121,19 @@
|
||||
globalDispatcher.dispatchEvent(new CloseAllWindowsEvent());
|
||||
}
|
||||
|
||||
private function switchToPresenter():void{
|
||||
if (module.presenterShareOnly){
|
||||
button.isPresenter = true;
|
||||
}
|
||||
}
|
||||
|
||||
private function switchToViewer():void{
|
||||
if (module.presenterShareOnly){
|
||||
button.isPresenter = false;
|
||||
if (publishWindow != null) publishWindow.close();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
]]>
|
||||
</mx:Script>
|
||||
@ -150,4 +166,12 @@
|
||||
<InlineInvoker method="viewCamera" arguments="{[event.userid, event.stream, event.viewedName]}" />
|
||||
</EventHandlers>
|
||||
|
||||
<EventHandlers type="{MadePresenterEvent.SWITCH_TO_PRESENTER_MODE}" >
|
||||
<InlineInvoker method="switchToPresenter" />
|
||||
</EventHandlers>
|
||||
|
||||
<EventHandlers type="{MadePresenterEvent.SWITCH_TO_VIEWER_MODE}">
|
||||
<InlineInvoker method="switchToViewer" />
|
||||
</EventHandlers>
|
||||
|
||||
</EventMap>
|
||||
|
@ -25,7 +25,7 @@
|
||||
implements="org.bigbluebutton.common.IBbbModuleWindow"
|
||||
creationComplete="init()"
|
||||
width="{camWidth + 6}" height="{camHeight + 73}"
|
||||
title="Stream webcam"
|
||||
title="{ResourceUtil.getInstance().getString('bbb.publishVideo.title')}"
|
||||
backgroundImage="{bbbLogo}"
|
||||
resizable="false"
|
||||
xmlns:mate="http://mate.asfusion.com/">
|
||||
@ -42,6 +42,7 @@
|
||||
import org.bigbluebutton.modules.videoconf.events.CloseAllWindowsEvent;
|
||||
import org.bigbluebutton.modules.videoconf.events.StartBroadcastEvent;
|
||||
import org.bigbluebutton.modules.videoconf.events.StopBroadcastEvent;
|
||||
import org.bigbluebutton.util.i18n.ResourceUtil;
|
||||
|
||||
private var images:Images = new Images();
|
||||
[Bindable] public var camIcon:Class = images.control_play;
|
||||
@ -159,6 +160,11 @@
|
||||
}
|
||||
}
|
||||
|
||||
override protected function resourcesChanged():void{
|
||||
super.resourcesChanged();
|
||||
this.title = ResourceUtil.getInstance().getString('bbb.publishVideo.title');
|
||||
}
|
||||
|
||||
]]>
|
||||
</mx:Script>
|
||||
|
||||
|
10
bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/views/ToolbarButton.mxml
Normal file → Executable file
10
bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/views/ToolbarButton.mxml
Normal file → Executable file
@ -20,14 +20,20 @@
|
||||
$Id: $
|
||||
-->
|
||||
|
||||
<mx:Button xmlns:mx="http://www.adobe.com/2006/mxml" icon="{camIcon}" click="openPublishWindow()" creationComplete="init()" toolTip="{ResourceUtil.getInstance().getString('bbb.toolbar.video.toolTip')}">
|
||||
<mx:Button xmlns:mx="http://www.adobe.com/2006/mxml" icon="{camIcon}"
|
||||
click="openPublishWindow()" creationComplete="init()"
|
||||
toolTip="{ResourceUtil.getInstance().getString('bbb.toolbar.video.toolTip')}"
|
||||
visible="{isPresenter}">
|
||||
<mx:Script>
|
||||
<![CDATA[
|
||||
import com.asfusion.mate.events.Dispatcher;
|
||||
|
||||
import org.bigbluebutton.common.Images;
|
||||
import org.bigbluebutton.modules.videoconf.events.OpenPublishWindowEvent;
|
||||
import com.asfusion.mate.events.Dispatcher;
|
||||
import org.bigbluebutton.util.i18n.ResourceUtil;
|
||||
|
||||
[Bindable] public var isPresenter:Boolean;
|
||||
|
||||
private var images:Images = new Images();
|
||||
[Bindable] public var camIcon:Class = images.webcam;
|
||||
|
||||
|
@ -28,7 +28,6 @@
|
||||
|
||||
<mx:Script>
|
||||
<![CDATA[
|
||||
import org.bigbluebutton.common.LogUtil;
|
||||
import com.asfusion.mate.events.Dispatcher;
|
||||
|
||||
import flexlib.mdi.events.MDIWindowEvent;
|
||||
@ -36,6 +35,7 @@
|
||||
import mx.controls.Alert;
|
||||
import mx.core.UIComponent;
|
||||
|
||||
import org.bigbluebutton.common.LogUtil;
|
||||
import org.bigbluebutton.main.events.BBBEvent;
|
||||
import org.bigbluebutton.main.views.MainCanvas;
|
||||
import org.bigbluebutton.modules.videoconf.events.CloseAllWindowsEvent;
|
||||
@ -71,12 +71,11 @@
|
||||
globalDispatcher = new Dispatcher();
|
||||
}
|
||||
|
||||
private function onCloseEvent(event:MDIWindowEvent):void {
|
||||
private function onCloseEvent(event:MDIWindowEvent = null):void {
|
||||
LogUtil.debug("ViewWindow closing " + stream);
|
||||
var bbbEvt:BBBEvent = new BBBEvent("ViewVideoCloseEvent");
|
||||
bbbEvt.message = stream;
|
||||
dispatchEvent(bbbEvt);
|
||||
|
||||
}
|
||||
|
||||
public function startVideo(connection:NetConnection, stream:String):void{
|
||||
@ -147,6 +146,7 @@
|
||||
|
||||
override public function close(event:MouseEvent=null):void{
|
||||
ns.close();
|
||||
//onCloseEvent();
|
||||
super.close(event);
|
||||
}
|
||||
|
||||
|
@ -22,8 +22,7 @@
|
||||
|
||||
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml"
|
||||
xmlns:mate="http://mate.asfusion.com/"
|
||||
verticalScrollPolicy="off" horizontalScrollPolicy="off"
|
||||
creationComplete="onCreationComplete()">
|
||||
verticalScrollPolicy="off" horizontalScrollPolicy="off">
|
||||
|
||||
<mate:Listener type="ViewVideoCloseEvent" method="onViewVideoCloseEvent"/>
|
||||
|
||||
@ -31,6 +30,8 @@
|
||||
<![CDATA[
|
||||
import com.asfusion.mate.events.Dispatcher;
|
||||
|
||||
import mx.controls.Alert;
|
||||
|
||||
import org.bigbluebutton.common.Images;
|
||||
import org.bigbluebutton.common.LogUtil;
|
||||
import org.bigbluebutton.main.events.BBBEvent;
|
||||
@ -39,11 +40,6 @@
|
||||
import org.bigbluebutton.util.i18n.ResourceUtil;
|
||||
|
||||
private var images:Images = new Images();
|
||||
private var streamName:String = "";
|
||||
|
||||
private function onCreationComplete():void{
|
||||
streamName = data.streamName;
|
||||
}
|
||||
|
||||
private function viewCamera():void {
|
||||
LogUtil.debug("ViewersModule - sending camera view request for stream" + data.streamName);
|
||||
@ -54,9 +50,8 @@
|
||||
|
||||
private function onViewVideoCloseEvent(event:BBBEvent):void {
|
||||
LogUtil.debug("ViewWindoClosing event: " + event.message);
|
||||
if (streamName == event.message) {
|
||||
if (data.streamName == event.message) {
|
||||
streamIcon.enabled = true;
|
||||
streamName = "";
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -54,7 +54,7 @@
|
||||
import org.bigbluebutton.util.i18n.ResourceUtil;
|
||||
|
||||
[Bindable]
|
||||
private var windowTitle:String = ResourceUtil.getInstance().getString('bbb.viewers.title',["", ""]) ;
|
||||
private var windowTitle:String = ResourceUtil.getInstance().getString('bbb.viewers.title',["", ""]);
|
||||
|
||||
[Bindable]
|
||||
public var participants:ArrayCollection = new ArrayCollection();
|
||||
@ -138,6 +138,11 @@
|
||||
dispatchEvent(new KickUserEvent(viewersGrid.selectedItem.userid));
|
||||
}
|
||||
}
|
||||
|
||||
override protected function resourcesChanged():void{
|
||||
super.resourcesChanged();
|
||||
this.title = ResourceUtil.getInstance().getString('bbb.viewers.title',["", ""]);
|
||||
}
|
||||
|
||||
]]>
|
||||
</mx:Script>
|
||||
|
@ -38,9 +38,6 @@
|
||||
|
||||
GENTOO=$(uname -r | grep gentoo | cut -d- -f2);
|
||||
TOMCAT=""
|
||||
OLDEVENTIP=$(cat /opt/freeswitch/conf/autoload_configs/event_socket.conf.xml | grep 'name="listen-ip"' | cut -d\" -f4 | awk '{print $1}');
|
||||
|
||||
|
||||
|
||||
get_platform() {
|
||||
|
||||
@ -323,19 +320,24 @@ while [ $# -gt 0 ]; do
|
||||
fi
|
||||
shift; shift
|
||||
continue
|
||||
fi
|
||||
fi
|
||||
|
||||
#
|
||||
# all other parameters requires at least 1 argument
|
||||
#
|
||||
|
||||
if [ $# -lt 2 ]; then
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
#if [ $# -lt 2 ]; then
|
||||
#usage
|
||||
# exit 1
|
||||
#fi
|
||||
|
||||
if [ "$1" = "-setip" -o "$1" = "--setip" ]; then
|
||||
HOST="${2}"
|
||||
if test -z "${2}"; then
|
||||
echo "HOST IP=`ifconfig | grep -m 1 'inet addr:' | cut -d: -f2 | awk '{print $1}'`"
|
||||
#echo "PORT=`echo ${2}|cut -d: -f2`"
|
||||
fi
|
||||
|
||||
if echo $HOST|grep -q ":"; then
|
||||
HOST=`echo ${2}|cut -d: -f1`
|
||||
PORT=`echo ${2}|cut -d: -f2`
|
||||
@ -346,18 +348,36 @@ while [ $# -gt 0 ]; do
|
||||
|
||||
if [ "$1" = "--setup-dev" -o "$1" = "-setup-dev" ]; then
|
||||
SETUPDEV="${2}"
|
||||
if test -z "${2}"; then
|
||||
usage;
|
||||
fi
|
||||
shift; shift
|
||||
continue
|
||||
fi
|
||||
|
||||
if [ "$1" = "--conference" -o "$1" = "-conference" ]; then
|
||||
CONFERENCE="${2}"
|
||||
confapp=`cat /usr/share/red5/webapps/bigbluebutton/WEB-INF/bigbluebutton.properties | grep 'asterisk.application' | cut -d= -f2`;
|
||||
freeapp=`cat /usr/share/red5/webapps/bigbluebutton/WEB-INF/red5-web.xml | grep "<import resource" | cut -d\" -f2 | cut -d. -f1 | tail -n1`;
|
||||
if test -z "${CONFERENCE}"; then
|
||||
if [ $confapp == "meetme" ]; then
|
||||
echo "Current conference application is $confapp";
|
||||
elif [ $confapp == "konference" ] && [ $freeapp == "bbb-voice-asterisk" ]; then
|
||||
echo "Current conference application is $confapp";
|
||||
elif [ $freeapp == "bbb-voice-freeswitch" ]; then
|
||||
echo "Current conference application is freeswitch";
|
||||
fi
|
||||
fi
|
||||
shift; shift
|
||||
continue
|
||||
fi
|
||||
|
||||
if [ "$1" = "--salt" -o "$1" = "-salt" -o "$1" = "--set-salt" ]; then
|
||||
SALT="${2}"
|
||||
CSALT=`cat /var/lib/tomcat6/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties | grep securitySalt | cut -d= -f2`;
|
||||
if test -z "${SALT}"; then
|
||||
echo Current Salt retrieved from bigbluebutton.properties: $CSALT;
|
||||
fi
|
||||
shift; shift
|
||||
continue
|
||||
fi
|
||||
@ -962,6 +982,10 @@ if [ $CHECK ]; then
|
||||
MEM=`free -m | grep Mem | awk '{ print $2}'`
|
||||
echo "Memory: $MEM MB"
|
||||
|
||||
if [ -e /etc/lsb-release ]; then
|
||||
cat /etc/lsb-release;
|
||||
fi
|
||||
|
||||
echo
|
||||
echo "/var/www/bigbluebutton/client/conf/config.xml:"
|
||||
IP=$(cat /var/www/bigbluebutton/client/conf/config.xml | sed -n '/porttest /{s/.*host="//;s/".*//;p}')
|
||||
@ -1279,7 +1303,7 @@ if [ $CONFERENCE ]; then
|
||||
# update $RED5_DIR/webapps/bigbluebutton/WEB-INF/bigbluebutton.properties
|
||||
#
|
||||
# test this as a hack to check if the ip stays in listen-ip for event-conf.xml
|
||||
EVENTIP=$(cat /opt/freeswitch/conf/autoload_configs/event_socket.conf.xml | grep 'name="listen-ip"' | cut -d\" -f4 | awk '{print $1}')
|
||||
EVENTIP=$(sudo cat /opt/freeswitch/conf/autoload_configs/event_socket.conf.xml | grep 'name="listen-ip"' | cut -d\" -f4 | awk '{print $1}')
|
||||
|
||||
sudo sed -i "s/asterisk.application[ ]*=.*/asterisk.application=meetme/g" \
|
||||
$RED5_DIR/webapps/bigbluebutton/WEB-INF/bigbluebutton.properties
|
||||
|
Loading…
Reference in New Issue
Block a user