Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
F
freeswitch
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
张华
freeswitch
Commits
6c197ae2
提交
6c197ae2
authored
3月 23, 2016
作者:
Davide Colombo
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
FS-8972 - [verto_communicator] add i18n using angular-translate and static file loader
上级
ad72c7f5
隐藏空白字符变更
内嵌
并排
正在显示
23 个修改的文件
包含
504 行增加
和
191 行删除
+504
-191
Gruntfile.js
html5/verto/verto_communicator/Gruntfile.js
+4
-1
bower.json
html5/verto/verto_communicator/bower.json
+3
-1
verto.css
html5/verto/verto_communicator/src/css/verto.css
+4
-0
index.html
html5/verto/verto_communicator/src/index.html
+2
-0
locale-en.json
html5/verto/verto_communicator/src/locales/locale-en.json
+143
-0
locale-it.json
html5/verto/verto_communicator/src/locales/locale-it.json
+144
-0
chat.html
html5/verto/verto_communicator/src/partials/chat.html
+39
-39
contributors.html
...5/verto/verto_communicator/src/partials/contributors.html
+1
-1
dialpad.html
html5/verto/verto_communicator/src/partials/dialpad.html
+8
-8
login.html
html5/verto/verto_communicator/src/partials/login.html
+21
-21
menu.html
html5/verto/verto_communicator/src/partials/menu.html
+13
-13
modal_logininfo.html
...erto/verto_communicator/src/partials/modal_logininfo.html
+7
-7
preview.html
html5/verto/verto_communicator/src/partials/preview.html
+5
-5
settings.html
html5/verto/verto_communicator/src/partials/settings.html
+26
-26
splash_screen.html
.../verto/verto_communicator/src/partials/splash_screen.html
+2
-2
video_call.html
html5/verto/verto_communicator/src/partials/video_call.html
+15
-15
splash_screen.js
...communicator/src/storageService/services/splash_screen.js
+18
-19
vertoApp.module.js
.../verto/verto_communicator/src/vertoApp/vertoApp.module.js
+18
-2
ChatController.js
...icator/src/vertoControllers/controllers/ChatController.js
+9
-9
InCallController.js
...ator/src/vertoControllers/controllers/InCallController.js
+4
-4
MainController.js
...icator/src/vertoControllers/controllers/MainController.js
+11
-11
PreviewController.js
...tor/src/vertoControllers/controllers/PreviewController.js
+4
-4
SettingsController.js
...or/src/vertoControllers/controllers/SettingsController.js
+3
-3
没有找到文件。
html5/verto/verto_communicator/Gruntfile.js
浏览文件 @
6c197ae2
...
@@ -120,6 +120,7 @@ module.exports = function (grunt) {
...
@@ -120,6 +120,7 @@ module.exports = function (grunt) {
'<%= config.app %>/**/*.html'
,
'<%= config.app %>/**/*.html'
,
'.tmp/styles/{,*/}*.css'
,
'.tmp/styles/{,*/}*.css'
,
'<%= config.app %>/images/{,*/}*'
,
'<%= config.app %>/images/{,*/}*'
,
'<%= config.app %>/locales/{,*/}*'
,
'.tmp/**/*.js'
,
'.tmp/**/*.js'
,
'<%= config.app %>/**/*.js'
'<%= config.app %>/**/*.js'
],
],
...
@@ -150,6 +151,7 @@ module.exports = function (grunt) {
...
@@ -150,6 +151,7 @@ module.exports = function (grunt) {
],
],
routes
:
{
routes
:
{
'/partials'
:
'src/partials'
,
'/partials'
:
'src/partials'
,
'/locales'
:
'src/locales'
,
'/config.json'
:
'src/config.json'
,
'/config.json'
:
'src/config.json'
,
'/contributors.txt'
:
'src/contributors.txt'
,
'/contributors.txt'
:
'src/contributors.txt'
,
'/bower_components'
:
'./bower_components'
,
'/bower_components'
:
'./bower_components'
,
...
@@ -309,7 +311,8 @@ module.exports = function (grunt) {
...
@@ -309,7 +311,8 @@ module.exports = function (grunt) {
'img/*.png'
,
'img/*.png'
,
'images/{,*/}*.{webp}'
,
'images/{,*/}*.{webp}'
,
'css/fonts/{,*/}*.*'
,
'css/fonts/{,*/}*.*'
,
'sounds/*.*'
'sounds/*.*'
,
'locales/*.*'
]
]
},
{
},
{
expand
:
true
,
expand
:
true
,
...
...
html5/verto/verto_communicator/bower.json
浏览文件 @
6c197ae2
...
@@ -43,7 +43,9 @@
...
@@ -43,7 +43,9 @@
"jquery-json"
:
"~2.5.1"
,
"jquery-json"
:
"~2.5.1"
,
"datatables"
:
"~1.10.8"
,
"datatables"
:
"~1.10.8"
,
"angular-bootstrap"
:
"~0.14.3"
,
"angular-bootstrap"
:
"~0.14.3"
,
"bootstrap-material-design"
:
"~0.3.0"
"bootstrap-material-design"
:
"~0.3.0"
,
"angular-translate"
:
"~2.10.0"
,
"angular-translate-loader-static-files"
:
"~2.10.0"
},
},
"resolutions"
:
{
"resolutions"
:
{
"angular"
:
"~1.3.15"
,
"angular"
:
"~1.3.15"
,
...
...
html5/verto/verto_communicator/src/css/verto.css
浏览文件 @
6c197ae2
...
@@ -1728,6 +1728,10 @@ body:-webkit-full-screen #incall .video-footer {
...
@@ -1728,6 +1728,10 @@ body:-webkit-full-screen #incall .video-footer {
color
:
white
;
color
:
white
;
}
}
#settings
.checkbox
.checkbox-material
.check
{
margin-right
:
10px
;
}
#settings
.btn
{
#settings
.btn
{
color
:
rgba
(
0
,
10
,
66
,
0.84
);
color
:
rgba
(
0
,
10
,
66
,
0.84
);
background-color
:
#E8E8E8
;
background-color
:
#E8E8E8
;
...
...
html5/verto/verto_communicator/src/index.html
浏览文件 @
6c197ae2
...
@@ -97,6 +97,8 @@
...
@@ -97,6 +97,8 @@
<script
src=
"bower_components/datatables/media/js/jquery.dataTables.js"
></script>
<script
src=
"bower_components/datatables/media/js/jquery.dataTables.js"
></script>
<script
src=
"bower_components/bootstrap-material-design/dist/js/material.js"
></script>
<script
src=
"bower_components/bootstrap-material-design/dist/js/material.js"
></script>
<script
src=
"bower_components/bootstrap-material-design/dist/js/ripples.js"
></script>
<script
src=
"bower_components/bootstrap-material-design/dist/js/ripples.js"
></script>
<script
src=
"bower_components/angular-translate/angular-translate.js"
></script>
<script
src=
"bower_components/angular-translate-loader-static-files/angular-translate-loader-static-files.js"
></script>
<!-- endbower -->
<!-- endbower -->
<!-- endbuild -->
<!-- endbuild -->
...
...
html5/verto/verto_communicator/src/locales/locale-en.json
0 → 100644
浏览文件 @
6c197ae2
{
"TITLE_ACTIVE_CALL"
:
"Oops, Active Call in Course."
,
"MESSAGE_ACTIVE_CALL_HANGUP"
:
"It seems that you are in a call. Do you want to hang up?"
,
"MESSAGE_ACTIVE_CALL_BACK"
:
"It seems you were in a call before leaving the last time. Wanna go back to that?"
,
"TITLE_INCOMING_CALL"
:
"Incoming Call"
,
"MESSAGE_INCOMING_CALL"
:
"from "
,
"MESSAGE_NO_HANGUP_CALL"
:
"There is no call to hangup."
,
"MESSAGE_ENTER_FILENAME"
:
"Please, enter filename"
,
"TITLE_ENABLE_VIDEO"
:
"Would you like to activate video for this call?"
,
"MESSAGE_ENABLE_VIDEO"
:
"Video will be active during the next calls."
,
"TITLE_INSERT_BANNER"
:
"Please insert the banner text"
,
"TITLE_INSERT_CANVAS_ID"
:
"Please insert the Canvas Id"
,
"TITLE_INSERT_LAYER"
:
"Please insert the Layer"
,
"TITLE_TRANSFER"
:
"Transfer party?"
,
"MESSAGE_TRANSFER"
:
"To what destination would you like to transfer this call?"
,
"LABEL_TRANSFER"
:
"Destination"
,
"MESSAGE_DISPLAY_SETTINGS"
:
"Can't display preview settings during a call"
,
"BUTTON_END_CALL"
:
"End Call"
,
"BUTTON_CLOSE"
:
"Close"
,
"MESSAGE_PLAY"
:
"Play"
,
"MESSAGE_STOP"
:
"Stop"
,
"MESSAGE_RECORD"
:
"Record"
,
"MESSAGE_STOP_RECORD"
:
"Stop Record"
,
"MESSAGE_SNAPSHOT"
:
"Snapshot"
,
"MESSAGE_VIDEO_MODE"
:
"Video Mode"
,
"MESSAGE_MUTE_MIC"
:
"(un)Mute Mic"
,
"MESSAGE_MUTE_VIDEO"
:
"(un)Mute Video"
,
"MESSAGE_FULLSCREEN"
:
"Toggle Fullscreen Mode"
,
"MESSAGE_SCREENSHARE"
:
"Screenshare"
,
"MESSAGE_OPEN_CLOSE_CHAT"
:
"Open/Close Chat"
,
"MESSAGE_SPEAKER"
:
"Speaker"
,
"MESSAGE_POPUP"
:
"Popup"
,
"CHAT_TITLE_MEMBERS"
:
"Members"
,
"CHAT_TITLE"
:
"Chat"
,
"CHAT_NO_MEMBERS"
:
"There are no members to show."
,
"CHAT_GENERAL"
:
"General"
,
"CHAT_TITLE_KICK"
:
"Kick"
,
"CHAT_KICK"
:
"Kick"
,
"CHAT_TITLE_VIDEO_FLOOR"
:
"Video Floor"
,
"CHAT_FLOOR"
:
"Floor"
,
"CHAT_TITLE_TRANSFER"
:
"Transfer"
,
"CHAT_TRANSFER"
:
"Transfer"
,
"CHAT_BANNER"
:
"Banner"
,
"CHAT_TITLE_SET"
:
"Set"
,
"CHAT_SET"
:
"Set"
,
"CHAT_TITLE_RESET"
:
"Reset"
,
"CHAT_RESET"
:
"Reset"
,
"CHAT_CANVAS"
:
"Canvas"
,
"CHAT_CANVAS_IN"
:
"Canvas In"
,
"CHAT_CANVAS_OUT"
:
"Canvas Out"
,
"CHAT_PREV"
:
"Prev"
,
"CHAT_NEXT"
:
"Next"
,
"CHAT_LAYER"
:
"Layer"
,
"CHAT_AUDIO_VIDEO"
:
"Audio/Video"
,
"CHAT_TITLE_MUTE_UNMUTE_MIC"
:
"Mute/Unmute Mic"
,
"CHAT_MUTE_MIC"
:
"Mute"
,
"CHAT_UNMUTE_MIC"
:
"Unmute"
,
"CHAT_TITLE_MUTE_UNMUTE_MIC"
:
"Mute/Unmute Video"
,
"CHAT_NO_MESSAGES"
:
"There are no messages to show."
,
"CHAT_SEND_MESSAGE"
:
"Send"
,
"CHAT_TYPE_MESSAGE"
:
"Type your message here..."
,
"TITLE_CONTRIBUTORS"
:
"Contributors"
,
"MESSAGE_CONNECTION_UNTRUSTED"
:
"This Connection is Untrusted."
,
"MESSAGE_TOGGLE_NAVIGATION"
:
"Toggle navigation"
,
"BANDWIDTH_INFO"
:
"Bandwidth Info"
,
"BANDWIDTH_INFO_INCOMING"
:
"Incoming:"
,
"BANDWIDTH_INFO_OUTGOING"
:
"Outgoing:"
,
"BANDWIDTH_INFO_VIDEO_RES"
:
"Video Resolution:"
,
"IN_CALL"
:
"In Call:"
,
"LAST_CALL"
:
"Last Call:"
,
"OPEN_NEW_WINDOW"
:
"Open New Window"
,
"CHANGE_LOGIN_INFO"
:
"Change Login Information"
,
"LOGOUT"
:
"Logout"
,
"ABOUT"
:
"About"
,
"HELP"
:
"Help"
,
"CONTRIBUTORS"
:
"Contributors"
,
"TITLE_PREVIEW_SETTINGS"
:
"Setup your camera and microphone settings"
,
"CAMERA__SETTNGS"
:
"Camera:"
,
"MIC_SETTINGS"
:
"Microphone:"
,
"SAVE"
:
"Save"
,
"LOADING"
:
"Loading"
,
"ERRORS"
:
"Errors"
,
"CALLING_TO"
:
"Calling to "
,
"CANCELLING"
:
"Cancelling..."
,
"DETERMINING_SPEED"
:
"Determining your speed..."
,
"CALL_HISTORY"
:
"Call History"
,
"CLEAR_CALL_HISTORY"
:
"Clear History"
,
"NO_CALL_HISTORY"
:
"No history calls."
,
"ENTER_EXTENSION"
:
"Enter an extension"
,
"CALL_EXTENSION"
:
"Call Extension"
,
"LOGIN"
:
"Login"
,
"LOGIN_INFORMATION"
:
"Login Information"
,
"SAVE_LOGIN_INFORMATION"
:
"Save Login Information"
,
"INVALID_LOGIN_FIELDS"
:
"Verify the fields below and try again."
,
"NAME"
:
"Name"
,
"YOUR_NAME"
:
"Your name"
,
"EMAIL"
:
"Email"
,
"YOUR_EMAIL"
:
"Your email"
,
"USER"
:
"User"
,
"PASSWORD"
:
"Password"
,
"CALLER_ID"
:
"Caller ID"
,
"HOSTNAME"
:
"Hostname"
,
"WEBSOCKET_URL"
:
"Websocket URL"
,
"SETTINGS"
:
"Settings"
,
"DEVICE_SETTINGS"
:
"Device Settings"
,
"SHARE_DEVICE"
:
"Share device"
,
"SPEAKER"
:
"Speaker:"
,
"SPEAKER_FEATURE"
:
"Your browser doesn't seem to support this feature"
,
"PREVIEW_SETTINGS"
:
"Preview Settings"
,
"REFRESH_DEVICE_LIST"
:
"Refresh device list"
,
"GENERAL_SETTINGS"
:
"General settings:"
,
"USE_VIDEO"
:
"Use Video"
,
"USE_STEREO_AUDIO"
:
"Stereo Audio"
,
"USE_STUN"
:
"Use STUN"
,
"SCALE_VIDEO"
:
"Scale Remote Video To Match Camera Resolution"
,
"ASK_BEFORE_RECOVER"
:
"Ask before recovering call"
,
"BEST_FRAME_RATE"
:
"Best frame rate:"
,
"AUDIO_SETTINGS"
:
"Audio settings:"
,
"ECHO_CANCEL"
:
"Echo Cancellation"
,
"NOISE_SUPPRESSION"
:
"Noise Suppression"
,
"HIGHPASS_FILTER"
:
"Highpass Filter"
,
"VIDEO_SETTINGS"
:
"Video settings:"
,
"REMOTE_ENCODER"
:
"Dedicated Remote Encoder enabled."
,
"AUTO_SPEED_RES"
:
"Automatically determine speed and resolution settings"
,
"RECHECK_BANDWIDTH"
:
"Recheck bandwidth before each outgoing call"
,
"CHECK_NETWORK_SPEED"
:
"Check Network Speed"
,
"VIDEO_QUALITY"
:
"Video quality:"
,
"MAX_INCOMING_BANDWIDTH"
:
"Max incoming bandwidth:"
,
"MAX_OUTGOING_BANDWIDTH"
:
"Max outgoing bandwidth:"
,
"FACTORY_RESET"
:
"Factory reset"
,
"SAVE_DEVICE_SETTINGS"
:
"Save Device Settings"
,
"BROWSER_COMPATIBILITY"
:
"Checking browser compatibility."
,
"REFRESH_MEDIA_DEVICES"
:
"Refresh Media Devices."
,
"BROWSER_WITHOUT_WEBRTC"
:
"Error: browser doesn't support WebRTC."
,
"CHECK_PERMISSION_MEDIA"
:
"Checking media permissions"
,
"CHECK_PROVISIONING_CONF"
:
"Provisioning configuration."
,
"CHECK_LOGIN"
:
"Checking login."
,
"CHECK_CONNECTION_SPEED"
:
"Check Connection Speed."
,
"ERROR_PERMISSION_MEDIA"
:
"Error: Media Permission Denied"
,
"ERROR_PROVISIONING_CONF"
:
"Error: Provision failed."
,
"PLEASE_WAIT"
:
"Please wait..."
}
html5/verto/verto_communicator/src/locales/locale-it.json
0 → 100644
浏览文件 @
6c197ae2
{
"TITLE_ACTIVE_CALL"
:
"Oops, Chiamata in corso."
,
"MESSAGE_ACTIVE_CALL_HANGUP"
:
"Sembra che tu sia in conversazione. Vuoi chiudere la chiamata?"
,
"MESSAGE_ACTIVE_CALL_BACK"
:
"Sembra che eri in conversazione prima di abbandonare la sessione l'ultima volta. Vuoi tornare in quella conversazione?"
,
"TITLE_INCOMING_CALL"
:
"Chiamata in arrivo"
,
"MESSAGE_INCOMING_CALL"
:
"da "
,
"MESSAGE_NO_HANGUP_CALL"
:
"Non ci sono chiamate da chiudere."
,
"MESSAGE_ENTER_FILENAME"
:
"Per favore, inserisci il nome del file"
,
"TITLE_ENABLE_VIDEO"
:
"Vuoi attivare il video per questa chiamata?"
,
"MESSAGE_ENABLE_VIDEO"
:
"Il video verrà attivato a partire dalla prossima chiamata."
,
"TITLE_INSERT_BANNER"
:
"Per favore inserisci il testo del banner"
,
"TITLE_INSERT_CANVAS_ID"
:
"Please insert the Canvas Id"
,
"TITLE_INSERT_LAYER"
:
"Please insert the Layer"
,
"TITLE_TRANSFER"
:
"Transfer party?"
,
"MESSAGE_TRANSFER"
:
"To what destination would you like to transfer this call?"
,
"LABEL_TRANSFER"
:
"Destinazione"
,
"MESSAGE_DISPLAY_SETTINGS"
:
"Non è possibile mostrare le configurazioni video durante una chiamata"
,
"BUTTON_END_CALL"
:
"Termina la chiamata"
,
"BUTTON_CLOSE"
:
"Chiudi"
,
"MESSAGE_PLAY"
:
"Riproduci"
,
"MESSAGE_STOP"
:
"Ferma"
,
"MESSAGE_RECORD"
:
"Registra"
,
"MESSAGE_STOP_RECORD"
:
"Ferma la registrazione"
,
"MESSAGE_SNAPSHOT"
:
"Snapshot"
,
"MESSAGE_VIDEO_MODE"
:
"Video Mode"
,
"MESSAGE_MUTE_MIC"
:
"(un)Mute Mic"
,
"MESSAGE_MUTE_VIDEO"
:
"(un)Mute Video"
,
"MESSAGE_FULLSCREEN"
:
"Abilita/Disabilita schermo intero"
,
"MESSAGE_SCREENSHARE"
:
"Condividi lo schermo"
,
"MESSAGE_OPEN_CLOSE_CHAT"
:
"Apri/Chiudi Chat"
,
"MESSAGE_SPEAKER"
:
"Speaker"
,
"MESSAGE_POPUP"
:
"Popup"
,
"CHAT_TITLE_MEMBERS"
:
"Membri"
,
"CHAT_TITLE"
:
"Chat"
,
"CHAT_NO_MEMBERS"
:
"Non ci sono membri da mostrare."
,
"CHAT_GENERAL"
:
"Generale"
,
"CHAT_TITLE_KICK"
:
"Kick"
,
"CHAT_KICK"
:
"Kick"
,
"CHAT_TITLE_VIDEO_FLOOR"
:
"Video Floor"
,
"CHAT_FLOOR"
:
"Floor"
,
"CHAT_TITLE_TRASFER"
:
"Transfer"
,
"CHAT_TRANSFER"
:
"Transfer"
,
"CHAT_BANNER"
:
"Banner"
,
"CHAT_TITLE_SET"
:
"Set"
,
"CHAT_SET"
:
"Set"
,
"CHAT_TITLE_RESET"
:
"Reset"
,
"CHAT_RESET"
:
"Reset"
,
"CHAT_RESET"
:
"Reset"
,
"CHAT_CANVAS"
:
"Canvas"
,
"CHAT_CANVAS_IN"
:
"Canvas In"
,
"CHAT_CANVAS_OUT"
:
"Canvas Out"
,
"CHAT_PREV"
:
"Prev"
,
"CHAT_NEXT"
:
"Next"
,
"CHAT_LAYER"
:
"Layer"
,
"CHAT_AUDIO_VIDEO"
:
"Audio/Video"
,
"CHAT_TITLE_MUTE_UNMUTE_MIC"
:
"Mute/Unmute Mic"
,
"CHAT_MUTE_MIC"
:
"Mute"
,
"CHAT_UNMUTE_MIC"
:
"Unmute"
,
"CHAT_TITLE_MUTE_UNMUTE_MIC"
:
"Mute/Unmute Video"
,
"CHAT_NO_MESSAGES"
:
"Non ci sono messaggi da mostrare."
,
"CHAT_SEND_MESSAGE"
:
"Invia"
,
"CHAT_TYPE_MESSAGE"
:
"Scrivi il tuo messaggio qui..."
,
"TITLE_CONTRIBUTORS"
:
"Contributori"
,
"MESSAGE_CONNECTION_UNTRUSTED"
:
"Questa connessione non è sicura."
,
"MESSAGE_TOGGLE_NAVIGATION"
:
"Abilita/Disabilita navigazione"
,
"BANDWIDTH_INFO"
:
"Informazioni sulla larghezza di banda"
,
"BANDWIDTH_INFO_INCOMING"
:
"Ingresso:"
,
"BANDWIDTH_INFO_OUTGOING"
:
"Uscita:"
,
"BANDWIDTH_INFO_VIDEO_RES"
:
"Risoluzione Video:"
,
"IN_CALL"
:
"In chiamata: "
,
"LAST_CALL"
:
"Ultima chiamata: "
,
"OPEN_NEW_WINDOW"
:
"Apri Una Nuova Finestra"
,
"CHANGE_LOGIN_INFO"
:
"Cambia le informazioni di login"
,
"LOGOUT"
:
"Logout"
,
"ABOUT"
:
"About"
,
"HELP"
:
"Aiuto"
,
"CONTRIBUTORS"
:
"Contributori"
,
"TITLE_PREVIEW_SETTINGS"
:
"Configura le impostazioni della tua video camera e del tuo microfono"
,
"CAMERA_SETTINGS"
:
"Video Camera:"
,
"MIC_SETTINGS"
:
"Microfono:"
,
"SAVE"
:
"Salva"
,
"LOADING"
:
"Caricamento"
,
"ERRORS"
:
"Errori"
,
"CALLING_TO"
:
"Chiamata verso "
,
"CANCELLING"
:
"In annullamento"
,
"DETERMINING_SPEED"
:
"Calcolo della tua velocità..."
,
"CALL_HISTORY"
:
"Cronologia Chiamate"
,
"CLEAR_CALL_HISTORY"
:
"Rimuovi la cronologia"
,
"NO_CALL_HISTORY"
:
"Nessuna chiamata nella cronologia."
,
"ENTER_EXTENSION"
:
"Inserisci un numero"
,
"CALL_EXTENSION"
:
"Chiama il numero"
,
"LOGIN"
:
"Login"
,
"LOGIN_INFORMATION"
:
"Informazioni di login"
,
"SAVE_LOGIN_INFORMATION"
:
"Salva le informazioni di login"
,
"INVALID_LOGIN_FIELDS"
:
"Verifica i campi e prova di nuovo."
,
"NAME"
:
"Nome"
,
"YOUR_NAME"
:
"Il tuo nome"
,
"EMAIL"
:
"Email"
,
"YOUR_EMAIL"
:
"Il tuo indirizzo email"
,
"USER"
:
"Utente"
,
"PASSWORD"
:
"Password"
,
"CALLER_ID"
:
"Caller ID"
,
"HOSTNAME"
:
"Hostname"
,
"WEBSOCKET_URL"
:
"Websocket URL"
,
"SETTINGS"
:
"Impostazioni"
,
"DEVICE_SETTINGS"
:
"Configurazione dei dispositivi"
,
"SHARE_DEVICE"
:
"Dispositivo in condivisione"
,
"SPEAKER"
:
"Altoparlante:"
,
"SPEAKER_FEATURE"
:
"Il tuo browser sembra non supportare questa funzionalità"
,
"PREVIEW_SETTINGS"
:
"Anteprima delle configurazioni"
,
"REFRESH_DEVICE_LIST"
:
"Aggiorna la lista dei dispositivi"
,
"GENERAL_SETTINGS"
:
"Configurazioni generali:"
,
"USE_VIDEO"
:
"Abilita Video"
,
"USE_STEREO_AUDIO"
:
"Abilita Audio Stereo"
,
"USE_STUN"
:
"Abilita STUN"
,
"SCALE_VIDEO"
:
"Scala il video remoto con la risoluzione della video camera"
,
"ASK_BEFORE_RECOVER"
:
"Chiedi prima di recuperare una chiamata"
,
"BEST_FRAME_RATE"
:
"Miglior frame rate:"
,
"AUDIO_SETTINGS"
:
"Impostazioni audio:"
,
"ECHO_CANCEL"
:
"Cancellatore d'eco"
,
"NOISE_SUPPRESSION"
:
"Soppressione del rumore"
,
"HIGHPASS_FILTER"
:
"Highpass Filter"
,
"VIDEO_SETTINGS"
:
"Impostazioni video:"
,
"REMOTE_ENCODER"
:
"Abilita codificatore remoto dedicato."
,
"AUTO_SPEED_RES"
:
"Rileva in modo automatico la velocità e le impostazioni"
,
"RECHECK_BANDWIDTH"
:
"Controlla la larghezza di banda per ogni chiamata in uscita"
,
"CHECK_NETWORK_SPEED"
:
"Controllo della velocità di rete"
,
"VIDEO_QUALITY"
:
"Qualità video:"
,
"MAX_INCOMING_BANDWIDTH"
:
"Massima larghezza di banda in ingresso:"
,
"MAX_OUTGOING_BANDWIDTH"
:
"Massima larghezza di banda in uscita:"
,
"FACTORY_RESET"
:
"Reset ai valori di default"
,
"SAVE_DEVICE_SETTINGS"
:
"Salva le impostazioni dei dispositivi"
,
"BROWSER_COMPATIBILITY"
:
"Verifica compatibilità browser."
,
"REFRESH_MEDIA_DEVICES"
:
"Aggiornamento dei dispositivi."
,
"BROWSER_WITHOUT_WEBRTC"
:
"Errore: il browser non supporta WebRTC."
,
"CHECK_PERMISSION_MEDIA"
:
"Verifica permessi dispositivi"
,
"CHECK_PROVISIONING_CONF"
:
"Recupero della configurazione."
,
"CHECK_LOGIN"
:
"Verifica del login."
,
"CHECK_CONNECTION_SPEED"
:
"Verifica velocità connessione."
,
"ERROR_PERMISSION_MEDIA"
:
"Errore: permesso sui dispositivi negato"
,
"ERROR_PROVISIONING_CONF"
:
"Errore: Recupero configurazione fallito."
,
"PLEASE_WAIT"
:
"Attendere prego..."
}
html5/verto/verto_communicator/src/partials/chat.html
浏览文件 @
6c197ae2
...
@@ -2,19 +2,19 @@
...
@@ -2,19 +2,19 @@
<ul
class=
"nav nav-tabs"
role=
"tablist"
ng-init=
"activePane = 'members'"
>
<ul
class=
"nav nav-tabs"
role=
"tablist"
ng-init=
"activePane = 'members'"
>
<li
role=
"presentation"
ng-class=
"{'active': activePane == 'members'}"
>
<li
role=
"presentation"
ng-class=
"{'active': activePane == 'members'}"
>
<a
ng-click=
"activePane = 'members'"
href=
""
>
<a
ng-click=
"activePane = 'members'"
href=
""
>
Members
{{ 'CHAT_TITLE_MEMBERS' | translate}}
</a>
</a>
</li>
</li>
<li
role=
"presentation"
ng-class=
"{'active': activePane == 'chat'}"
>
<li
role=
"presentation"
ng-class=
"{'active': activePane == 'chat'}"
>
<a
ng-click=
"activePane = 'chat'"
href=
""
>
<a
ng-click=
"activePane = 'chat'"
href=
""
>
Chat
{{ 'CHAT_TITLE' | translate }}
</a>
</a>
</li>
</li>
</ul>
</ul>
<div
class=
"chat-members"
ng-show=
"activePane == 'members'"
>
<div
class=
"chat-members"
ng-show=
"activePane == 'members'"
>
<div
ng-show=
"!members.length"
>
<div
ng-show=
"!members.length"
>
<p
class=
"text-center text-muted"
>
There are no members to show.
</p>
<p
class=
"text-center text-muted"
>
{{ 'CHAT_NO_MEMBERS' | translate }}
</p>
</div>
</div>
<div
ng-repeat=
"member in members"
class=
"chat-member-item"
ng-class=
"{ opened: $index == openId }"
>
<div
ng-repeat=
"member in members"
class=
"chat-member-item"
ng-class=
"{ opened: $index == openId }"
>
...
@@ -56,33 +56,33 @@
...
@@ -56,33 +56,33 @@
<div
class=
"admin-controls"
ng-if=
"verto.data.confRole == 'moderator'"
ng-show=
"$index == $parent.openId"
>
<div
class=
"admin-controls"
ng-if=
"verto.data.confRole == 'moderator'"
ng-show=
"$index == $parent.openId"
>
<div>
<div>
<div
class=
"col-md-6 ctrl-section"
>
<div
class=
"col-md-6 ctrl-section"
>
<h3>
General
</h3>
<h3>
{{ 'CHAT_GENERAL' | translate }}
</h3>
<div
class=
"group btn-group-justified"
>
<div
class=
"group btn-group-justified"
>
<a
href=
""
class=
"btn btn-xs"
ng-click=
"confKick(member.id)"
title=
"
Kick
"
>
<a
href=
""
class=
"btn btn-xs"
ng-click=
"confKick(member.id)"
title=
"
{{ 'CHAT_TITLE_KICK' | translate }}
"
>
<i
class=
"mdi-fw mdi-av-not-interested"
></i>
<i
class=
"mdi-fw mdi-av-not-interested"
></i>
Kick
{{ 'CHAT_KICK' | translate }}
</a>
</a>
<a
href=
""
class=
"btn btn-xs"
ng-click=
"confVideoFloor(member.id)"
title=
"
Video Floor
"
>
<a
href=
""
class=
"btn btn-xs"
ng-click=
"confVideoFloor(member.id)"
title=
"
{{ 'CHAT_TITLE_VIDEO_FLOOR' | translate }}
"
>
<i
class=
"mdi-fw mdi-action-aspect-ratio"
></i>
<i
class=
"mdi-fw mdi-action-aspect-ratio"
></i>
Floor
{{ 'CHAT_FLOOR' | translate }}
</a>
</a>
<a
href=
""
class=
"btn btn-xs"
ng-click=
"confTransfer(member.id)"
title=
"
Transfer
"
>
<a
href=
""
class=
"btn btn-xs"
ng-click=
"confTransfer(member.id)"
title=
"
{{ 'CHAT_TITLE_TRANSFER' | translate }}
"
>
<i
class=
"mdi-fw mdi-communication-call-made"
></i>
<i
class=
"mdi-fw mdi-communication-call-made"
></i>
<span
style=
"margin-left: -9px"
>
Transfer
</span>
<span
style=
"margin-left: -9px"
>
{{ 'CHAT_TRANSFER' | translate }}
</span>
</a>
</a>
</div>
</div>
</div>
</div>
<div
class=
"col-md-6 ctrl-section"
>
<div
class=
"col-md-6 ctrl-section"
>
<h3>
Banner
</h3>
<h3>
{{ 'CHAT_BANNER' | translate }}
</h3>
<div
class=
"group btn-group-justified"
>
<div
class=
"group btn-group-justified"
>
<a
href=
""
class=
"btn btn-xs"
ng-click=
"confBanner(member.id)"
title=
"
Set
"
>
<a
href=
""
class=
"btn btn-xs"
ng-click=
"confBanner(member.id)"
title=
"
{{ 'CHAT_TITLE_SET' | translate }}
"
>
<i
class=
"mdi-fw mdi-toggle-radio-button-on"
></i>
<i
class=
"mdi-fw mdi-toggle-radio-button-on"
></i>
Set
{{ 'CHAT_SET' | translate }}
</a>
</a>
<a
href=
""
class=
"btn btn-xs"
ng-click=
"confResetBanner(member.id)"
title=
"
Reset
"
>
<a
href=
""
class=
"btn btn-xs"
ng-click=
"confResetBanner(member.id)"
title=
"
{{ 'CHAT_TITLE_RESET' | translate }}
"
>
<i
class=
"mdi-fw mdi-content-clear"
></i>
<i
class=
"mdi-fw mdi-content-clear"
></i>
Reset
{{ 'CHAT_RESET' | translate }}
</a>
</a>
</div>
</div>
</div>
</div>
...
@@ -90,61 +90,61 @@
...
@@ -90,61 +90,61 @@
<div>
<div>
<div
class=
"col-md-6 ctrl-section"
ng-if=
"conf.canvasCount > 1"
>
<div
class=
"col-md-6 ctrl-section"
ng-if=
"conf.canvasCount > 1"
>
<h3>
Canvas
</h3>
<h3>
{{ 'CHAT_CANVAS' | translate }}
</h3>
<div
class=
"group btn-group-justified"
>
<div
class=
"group btn-group-justified"
>
<a
href=
""
class=
"btn btn-xs"
ng-click=
"confCanvasIn(member.id, 'prev')"
title=
"
Canvas In
"
>
<a
href=
""
class=
"btn btn-xs"
ng-click=
"confCanvasIn(member.id, 'prev')"
title=
"
{{ 'CHAT_CANVAS_IN' | translate }}
"
>
<i
class=
"mdi-fw mdi-action-open-in-browser"
></i>
<i
class=
"mdi-fw mdi-action-open-in-browser"
></i>
Prev
{{ 'CHAT_PREV' | translate }}
</a>
</a>
<a
href=
""
class=
"btn btn-xs"
ng-click=
"confCanvasIn(member.id)"
title=
"
Canvas In
"
>
<a
href=
""
class=
"btn btn-xs"
ng-click=
"confCanvasIn(member.id)"
title=
"
{{ 'CHAT_CANVAS_IN' | translate }}
"
>
<i
class=
"mdi-fw mdi-action-open-in-browser"
></i>
<i
class=
"mdi-fw mdi-action-open-in-browser"
></i>
Id
Id
</a>
</a>
<a
href=
""
class=
"btn btn-xs"
ng-click=
"confCanvasIn(member.id, 'next')"
title=
"
Canvas In
"
>
<a
href=
""
class=
"btn btn-xs"
ng-click=
"confCanvasIn(member.id, 'next')"
title=
"
{{ 'CHAT_CANVAS_IN' | translate }}
"
>
<i
class=
"mdi-fw mdi-action-open-in-browser"
></i>
<i
class=
"mdi-fw mdi-action-open-in-browser"
></i>
Next
{{ 'CHAT_NEXT' | translate }}
</a>
</a>
</div>
</div>
<div
class=
"group btn-group-justified"
>
<div
class=
"group btn-group-justified"
>
<a
href=
""
class=
"btn btn-xs"
ng-click=
"confCanvasOut(member.id, 'prev')"
title=
"
Canvas Out
"
>
<a
href=
""
class=
"btn btn-xs"
ng-click=
"confCanvasOut(member.id, 'prev')"
title=
"
{{ 'CHAT_CANVAS_OUT' | translate }}
"
>
<i
class=
"mdi-fw mdi-fw mdi-action-system-update-tv"
></i>
<i
class=
"mdi-fw mdi-fw mdi-action-system-update-tv"
></i>
Prev
{{ 'CHAT_PREV' | translate }}
</a>
</a>
<a
href=
""
class=
"btn btn-xs"
ng-click=
"confCanvasOut(member.id)"
title=
"
Canvas Out
"
>
<a
href=
""
class=
"btn btn-xs"
ng-click=
"confCanvasOut(member.id)"
title=
"
{{ 'CHAT_CANVAS_OUT' | translate }}
"
>
<i
class=
"mdi-fw mdi-fw mdi-action-system-update-tv"
></i>
<i
class=
"mdi-fw mdi-fw mdi-action-system-update-tv"
></i>
Id
Id
</a>
</a>
<a
href=
""
class=
"btn btn-xs"
ng-click=
"confCanvasOut(member.id, 'next')"
title=
"
Canvas Out
"
>
<a
href=
""
class=
"btn btn-xs"
ng-click=
"confCanvasOut(member.id, 'next')"
title=
"
{{ 'CHAT_CANVAS_OUT' | translate }}
"
>
<i
class=
"mdi-fw mdi-fw mdi-action-system-update-tv"
></i>
<i
class=
"mdi-fw mdi-fw mdi-action-system-update-tv"
></i>
Next
{{ 'CHAT_NEXT' | translate }}
</a>
</a>
</div>
</div>
<div
class=
"group btn-group-justified"
>
<div
class=
"group btn-group-justified"
>
<a
href=
""
class=
"btn btn-xs"
ng-click=
"confLayer(member.id, 'prev')"
title=
"
Layer
"
>
<a
href=
""
class=
"btn btn-xs"
ng-click=
"confLayer(member.id, 'prev')"
title=
"
{{ 'CHAT_LAYER' | translate }}
"
>
<i
class=
"mdi-fw mdi-action-view-carousel"
></i>
<i
class=
"mdi-fw mdi-action-view-carousel"
></i>
Prev
{{ 'CHAT_PREV' | translate }}
</a>
</a>
<a
href=
""
class=
"btn btn-xs"
ng-click=
"confLayer(member.id)"
title=
"
Layer
"
>
<a
href=
""
class=
"btn btn-xs"
ng-click=
"confLayer(member.id)"
title=
"
{{ 'CHAT_LAYER' | translate }}
"
>
<i
class=
"mdi-fw mdi-action-view-carousel"
></i>
<i
class=
"mdi-fw mdi-action-view-carousel"
></i>
Id
Id
</a>
</a>
<a
href=
""
class=
"btn btn-xs"
ng-click=
"confLayer(member.id, 'next')"
title=
"
Layer
"
>
<a
href=
""
class=
"btn btn-xs"
ng-click=
"confLayer(member.id, 'next')"
title=
"
{{ 'CHAT_LAYER' | translate }}
"
>
<i
class=
"mdi-fw mdi-action-view-carousel"
></i>
<i
class=
"mdi-fw mdi-action-view-carousel"
></i>
Next
{{ 'CHAT_NEXT' | translate }}
</a>
</a>
</div>
</div>
</div>
</div>
<div
class=
"col-md-6 ctrl-section"
>
<div
class=
"col-md-6 ctrl-section"
>
<h3>
Audio/Video
</h3>
<h3>
{{ 'CHAT_AUDIO_VIDEO' | translate }}
</h3>
<div
class=
"group btn-group-justified"
>
<div
class=
"group btn-group-justified"
>
<a
href=
""
class=
"btn btn-xs"
ng-click=
"confMuteMic(member.id)"
title=
"
Mute/Unmute Mic
"
>
<a
href=
""
class=
"btn btn-xs"
ng-click=
"confMuteMic(member.id)"
title=
"
{{ 'CHAT_TITLE_MUTE_UNMUTE_MIC' | translate }}
"
>
<i
class=
"mdi-fw"
ng-class=
"member.status.audio.muted ? 'mdi-av-mic-off' : 'mdi-av-mic'"
></i>
<i
class=
"mdi-fw"
ng-class=
"member.status.audio.muted ? 'mdi-av-mic-off' : 'mdi-av-mic'"
></i>
{{ member.status.audio.muted ? '
Unmute' : 'Mute'
}}
{{ member.status.audio.muted ? '
CHAT_UNMUTE_MIC' : 'CHAT_MUTE_MIC' | translate
}}
</a>
</a>
<a
href=
""
ng-class=
"{ 'disabled': !member.status.video }"
class=
"btn btn-xs"
ng-click=
"confMuteVideo(member.id)"
title=
"
Mute/Unmute Video
"
>
<a
href=
""
ng-class=
"{ 'disabled': !member.status.video }"
class=
"btn btn-xs"
ng-click=
"confMuteVideo(member.id)"
title=
"
{{ 'CHAT_TITLE_MUTE_UNMUTE_VIDEO' | translate }}
"
>
<i
class=
"mdi-fw"
ng-class=
"member.status.video.muted ? 'mdi-av-videocam-off' : 'mdi-av-videocam'"
></i>
<i
class=
"mdi-fw"
ng-class=
"member.status.video.muted ? 'mdi-av-videocam-off' : 'mdi-av-videocam'"
></i>
{{ member.status.video.muted ? '
Unmute' : 'Mute'
}}
{{ member.status.video.muted ? '
CHAT_UNMUTE_MIC' : 'CHAT_MUTE_MIC' | translate
}}
</a>
</a>
</div>
</div>
<div
class=
"group btn-group-justified"
>
<div
class=
"group btn-group-justified"
>
...
@@ -176,7 +176,7 @@
...
@@ -176,7 +176,7 @@
<div
class=
"chat-history"
ng-show=
"activePane == 'chat'"
>
<div
class=
"chat-history"
ng-show=
"activePane == 'chat'"
>
<div
class=
"chat-messages"
>
<div
class=
"chat-messages"
>
<div
class=
"chat-message"
ng-show=
"!messages.length"
>
<div
class=
"chat-message"
ng-show=
"!messages.length"
>
<p
class=
"text-center text-muted"
>
There are no messages to show.
</p>
<p
class=
"text-center text-muted"
>
{{ 'CHAT_NO_MESSAGES' | translate }}
</p>
</div>
</div>
<div
class=
"chat-message"
ng-repeat=
"message in messages"
title=
"Sent at {{ message.created_at|date }}."
>
<div
class=
"chat-message"
ng-repeat=
"message in messages"
title=
"Sent at {{ message.created_at|date }}."
>
<div
class=
"chat-message-metadata"
>
{{ message.from }}:
</div>
<div
class=
"chat-message-metadata"
>
{{ message.from }}:
</div>
...
@@ -188,9 +188,9 @@
...
@@ -188,9 +188,9 @@
<div
class=
"chat-message-input"
>
<div
class=
"chat-message-input"
>
<form
ng-submit=
"send()"
>
<form
ng-submit=
"send()"
>
<div
class=
"chat-message-input-group"
>
<div
class=
"chat-message-input-group"
>
<textarea
ng-model=
"message"
ng-keydown=
"($event.keyCode == 13 && $event.shiftKey !== true) && send($event)"
required=
"required"
class=
"form-control input-sm"
placeholder=
"
Type your message here...
"
></textarea>
<textarea
ng-model=
"message"
ng-keydown=
"($event.keyCode == 13 && $event.shiftKey !== true) && send($event)"
required=
"required"
class=
"form-control input-sm"
placeholder=
"
{{ 'CHAT_TYPE_MESSAGE' | translate }}
"
></textarea>
<button
class=
"btn btn-success btn-sm"
type=
"submit"
>
<button
class=
"btn btn-success btn-sm"
type=
"submit"
>
Send
{{ 'CHAT_SEND_MESSAGE' | translate }}
<span
class=
"mdi-navigation-arrow-forward chat-message-input-group-icon-button"
></span>
<span
class=
"mdi-navigation-arrow-forward chat-message-input-group-icon-button"
></span>
</button>
</button>
</div>
</div>
...
...
html5/verto/verto_communicator/src/partials/contributors.html
浏览文件 @
6c197ae2
<div
class=
"modal-header"
>
<div
class=
"modal-header"
>
<h3
class=
"modal-title"
>
Contributors
</h3>
<h3
class=
"modal-title"
>
{{ 'TITLE_CONTRIBUTORS' | translate}}
</h3>
</div>
</div>
<div
class=
"modal-body"
>
<div
class=
"modal-body"
>
<ul
class=
"contributors"
>
<ul
class=
"contributors"
>
...
...
html5/verto/verto_communicator/src/partials/dialpad.html
浏览文件 @
6c197ae2
<div
ng-show=
"loading"
>
<div
ng-show=
"loading"
>
<h2
ng-show=
"cancelled"
style=
"margin-top: 4%;"
class=
"text-center"
>
Cancelling...
</h2>
<h2
ng-show=
"cancelled"
style=
"margin-top: 4%;"
class=
"text-center"
>
{{ 'CANCELLING' | translate}}
</h2>
<span
ng-show=
"!cancelled"
>
<span
ng-show=
"!cancelled"
>
<h2
style=
"margin-top: 4%;"
class=
"text-center"
>
Determining your speed...
</h2>
<h2
style=
"margin-top: 4%;"
class=
"text-center"
>
{{ 'DETERMINING_SPEED' | translate}}
</h2>
<h4
style=
"margin-top: 4%;"
class=
"text-center"
>
<h4
style=
"margin-top: 4%;"
class=
"text-center"
>
Calling to
{{ dialpadNumber }}...
{{ 'CALLING_TO' | translate}}
{{ dialpadNumber }}...
<a
class=
"btn btn-sm btn-raised btn-warning"
ng-click=
"cancel()"
>
<a
class=
"btn btn-sm btn-raised btn-warning"
ng-click=
"cancel()"
>
Cancel
<div
class=
"ripple-container"
></div>
Cancel
<div
class=
"ripple-container"
></div>
</a>
</a>
...
@@ -19,7 +19,7 @@
...
@@ -19,7 +19,7 @@
<div
class=
"panel-heading"
>
<div
class=
"panel-heading"
>
<div
class=
"panel-title"
>
<div
class=
"panel-title"
>
<i
class=
"mdi-navigation-arrow-back back-icon"
ng-click=
"viewCallsList()"
ng-if=
"call_list"
></i>
<i
class=
"mdi-navigation-arrow-back back-icon"
ng-click=
"viewCallsList()"
ng-if=
"call_list"
></i>
<span
ng-if=
"!call_list"
>
Call History
</span>
<span
ng-if=
"!call_list"
>
{{ 'CALL_HISTORY' | translate}}
</span>
<span
ng-if=
"call_list"
>
{{ call_list[0].number }}
</span>
<span
ng-if=
"call_list"
>
{{ call_list[0].number }}
</span>
<span
class=
"pull-right pull-right-margin dropdown"
>
<span
class=
"pull-right pull-right-margin dropdown"
>
...
@@ -27,14 +27,14 @@
...
@@ -27,14 +27,14 @@
<i
class=
"mdi-navigation-more-vert"
></i>
<i
class=
"mdi-navigation-more-vert"
></i>
</a>
</a>
<ul
class=
"dropdown-menu"
>
<ul
class=
"dropdown-menu"
>
<li><a
href=
""
ng-click=
"clearCallHistory()"
>
Clear History
</a></li>
<li><a
href=
""
ng-click=
"clearCallHistory()"
>
{{ 'CLEAR_CALL_HISTORY' | translate}}
</a></li>
</ul>
</ul>
</span>
</span>
</div>
</div>
</div>
</div>
<ul
class=
"call-history"
>
<ul
class=
"call-history"
>
<div
ng-if=
"!has_history"
>
<div
ng-if=
"!has_history"
>
<p
class=
"text-center text-muted"
>
No history calls.
</p>
<p
class=
"text-center text-muted"
>
{{ 'NO_CALL_HISTORY' | translate}}
</p>
</div>
</div>
<li
ng-repeat=
"number in history_control track by number"
ng-if=
"!call_list"
>
<li
ng-repeat=
"number in history_control track by number"
ng-if=
"!call_list"
>
...
@@ -72,7 +72,7 @@
...
@@ -72,7 +72,7 @@
<i
class=
"mdi-action-settings-phone"
></i>
<i
class=
"mdi-action-settings-phone"
></i>
</a>
</a>
</span>
</span>
<input
name=
"dialpadnumber"
type=
"text"
class=
"form-control text-center"
placeholder=
"
Enter an extension
"
ng-model=
"dialpadNumber"
autofocus
/>
<input
name=
"dialpadnumber"
type=
"text"
class=
"form-control text-center"
placeholder=
"
{{ 'ENTER_EXTENSION' | translate}}
"
ng-model=
"dialpadNumber"
autofocus
/>
<span
class=
"input-group-btn"
>
<span
class=
"input-group-btn"
>
<a
href=
""
ng-click=
"backspace()"
>
<a
href=
""
ng-click=
"backspace()"
>
<i
class=
"mdi-content-backspace"
></i>
<i
class=
"mdi-content-backspace"
></i>
...
@@ -163,7 +163,7 @@
...
@@ -163,7 +163,7 @@
</div>
</div>
</div>
</div>
<div
class=
"form-group text-center"
>
<div
class=
"form-group text-center"
>
<button
type=
"submit"
class=
"btn btn-success btn-fab"
ng-click=
"call(dialpadNumber)"
title=
"
Call Extension
"
>
<button
type=
"submit"
class=
"btn btn-success btn-fab"
ng-click=
"call(dialpadNumber)"
title=
"
{{ 'CALL_EXTENSION' | translate}}
"
>
<i
class=
"mdi-communication-call"
></i>
<i
class=
"mdi-communication-call"
></i>
</button>
</button>
</div>
</div>
...
...
html5/verto/verto_communicator/src/partials/login.html
浏览文件 @
6c197ae2
...
@@ -2,59 +2,59 @@
...
@@ -2,59 +2,59 @@
<div
class=
"col-md-4 col-xs-12 col-sm-12 centered-block"
>
<div
class=
"col-md-4 col-xs-12 col-sm-12 centered-block"
>
<div
class=
"panel panel-default shadow-z-2"
>
<div
class=
"panel panel-default shadow-z-2"
>
<div
class=
"panel-body"
>
<div
class=
"panel-body"
>
<h3>
Login
</h3>
<h3>
{{ 'LOGIN' | translate}}
</h3>
<div
ng-show=
"form.$submitted && form.$invalid"
class=
"alert alert-danger"
>
<div
ng-show=
"form.$submitted && form.$invalid"
class=
"alert alert-danger"
>
<p>
Verify the fields bellow and try again.
</p>
<p>
{{ 'INVALID_LOGIN_FIELDS' | translate }}
</p>
</div>
</div>
<form
name=
"form"
class=
"css-form"
novalidate
ng-init=
"advanced = false"
>
<form
name=
"form"
class=
"css-form"
novalidate
ng-init=
"advanced = false"
>
<div
class=
"form-group {{ (((!form.name.$pristine || form.$submitted) && !form.name.$valid) ? 'has-error': '') }}"
>
<div
class=
"form-group {{ (((!form.name.$pristine || form.$submitted) && !form.name.$valid) ? 'has-error': '') }}"
>
<label
class=
"control-label"
for=
"login-name"
>
Name
</label>
<label
class=
"control-label"
for=
"login-name"
>
{{ 'NAME' | translate}}
</label>
<input
type=
"text"
name=
"name"
class=
"form-control"
id=
"login-name"
placeholder=
"
Your name
"
required=
""
ng-model=
"verto.data.name"
autofocus
>
<input
type=
"text"
name=
"name"
class=
"form-control"
id=
"login-name"
placeholder=
"
{{ 'YOUR_NAME' | translate}}
"
required=
""
ng-model=
"verto.data.name"
autofocus
>
</div>
</div>
<div
class=
"form-group {{ (((!form.email.$pristine || form.$submitted) && !form.email.$valid) ? 'has-error': '') }}"
>
<div
class=
"form-group {{ (((!form.email.$pristine || form.$submitted) && !form.email.$valid) ? 'has-error': '') }}"
>
<label
class=
"control-label"
for=
"login-email"
>
Email
</label>
<label
class=
"control-label"
for=
"login-email"
>
{{ 'EMAIL' | translate }}
</label>
<input
type=
"email"
name=
"email"
class=
"form-control"
id=
"login-email"
placeholder=
"
Your email
"
required=
""
ng-model=
"verto.data.email"
ng-model-options=
"{debounce: 250}"
>
<input
type=
"email"
name=
"email"
class=
"form-control"
id=
"login-email"
placeholder=
"
{{ 'YOUR_EMAIL' | translate}}
"
required=
""
ng-model=
"verto.data.email"
ng-model-options=
"{debounce: 250}"
>
</div>
</div>
<div
class=
"form-group"
ng-hide=
"!advanced"
>
<div
class=
"form-group"
ng-hide=
"!advanced"
>
<label
class=
"control-label"
for=
"login-user"
>
User
</label>
<label
class=
"control-label"
for=
"login-user"
>
{{ 'USER' | translate}}
</label>
<input
type=
"text"
class=
"form-control"
id=
"login-user"
placeholder=
"
User
"
ng-model=
"verto.data.login"
>
<input
type=
"text"
class=
"form-control"
id=
"login-user"
placeholder=
"
{{ 'USER' | translate}}
"
ng-model=
"verto.data.login"
>
</div>
</div>
<div
class=
"form-group"
ng-hide=
"!advanced"
>
<div
class=
"form-group"
ng-hide=
"!advanced"
>
<label
class=
"control-label"
for=
"login-password"
>
Password
</label>
<label
class=
"control-label"
for=
"login-password"
>
{{ 'PASSWORD' | translate}}
</label>
<input
type=
"password"
class=
"form-control"
id=
"login-password"
placeholder=
"Password"
ng-model=
"verto.data.password"
>
<input
type=
"password"
class=
"form-control"
id=
"login-password"
placeholder=
{{
'
PASSWORD
'
|
translate
}}
ng-model=
"verto.data.password"
>
</div>
</div>
<div
class=
"form-group"
ng-hide=
"!advanced"
>
<div
class=
"form-group"
ng-hide=
"!advanced"
>
<label
class=
"control-label"
for=
"login-callerid"
>
Caller ID
</label>
<label
class=
"control-label"
for=
"login-callerid"
>
{{ 'CALLER_ID' | translate}}
</label>
<input
type=
"text"
class=
"form-control"
id=
"login-callerid"
placeholder=
"
Caller ID
"
ng-model=
"verto.data.callerid"
>
<input
type=
"text"
class=
"form-control"
id=
"login-callerid"
placeholder=
"
{{ 'CALLER_ID' | translate}}
"
ng-model=
"verto.data.callerid"
>
</div>
</div>
<div
class=
"form-group"
ng-hide=
"!advanced"
>
<div
class=
"form-group"
ng-hide=
"!advanced"
>
<label
class=
"control-label"
for=
"login-hostname"
>
Hostname
</label>
<label
class=
"control-label"
for=
"login-hostname"
>
{{ 'HOSTNAME' | translate}}
</label>
<input
type=
"text"
class=
"form-control"
id=
"login-hostname"
placeholder=
"
Hostname
"
ng-model=
"verto.data.hostname"
>
<input
type=
"text"
class=
"form-control"
id=
"login-hostname"
placeholder=
"
{{ 'HOSTNAME' | translate}}
"
ng-model=
"verto.data.hostname"
>
</div>
</div>
<div
class=
"form-group"
ng-hide=
"!advanced"
>
<div
class=
"form-group"
ng-hide=
"!advanced"
>
<label
class=
"control-label"
for=
"login-wsurl"
>
Websocket URL
</label>
<label
class=
"control-label"
for=
"login-wsurl"
>
{{ 'WEBSOCKET_URL' | translate}}
</label>
<input
type=
"text"
class=
"form-control"
id=
"login-wsurl"
placeholder=
"
Websocket URL
"
ng-model=
"verto.data.wsURL"
>
<input
type=
"text"
class=
"form-control"
id=
"login-wsurl"
placeholder=
"
{{ 'WEBSOCKET_URL' | translate}}
"
ng-model=
"verto.data.wsURL"
>
</div>
</div>
<div
class=
"form-group hide"
>
<div
class=
"form-group hide"
>
<label
for=
"login-login"
>
Login
</label>
<label
for=
"login-login"
>
{{ 'LOGIN' | translate}}
</label>
<input
type=
"text"
class=
"form-control"
id=
"login-login"
placeholder=
"
Login
"
ng-model=
"verto.data.login"
>
<input
type=
"text"
class=
"form-control"
id=
"login-login"
placeholder=
"
{{ 'LOGIN' | translate}}
"
ng-model=
"verto.data.login"
>
</div>
</div>
<div
class=
"form-group hide"
>
<div
class=
"form-group hide"
>
<label
for=
"login-password"
>
Password
</label>
<label
for=
"login-password"
>
Password
</label>
<input
type=
"text"
class=
"form-control"
id=
"login-password"
placeholder=
"
Password
"
ng-model=
"verto.data.password"
>
<input
type=
"text"
class=
"form-control"
id=
"login-password"
placeholder=
"
{{ 'PASSWORD' | translate}}
"
ng-model=
"verto.data.password"
>
</div>
</div>
<div
class=
"form-group text-right"
>
<div
class=
"form-group text-right"
>
<div><a
style=
"margin-top: 13px;"
href=
""
ng-click=
"advanced = !advanced"
class=
"pull-left"
>
Settings
</a></div>
<div><a
style=
"margin-top: 13px;"
href=
""
ng-click=
"advanced = !advanced"
class=
"pull-left"
>
{{ 'SETTINGS' | translate}}
</a></div>
<div><button
type=
"submit"
class=
"btn btn-success"
ng-click=
"(form.$valid && login())"
>
Login
</button></div>
<div><button
type=
"submit"
class=
"btn btn-success"
ng-click=
"(form.$valid && login())"
>
{{ 'LOGIN' | translate}}
</button></div>
<div
ng-if=
"googlelogin"
class=
"googlelogin"
>
<div
ng-if=
"googlelogin"
class=
"googlelogin"
>
<google-plus-signin
clientid=
"{{src/partials/login.html}}"
class=
"center"
>
<google-plus-signin
clientid=
"{{src/partials/login.html}}"
class=
"center"
>
</google-plus-signin>
</google-plus-signin>
...
...
html5/verto/verto_communicator/src/partials/menu.html
浏览文件 @
6c197ae2
...
@@ -2,13 +2,13 @@
...
@@ -2,13 +2,13 @@
<div
class=
"container-fluid"
>
<div
class=
"container-fluid"
>
<div
class=
"https-untrusted navbar-center"
ng-show=
"!safeProtocol"
>
<div
class=
"https-untrusted navbar-center"
ng-show=
"!safeProtocol"
>
<div
class=
"https-message"
>
<div
class=
"https-message"
>
This Connection is Untrusted.
{{ 'MESSAGE_CONNECTION_UNTRUSTED' | translate }}
</div>
</div>
</div>
</div>
<div
class=
"navbar-header"
>
<div
class=
"navbar-header"
>
<button
type=
"button"
class=
"navbar-toggle collapsed"
data-toggle=
"collapse"
data-target=
"#navbar"
aria-expanded=
"false"
aria-controls=
"navbar"
>
<button
type=
"button"
class=
"navbar-toggle collapsed"
data-toggle=
"collapse"
data-target=
"#navbar"
aria-expanded=
"false"
aria-controls=
"navbar"
>
<span
class=
"sr-only"
>
Toggle navigation
</span>
<span
class=
"sr-only"
>
{{ 'MESSAGE_TOGGLE_NAVIGATION' | translate }}
</span>
<span
class=
"icon-bar"
></span>
<span
class=
"icon-bar"
></span>
<span
class=
"icon-bar"
></span>
<span
class=
"icon-bar"
></span>
<span
class=
"icon-bar"
></span>
<span
class=
"icon-bar"
></span>
...
@@ -25,10 +25,10 @@
...
@@ -25,10 +25,10 @@
<span
class=
"caret"
></span>
<span
class=
"caret"
></span>
</a>
</a>
<ul
class=
"dropdown-menu drop-net-info"
role=
"menu"
ng-click=
"$event.stopPropagation()"
>
<ul
class=
"dropdown-menu drop-net-info"
role=
"menu"
ng-click=
"$event.stopPropagation()"
>
<li><a
class=
"title"
>
Bandwidth Info
</a></li>
<li><a
class=
"title"
>
{{ 'BANDWIDTH_INFO' | translate }}
</a></li>
<li><a>
Outgoing:
{{bandUp}} Kbps
</a></li>
<li><a>
{{ 'BANDWIDTH_INFO_OUTGOING' | translate }}
{{bandUp}} Kbps
</a></li>
<li><a>
Incoming:
{{bandDown}} Kbps
</a></li>
<li><a>
{{ 'BANDWIDTH_INFO_INCOMING' | translate }}
{{bandDown}} Kbps
</a></li>
<li><a>
Video Resolution:
{{vidRes}}
</a></li>
<li><a>
{{ 'BANDWIDTH_INFO_VIDEO_RES' | translate }}
{{vidRes}}
</a></li>
</ul>
</ul>
</li>
</li>
<li>
<li>
...
@@ -38,7 +38,7 @@
...
@@ -38,7 +38,7 @@
</li>
</li>
<li>
<li>
<a
href=
""
class=
"incall-number"
ng-show=
"storage.data.called_number"
>
<a
href=
""
class=
"incall-number"
ng-show=
"storage.data.called_number"
>
{{ storage.data.called_number
&&
storage.data.userStatus != 'connected' ?
'Last Call: ' : 'In Call: '
}} {{ storage.data.called_number }}
{{ storage.data.called_number
&&
storage.data.userStatus != 'connected' ?
'LAST_CALL' : 'IN_CALL' | translate
}} {{ storage.data.called_number }}
</a>
</a>
</li>
</li>
<li
class=
"navbar-item-icon"
ng-show=
"verto.data.connected"
>
<li
class=
"navbar-item-icon"
ng-show=
"verto.data.connected"
>
...
@@ -63,10 +63,10 @@
...
@@ -63,10 +63,10 @@
<span
class=
"caret"
></span>
<span
class=
"caret"
></span>
</a>
</a>
<ul
class=
"dropdown-menu"
role=
"menu"
>
<ul
class=
"dropdown-menu"
role=
"menu"
>
<li><a
href=
"#/?sessid=random"
target=
"_blank"
>
Open New Window
</a></li>
<li><a
href=
"#/?sessid=random"
target=
"_blank"
>
{{ 'OPEN_NEW_WINDOW' | translate}}
</a></li>
<li><a
href=
""
ng-click=
"openModal('partials/modal_logininfo.html', 'ModalLoginInformationController')"
>
Change Login Information
</a></li>
<li><a
href=
""
ng-click=
"openModal('partials/modal_logininfo.html', 'ModalLoginInformationController')"
>
{{ 'CHANGE_LOGIN_INFO' | translate}}
</a></li>
<!--<li><a href="#">View Device Settings</a></li>-->
<!--<li><a href="#">View Device Settings</a></li>-->
<li><a
href=
""
ng-click=
"logout()"
>
Logout
</a></li>
<li><a
href=
""
ng-click=
"logout()"
>
{{ 'LOGOUT' | translate}}
</a></li>
</ul>
</ul>
</li>
</li>
<li
class=
"navbar-item-icon"
>
<li
class=
"navbar-item-icon"
>
...
@@ -75,9 +75,9 @@
...
@@ -75,9 +75,9 @@
<span
class=
"caret"
></span>
<span
class=
"caret"
></span>
</a>
</a>
<ul
class=
"dropdown-menu"
role=
"menu"
>
<ul
class=
"dropdown-menu"
role=
"menu"
>
<li><a
href=
""
ng-click=
"showAbout()"
>
About
</a></li>
<li><a
href=
""
ng-click=
"showAbout()"
>
{{ 'ABOUT' | translate}}
</a></li>
<li><a
href=
""
ng-click=
"showContributors()"
>
Contributors
</a></li>
<li><a
href=
""
ng-click=
"showContributors()"
>
{{ 'CONTRIBUTORS' | translate}}
</a></li>
<li><a
href=
"https://freeswitch.org/confluence/x/MQCT"
target=
"_blank"
>
Help
</a></li>
<li><a
href=
"https://freeswitch.org/confluence/x/MQCT"
target=
"_blank"
>
{{ 'HELP' | translate}}
</a></li>
</ul>
</ul>
</li>
</li>
...
...
html5/verto/verto_communicator/src/partials/modal_logininfo.html
浏览文件 @
6c197ae2
<div
class=
"modal-header"
>
<div
class=
"modal-header"
>
<h3
class=
"modal-title"
>
Login Information
</h3>
<h3
class=
"modal-title"
>
{{ 'LOGIN_INFORMATION' | translate}}
</h3>
</div>
</div>
<div
class=
"modal-body"
>
<div
class=
"modal-body"
>
<div
class=
"form-group"
>
<div
class=
"form-group"
>
<label
for=
"name"
>
Name:
</label>
<label
for=
"name"
>
{{ 'NAME' | translate}}
</label>
<input
type=
"text"
name=
"name"
class=
"form-control"
ng-model=
"storage.data.name"
ng-value=
"storage.data.name"
/>
<input
type=
"text"
name=
"name"
class=
"form-control"
ng-model=
"storage.data.name"
ng-value=
"storage.data.name"
/>
</div>
</div>
<div
class=
"form-group"
>
<div
class=
"form-group"
>
<label
for=
"email"
>
Email:
</label>
<label
for=
"email"
>
{{ 'EMAIL' | translate}}
</label>
<input
type=
"text"
name=
"email"
class=
"form-control"
ng-model=
"storage.data.email"
ng-value=
"storage.data.email"
/>
<input
type=
"text"
name=
"email"
class=
"form-control"
ng-model=
"storage.data.email"
ng-value=
"storage.data.email"
/>
</div>
</div>
<div
class=
"form-group"
>
<div
class=
"form-group"
>
<label
class=
"control-label"
for=
"user"
>
User
</label>
<label
class=
"control-label"
for=
"user"
>
{{ 'USER' | translate}}
</label>
<input
type=
"text"
class=
"form-control"
id=
"user"
placeholder=
"User"
ng-model=
"storage.data.login"
>
<input
type=
"text"
class=
"form-control"
id=
"user"
placeholder=
"User"
ng-model=
"storage.data.login"
>
</div>
</div>
<div
class=
"form-group"
>
<div
class=
"form-group"
>
<label
class=
"control-label"
for=
"password"
>
Password
</label>
<label
class=
"control-label"
for=
"password"
>
{{ 'PASSWORD' | translate}}
</label>
<input
type=
"password"
class=
"form-control"
id=
"password"
placeholder=
"Password"
ng-model=
"verto.data.password"
>
<input
type=
"password"
class=
"form-control"
id=
"password"
placeholder=
"Password"
ng-model=
"verto.data.password"
>
</div>
</div>
<div
class=
"form-group"
>
<div
class=
"form-group"
>
<label
class=
"control-label"
for=
"callerid"
>
Caller ID
</label>
<label
class=
"control-label"
for=
"callerid"
>
{{ 'CALLER_ID' | translate}}
</label>
<input
type=
"text"
class=
"form-control"
id=
"callerid"
placeholder=
"Caller ID"
ng-model=
"verto.data.callerid"
>
<input
type=
"text"
class=
"form-control"
id=
"callerid"
placeholder=
"Caller ID"
ng-model=
"verto.data.callerid"
>
</div>
</div>
</div>
</div>
<div
class=
"modal-footer"
>
<div
class=
"modal-footer"
>
<!-- <button class="btn btn-primary" ng-click="cancel()">Cancel</button> -->
<!-- <button class="btn btn-primary" ng-click="cancel()">Cancel</button> -->
<button
class=
"btn btn-primary"
ng-click=
"ok()"
>
Save Login Information
</button>
<button
class=
"btn btn-primary"
ng-click=
"ok()"
>
{{ 'SAVE_LOGIN_INFORMATION' | translate}}
</button>
</div>
</div>
html5/verto/verto_communicator/src/partials/preview.html
浏览文件 @
6c197ae2
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
<div
class=
"col-md-4 col-sm-12 col-xs-12 centered-block"
>
<div
class=
"col-md-4 col-sm-12 col-xs-12 centered-block"
>
<div
class=
"panel panel-material-blue-900 shadow-z-2 "
>
<div
class=
"panel panel-material-blue-900 shadow-z-2 "
>
<div
class=
"panel-heading"
>
<div
class=
"panel-heading"
>
<h3
class=
"panel-title text-center"
>
Setup your camera and microphone settings
</h3>
<h3
class=
"panel-title text-center"
>
{{ 'TITLE_PREVIEW_SETTINGS' | translate }}
</h3>
</div>
</div>
<div
class=
"panel-body"
>
<div
class=
"panel-body"
>
<div
class=
"preview-wrapper"
>
<div
class=
"preview-wrapper"
>
...
@@ -20,13 +20,13 @@
...
@@ -20,13 +20,13 @@
</div>
</div>
<form
name=
"form"
>
<form
name=
"form"
>
<div
class=
"form-group col-md-5 col-sm-12 col-xs-12"
ng-show=
"true"
>
<div
class=
"form-group col-md-5 col-sm-12 col-xs-12"
ng-show=
"true"
>
<label
for=
"settings-camera"
>
Camera:
</label>
<label
for=
"settings-camera"
>
{{ 'CAMERA_SETTINGS' | translate }}
</label>
<select
name=
"camera"
id=
"settings-camera"
class=
"form-control"
ng-model=
"storage.data.selectedVideo"
<select
name=
"camera"
id=
"settings-camera"
class=
"form-control"
ng-model=
"storage.data.selectedVideo"
ng-options=
"item.id as item.label for item in verto.data.videoDevices"
ng-change=
"localVideo()"
>
ng-options=
"item.id as item.label for item in verto.data.videoDevices"
ng-change=
"localVideo()"
>
</select>
</select>
</div>
</div>
<div
class=
"form-group col-md-5 col-sm-12 col-xs-12"
ng-show=
"true"
>
<div
class=
"form-group col-md-5 col-sm-12 col-xs-12"
ng-show=
"true"
>
<label
for=
"settings-microphone"
>
Microphone:
</label>
<label
for=
"settings-microphone"
>
{{ 'MIC_SETTINGS' | translate }}
</label>
<select
name=
"microphone"
id=
"settings-microphone"
class=
"form-control"
ng-model=
"storage.data.selectedAudio"
<select
name=
"microphone"
id=
"settings-microphone"
class=
"form-control"
ng-model=
"storage.data.selectedAudio"
ng-options=
"item.id as item.label for item in verto.data.audioDevices"
ng-change=
"localVideo()"
>
ng-options=
"item.id as item.label for item in verto.data.audioDevices"
ng-change=
"localVideo()"
>
</select>
</select>
...
@@ -36,8 +36,8 @@
...
@@ -36,8 +36,8 @@
</a>
</a>
<div
class=
"form-group text-center"
>
<div
class=
"form-group text-center"
>
<button
type=
"submit"
class=
"btn btn-success"
ng-click=
"endPreview()"
title=
"
Save
"
>
<button
type=
"submit"
class=
"btn btn-success"
ng-click=
"endPreview()"
title=
"
{{ 'SAVE' | translate }}
"
>
Save
{{ 'SAVE' | translate }}
</button>
</button>
</div>
</div>
</form>
</form>
...
...
html5/verto/verto_communicator/src/partials/settings.html
浏览文件 @
6c197ae2
...
@@ -3,21 +3,21 @@
...
@@ -3,21 +3,21 @@
<div
class=
"col-md-4"
>
<div
class=
"col-md-4"
>
<div
class=
"form-group"
ng-show=
"mydata.useVideo"
>
<div
class=
"form-group"
ng-show=
"mydata.useVideo"
>
<label
for=
"settings-camera"
>
Camera:
</label>
<label
for=
"settings-camera"
>
{{ 'CAMERA_SETTINGS' | translate }}
</label>
<select
name=
"camera"
id=
"settings-camera"
class=
"form-control"
<select
name=
"camera"
id=
"settings-camera"
class=
"form-control"
ng-model=
"mydata.selectedVideo"
ng-options=
"item.id as item.label for item in verto.data.videoDevices"
>
ng-model=
"mydata.selectedVideo"
ng-options=
"item.id as item.label for item in verto.data.videoDevices"
>
</select>
</select>
</div>
</div>
<div
class=
"form-group"
ng-show=
"mydata.useVideo"
>
<div
class=
"form-group"
ng-show=
"mydata.useVideo"
>
<label
for=
"settings-share-device"
>
Share device:
</label>
<label
for=
"settings-share-device"
>
{{ 'SHARE_DEVICE' | translate }}
</label>
<select
name=
"share-device"
id=
"settings-share-device"
class=
"form-control"
<select
name=
"share-device"
id=
"settings-share-device"
class=
"form-control"
ng-model=
"mydata.selectedShare"
ng-options=
"item.id as item.label for item in verto.data.shareDevices"
>
ng-model=
"mydata.selectedShare"
ng-options=
"item.id as item.label for item in verto.data.shareDevices"
>
</select>
</select>
</div>
</div>
<div
class=
"form-group"
>
<div
class=
"form-group"
>
<label
for=
"settings-microphone"
>
Microphone:
</label>
<label
for=
"settings-microphone"
>
{{ 'MIC_SETTINGS' | translate}}
</label>
<select
name=
"microphone"
id=
"settings-microphone"
class=
"form-control"
<select
name=
"microphone"
id=
"settings-microphone"
class=
"form-control"
ng-model=
"mydata.selectedAudio"
ng-options=
"item.id as item.label for item in verto.data.audioDevices"
>
ng-model=
"mydata.selectedAudio"
ng-options=
"item.id as item.label for item in verto.data.audioDevices"
>
</select>
</select>
...
@@ -25,9 +25,9 @@
...
@@ -25,9 +25,9 @@
<div
class=
"form-group"
>
<div
class=
"form-group"
>
<label
for=
"settings-microphone"
>
<label
for=
"settings-microphone"
>
Speaker:
{{ 'SPEAKER' | translate }}
<span
ng-show=
"!speakerFeature"
class=
"unsupported"
>
<span
ng-show=
"!speakerFeature"
class=
"unsupported"
>
Your browser doesn't seem to support this feature
{{ 'SPEAKER_FEATURE' | translate }}
</span>
</span>
</label>
</label>
<select
name=
"microphone"
id=
"settings-microphone"
class=
"form-control"
ng-disabled=
"!speakerFeature"
<select
name=
"microphone"
id=
"settings-microphone"
class=
"form-control"
ng-disabled=
"!speakerFeature"
...
@@ -36,67 +36,67 @@
...
@@ -36,67 +36,67 @@
</div>
</div>
<div
class=
"form-group"
>
<div
class=
"form-group"
>
<label
for=
"settings-framerate"
>
Best frame rate:
</label>
<label
for=
"settings-framerate"
>
{{ 'BEST_FRAME_RATE' | translate }}
</label>
<select
name=
"settings-framerate"
id=
"settings-framerate"
class=
"form-control"
<select
name=
"settings-framerate"
id=
"settings-framerate"
class=
"form-control"
ng-model=
"mydata.bestFrameRate"
ng-model=
"mydata.bestFrameRate"
ng-options=
"item.id as item.label for item in verto.framerate"
></select>
ng-options=
"item.id as item.label for item in verto.framerate"
></select>
</div>
</div>
<a
class=
"btn btn-primary"
href=
""
ng-click=
"showPreview()"
>
Preview Settings
</a>
<a
class=
"btn btn-primary"
href=
""
ng-click=
"showPreview()"
>
{{ 'PREVIEW_SETTINGS' | translate }}
</a>
<a
class=
"btn btn-primary"
href=
""
ng-click=
"refreshDeviceList()"
>
Refresh device list
</a>
<a
class=
"btn btn-primary"
href=
""
ng-click=
"refreshDeviceList()"
>
{{ 'REFRESH_DEVICE_LIST' | translate }}
</a>
</div>
</div>
<div
class=
"col-md-4"
>
<div
class=
"col-md-4"
>
<div
class=
"form-group"
>
<div
class=
"form-group"
>
<label
for=
"settings-microphone"
>
General settings:
</label>
<label
for=
"settings-microphone"
>
{{ 'GENERAL_SETTINGS' | translate }}
</label>
<div
class=
"checkbox"
>
<div
class=
"checkbox"
>
<label>
<label>
<input
type=
"checkbox"
name=
"use_video"
value=
"mydata.useVideo"
ng-model=
"mydata.useVideo"
>
<input
type=
"checkbox"
name=
"use_video"
value=
"mydata.useVideo"
ng-model=
"mydata.useVideo"
>
Use Video
<span
ng-bind=
"'USE_VIDEO' | translate"
></span>
</label>
</label>
</div>
</div>
<div
class=
"checkbox"
>
<div
class=
"checkbox"
>
<label>
<label>
<input
type=
"checkbox"
name=
"use_stereo_audio"
ng-value=
"mydata.useStereo"
ng-model=
"mydata.useStereo"
>
<input
type=
"checkbox"
name=
"use_stereo_audio"
ng-value=
"mydata.useStereo"
ng-model=
"mydata.useStereo"
>
Stereo Audio
<span
ng-bind=
"'USE_STEREO_AUDIO' | translate"
></span>
</label>
</label>
</div>
</div>
<div
class=
"checkbox"
>
<div
class=
"checkbox"
>
<label>
<label>
<input
type=
"checkbox"
name=
"use_stun"
ng-value=
"mydata.useSTUN"
ng-model=
"mydata.useSTUN"
>
<input
type=
"checkbox"
name=
"use_stun"
ng-value=
"mydata.useSTUN"
ng-model=
"mydata.useSTUN"
>
Use STUN
<span
ng-bind=
"'USE_STUN' | translate"
></span>
</label>
</label>
</div>
</div>
<div
class=
"checkbox"
>
<div
class=
"checkbox"
>
<label>
<label>
<input
type=
"checkbox"
name=
"mirror_input"
ng-value=
"mydata.mirrorInput"
ng-model=
"mydata.mirrorInput"
>
<input
type=
"checkbox"
name=
"mirror_input"
ng-value=
"mydata.mirrorInput"
ng-model=
"mydata.mirrorInput"
>
Scale Remote Video To Match Camera Resolution
<span
ng-bind=
"'SCALE_VIDEO' | translate"
></span>
</label>
</label>
</div>
</div>
<div
class=
"checkbox"
>
<div
class=
"checkbox"
>
<label>
<label>
<input
type=
"checkbox"
name=
"ask_recover_call"
ng-value=
"mydata.askRecoverCall"
ng-model=
"mydata.askRecoverCall"
>
<input
type=
"checkbox"
name=
"ask_recover_call"
ng-value=
"mydata.askRecoverCall"
ng-model=
"mydata.askRecoverCall"
>
Ask before recovering call
<span
ng-bind=
"'ASK_BEFORE_RECOVER' | translate"
></span>
</label>
</label>
</div>
</div>
<div
class=
"form-group"
>
<div
class=
"form-group"
>
<label
for=
"settings-microphone"
>
Audio settings:
</label>
<label
for=
"settings-microphone"
>
{{ 'AUDIO_SETTINGS' | translate }}
</label>
<div
class=
"checkbox"
>
<div
class=
"checkbox"
>
<label>
<label>
<input
type=
"checkbox"
name=
"googEchoCancellation"
value=
"mydata.googEchoCancellation"
ng-model=
"mydata.googEchoCancellation"
>
<input
type=
"checkbox"
name=
"googEchoCancellation"
value=
"mydata.googEchoCancellation"
ng-model=
"mydata.googEchoCancellation"
>
Echo Cancellation
<span
ng-bind=
"'ECHO_CANCEL' | translate"
></span>
</label>
</label>
</div>
</div>
<div
class=
"checkbox"
>
<div
class=
"checkbox"
>
<label>
<label>
<input
type=
"checkbox"
name=
"googNoiseSuppression"
value=
"mydata.googNoiseSuppression"
ng-model=
"mydata.googNoiseSuppression"
>
<input
type=
"checkbox"
name=
"googNoiseSuppression"
value=
"mydata.googNoiseSuppression"
ng-model=
"mydata.googNoiseSuppression"
>
Noise Suppression
<span
ng-bind=
"'NOISE_SUPPRESSION' | translate"
></span>
</label>
</label>
</div>
</div>
<div
class=
"checkbox"
>
<div
class=
"checkbox"
>
<label>
<label>
<input
type=
"checkbox"
name=
"googHighpassFilter"
value=
"mydata.googHighpassFilter"
ng-model=
"mydata.googHighpassFilter"
>
<input
type=
"checkbox"
name=
"googHighpassFilter"
value=
"mydata.googHighpassFilter"
ng-model=
"mydata.googHighpassFilter"
>
Highpass Filter
<span
ng-bind=
"'HIGHPASS_FILTER' | translate"
></span>
</label>
</label>
</div>
</div>
</div>
</div>
...
@@ -106,32 +106,32 @@
...
@@ -106,32 +106,32 @@
<div
class=
"col-md-4"
>
<div
class=
"col-md-4"
>
<div
class=
"form-group"
>
<div
class=
"form-group"
>
<label>
Video settings:
</label>
<br>
<label>
{{ 'VIDEO_SETTINGS' | translate }}
</label>
<br>
<input
type=
"hidden"
name=
"use_dedenc"
ng-value=
"mydata.useDedenc"
ng-model=
"mydata.useDedenc"
>
<input
type=
"hidden"
name=
"use_dedenc"
ng-value=
"mydata.useDedenc"
ng-model=
"mydata.useDedenc"
>
<div
ng-show=
"mydata.useDedenc"
class=
"dedicated_encoder"
>
<div
ng-show=
"mydata.useDedenc"
class=
"dedicated_encoder"
>
<p>
Dedicated Remote Encoder enabled.
</b>
<p>
{{ 'REMOTE_ENCODER' | translate }}
</b>
</div>
</div>
<div
class=
"checkbox"
>
<div
class=
"checkbox"
>
<label>
<label>
<input
type=
"checkbox"
ng-model=
"mydata.autoBand"
ng-change=
"checkAutoBand(mydata.autoBand)"
>
<input
type=
"checkbox"
ng-model=
"mydata.autoBand"
ng-change=
"checkAutoBand(mydata.autoBand)"
>
Automatically determine speed and resolution settings
<span
ng-bind=
"'AUTO_SPEED_RES' | translate"
></span>
</label>
</label>
</div>
</div>
<div
class=
"checkbox"
ng-show=
"mydata.autoBand"
>
<div
class=
"checkbox"
ng-show=
"mydata.autoBand"
>
<label>
<label>
<input
type=
"checkbox"
ng-model=
"mydata.testSpeedJoin"
>
<input
type=
"checkbox"
ng-model=
"mydata.testSpeedJoin"
>
Recheck bandwidth before each outgoing call
<span
ng-bind=
"'RECHECK_BANDWIDTH' | translate"
></span>
</label>
</label>
</div>
</div>
<a
ng-show=
"mydata.autoBand"
class=
"btn btn-primary"
href=
""
ng-click=
"testSpeed()"
>
Check Network Speed
</a>
<span
ng-bind=
"speedMsg"
></span>
<a
ng-show=
"mydata.autoBand"
class=
"btn btn-primary"
href=
""
ng-click=
"testSpeed()"
>
{{ 'CHECK_NETWORK_SPEED' | translate }}
</a>
<span
ng-bind=
"speedMsg"
></span>
<div
ng-show=
"!mydata.autoBand"
>
<div
ng-show=
"!mydata.autoBand"
>
<label
for=
"video-quality"
>
Video quality:
</label>
<label
for=
"video-quality"
>
{{ 'VIDEO_QUALITY' | translate }}
</label>
<select
name=
"video_quality"
id=
"video-quality"
class=
"form-control"
<select
name=
"video_quality"
id=
"video-quality"
class=
"form-control"
ng-disabled=
"mydata.autoBand"
ng-disabled=
"mydata.autoBand"
ng-model=
"mydata.vidQual"
ng-model=
"mydata.vidQual"
...
@@ -140,7 +140,7 @@
...
@@ -140,7 +140,7 @@
</div>
</div>
<div
ng-show=
"!mydata.autoBand"
>
<div
ng-show=
"!mydata.autoBand"
>
<label
for=
"incoming-bandwidth"
>
Max incoming bandwidth:
</label>
<label
for=
"incoming-bandwidth"
>
{{ 'MAX_INCOMING_BANDWIDTH' | translate }}
</label>
<select
name=
"incoming_bandwidth"
id=
"incoming-bandwidth"
class=
"form-control"
<select
name=
"incoming_bandwidth"
id=
"incoming-bandwidth"
class=
"form-control"
ng-model=
"mydata.incomingBandwidth"
ng-model=
"mydata.incomingBandwidth"
ng-change=
"checkUseDedRemoteEncoder(mydata.incomingBandwidth)"
ng-change=
"checkUseDedRemoteEncoder(mydata.incomingBandwidth)"
...
@@ -148,7 +148,7 @@
...
@@ -148,7 +148,7 @@
</div>
</div>
<div
ng-show=
"!mydata.autoBand"
>
<div
ng-show=
"!mydata.autoBand"
>
<label
for=
"outgoing-bandwidth"
>
Max outgoing bandwidth:
</label>
<label
for=
"outgoing-bandwidth"
>
{{ 'MAX_OUTGOING_BANDWIDTH' | translate }}
</label>
<select
name=
"outgoing_bandwidth"
id=
"outgoing-bandwidth"
class=
"form-control"
<select
name=
"outgoing_bandwidth"
id=
"outgoing-bandwidth"
class=
"form-control"
ng-model=
"mydata.outgoingBandwidth"
ng-model=
"mydata.outgoingBandwidth"
ng-options=
"item.id as item.label for item in verto.bandwidth"
></select>
ng-options=
"item.id as item.label for item in verto.bandwidth"
></select>
...
...
html5/verto/verto_communicator/src/partials/splash_screen.html
浏览文件 @
6c197ae2
...
@@ -2,14 +2,14 @@
...
@@ -2,14 +2,14 @@
<div
class=
"col-md-6 centered-block"
>
<div
class=
"col-md-6 centered-block"
>
<div
class=
"card"
>
<div
class=
"card"
>
<div
class=
"card-body text-center"
>
<div
class=
"card-body text-center"
>
<h2>
Loading
</h2>
<h2>
{{ 'LOADING' | translate }}
</h2>
<div
class=
"progress progress-striped active"
>
<div
class=
"progress progress-striped active"
>
<div
class=
"progress-bar"
ng-class=
"{'progress-bar-danger': interrupt_next}"
style=
"width: {{ progress_percentage }}%"
></div>
<div
class=
"progress-bar"
ng-class=
"{'progress-bar-danger': interrupt_next}"
style=
"width: {{ progress_percentage }}%"
></div>
</div>
</div>
<div
ng-bind=
"message"
></div>
<div
ng-bind=
"message"
></div>
<div
class=
"splash-errors"
ng-if=
"errors.length"
>
<div
class=
"splash-errors"
ng-if=
"errors.length"
>
<h4>
Errors
</h4>
<h4>
{{ 'ERRORS' | translate }}
</h4>
<ul
ng-repeat=
"error in errors"
>
<ul
ng-repeat=
"error in errors"
>
<li>
{{ ::error }}
</li>
<li>
{{ ::error }}
</li>
</ul>
</ul>
...
...
html5/verto/verto_communicator/src/partials/video_call.html
浏览文件 @
6c197ae2
...
@@ -2,28 +2,28 @@
...
@@ -2,28 +2,28 @@
<div
class=
"video-wrapper"
>
<div
class=
"video-wrapper"
>
<div
class=
"video-hover-buttons"
ng-show=
"verto.data.callState == 'active' && !watcher"
>
<div
class=
"video-hover-buttons"
ng-show=
"verto.data.callState == 'active' && !watcher"
>
<div
id=
"moderator-tools"
ng-show=
"verto.data.confRole == 'moderator'"
>
<div
id=
"moderator-tools"
ng-show=
"verto.data.confRole == 'moderator'"
>
<button
tooltip-placement=
"bottom"
tooltip-title=
"
Play"
uib-tooltip=
"Play
"
<button
tooltip-placement=
"bottom"
tooltip-title=
"
{{'MESSAGE_PLAY' | translate}}"
uib-tooltip=
"{{'MESSAGE_PLAY' | translate}}
"
class=
"btn btn-material-blue-900"
ng-click=
"play()"
>
class=
"btn btn-material-blue-900"
ng-click=
"play()"
>
<i
class=
"mdi-av-play-circle-outline"
></i>
<i
class=
"mdi-av-play-circle-outline"
></i>
</button>
</button>
<button
tooltip-placement=
"bottom"
tooltip-title=
"
Stop"
uib-tooltip=
"Stop
"
<button
tooltip-placement=
"bottom"
tooltip-title=
"
{{'MESSAGE_STOP' | translate}}"
uib-tooltip=
"{{'MESSAGE_STOP' | translate}}
"
class=
"btn btn-material-blue-900"
ng-click=
"stop()"
>
class=
"btn btn-material-blue-900"
ng-click=
"stop()"
>
<i
class=
"mdi-av-stop"
></i>
<i
class=
"mdi-av-stop"
></i>
</button>
</button>
<button
tooltip-placement=
"bottom"
tooltip-title=
"
Record"
uib-tooltip=
"Record
"
<button
tooltip-placement=
"bottom"
tooltip-title=
"
{{'MESSAGE_RECORD' | translate}}"
uib-tooltip=
"{{'MESSAGE_RECORD' | translate}}
"
class=
"btn btn-material-blue-900"
ng-click=
"record()"
>
class=
"btn btn-material-blue-900"
ng-click=
"record()"
>
<i
class=
"mdi-toggle-radio-button-on"
></i>
<i
class=
"mdi-toggle-radio-button-on"
></i>
</button>
</button>
<button
tooltip-placement=
"bottom"
tooltip-title=
"
Stop Record"
uib-tooltip=
"Stop Record
"
<button
tooltip-placement=
"bottom"
tooltip-title=
"
{{'MESSAGE_STOP_RECORD' | translate}}"
uib-tooltip=
"{{'MESSAGE_STOP_RECORD' | translate}}
"
class=
"btn btn-material-blue-900"
ng-click=
"stopRecord()"
>
class=
"btn btn-material-blue-900"
ng-click=
"stopRecord()"
>
<i
class=
"mdi-image-switch-camera"
></i>
<i
class=
"mdi-image-switch-camera"
></i>
</button>
</button>
<button
tooltip-placement=
"bottom"
tooltip-title=
"
Snapshot"
uib-tooltip=
"Snapshot
"
<button
tooltip-placement=
"bottom"
tooltip-title=
"
{{'MESSAGE_SNAPSHOT' | translate}}"
uib-tooltip=
"{{'MESSAGE_SNAPSHOT' | translate}}
"
tooltip-lazy=
"false"
class=
"btn btn-material-blue-900"
ng-click=
"snapshot()"
>
tooltip-lazy=
"false"
class=
"btn btn-material-blue-900"
ng-click=
"snapshot()"
>
<i
class=
"mdi-image-photo-camera"
></i>
<i
class=
"mdi-image-photo-camera"
></i>
</button>
</button>
<div
class=
"btn-group"
>
<div
class=
"btn-group"
>
<button
tooltip-placement=
"bottom"
tooltip-title=
"
Video Mode"
uib-tooltip=
"Video Mode
"
<button
tooltip-placement=
"bottom"
tooltip-title=
"
{{'MESSAGE_VIDEO_MODE' | translate}}"
uib-tooltip=
"{{'MESSAGE_VIDEO_MODE' | translate}}
"
type=
"button"
class=
"btn btn-material-blue-900 dropdown-toggle"
type=
"button"
class=
"btn btn-material-blue-900 dropdown-toggle"
data-toggle=
"dropdown"
aria-haspopup=
"true"
aria-expanded=
"false"
>
data-toggle=
"dropdown"
aria-haspopup=
"true"
aria-expanded=
"false"
>
<i
class=
"mdi-action-view-module"
></i>
<i
class=
"mdi-action-view-module"
></i>
...
@@ -37,28 +37,28 @@
...
@@ -37,28 +37,28 @@
</div>
</div>
</div>
</div>
<div
class=
"user-tools"
>
<div
class=
"user-tools"
>
<button
tooltip-placement=
"bottom"
tooltip-title=
"
(un)Mute Mic"
uib-tooltip=
"(un)Mute Mic
"
<button
tooltip-placement=
"bottom"
tooltip-title=
"
{{'MESSAGE_MUTE_MIC' | translate}}"
uib-tooltip=
"{{'MESSAGE_MUTE_MIC' | translate}}
"
class=
"btn btn-material-blue-900"
ng-click=
"muteMic(cbMuteMic)"
>
class=
"btn btn-material-blue-900"
ng-click=
"muteMic(cbMuteMic)"
>
<i
class=
""
ng-class=
"{'mdi-av-mic': !verto.data.mutedMic, 'mdi-av-mic-off': verto.data.mutedMic}"
></i>
<i
class=
""
ng-class=
"{'mdi-av-mic': !verto.data.mutedMic, 'mdi-av-mic-off': verto.data.mutedMic}"
></i>
</button>
</button>
<button
tooltip-placement=
"bottom"
tooltip-title=
"
(un)Mute Video"
uib-tooltip=
"(un)Mute Video
"
<button
tooltip-placement=
"bottom"
tooltip-title=
"
{{'MESSAGE_MUTE_MIC' | translate}}"
uib-tooltip=
"{{'MESSAGE_MUTE_MIC' | translate}}
"
class=
"btn btn-material-blue-900"
ng-click=
"muteVideo(cbMuteVideo)"
ng-if=
"verto.data.canVideo"
>
class=
"btn btn-material-blue-900"
ng-click=
"muteVideo(cbMuteVideo)"
ng-if=
"verto.data.canVideo"
>
<i
class=
""
ng-class=
"{'mdi-av-videocam': !verto.data.mutedVideo, 'mdi-av-videocam-off': verto.data.mutedVideo}"
></i>
<i
class=
""
ng-class=
"{'mdi-av-videocam': !verto.data.mutedVideo, 'mdi-av-videocam-off': verto.data.mutedVideo}"
></i>
</button>
</button>
<button
tooltip-placement=
"bottom"
tooltip-title=
"
Toggle Fullscreen Mode"
uib-tooltip=
"Toggle Fullscreen Mode
"
<button
tooltip-placement=
"bottom"
tooltip-title=
"
{{'MESSAGE_FULLSCREEN' | translate}}"
uib-tooltip=
"{{'MESSAGE_FULLSCREEN' | translate}}
"
class=
"btn btn-material-blue-900"
ng-click=
"goFullscreen()"
>
class=
"btn btn-material-blue-900"
ng-click=
"goFullscreen()"
>
<i
class=
""
ng-class=
"{'mdi-navigation-fullscreen': !fullscreenEnabled, 'mdi-navigation-fullscreen-exit': fullscreenEnabled}"
></i>
<i
class=
""
ng-class=
"{'mdi-navigation-fullscreen': !fullscreenEnabled, 'mdi-navigation-fullscreen-exit': fullscreenEnabled}"
></i>
</button>
</button>
<button
tooltip-placement=
"bottom"
tooltip-title=
"
Screenshare"
uib-tooltip=
"Screenshare
"
<button
tooltip-placement=
"bottom"
tooltip-title=
"
{{'MESSAGE_SCREENSHARE' | translate}}"
uib-tooltip=
"{{'MESSAGE_SCREENSHARE' | translate}}
"
class=
"btn btn-material-blue-900"
ng-click=
"screenshare()"
>
class=
"btn btn-material-blue-900"
ng-click=
"screenshare()"
>
<i
class=
"mdi-hardware-desktop-windows"
></i>
<i
class=
"mdi-hardware-desktop-windows"
></i>
</button>
</button>
<button
tooltip-placement=
"bottom"
tooltip-title=
"
Open/Close Chat"
uib-tooltip=
"Open/Close Chat
"
<button
tooltip-placement=
"bottom"
tooltip-title=
"
{{'MESSAGE_OPEN_CLOSE_CHAT' | translate}}"
uib-tooltip=
"{{'MESSAGE_OPEN_CLOSE_CHAT' | translate}}
"
class=
"btn btn-material-blue-900"
ng-click=
"toggleChat()"
ng-show=
"fullscreenEnabled"
>
class=
"btn btn-material-blue-900"
ng-click=
"toggleChat()"
ng-show=
"fullscreenEnabled"
>
<i
class=
"mdi-communication-chat"
></i>
<i
class=
"mdi-communication-chat"
></i>
</button>
</button>
<div
class=
"btn-group"
>
<div
class=
"btn-group"
>
<button
tooltip-placement=
"bottom"
tooltip-title=
"
Speaker"
uib-tooltips=
"Speaker
"
type=
"button"
class=
"btn btn-material-blue-900 dropdown-toggle"
data-toggle=
"dropdown"
aria-haspopup=
"true"
aria-expanded=
"false"
>
<button
tooltip-placement=
"bottom"
tooltip-title=
"
{{'MESSAGE_SPEAKER' | translate}}"
uib-tooltips=
"{{'MESSAGE_SPEAKER' | translate}}
"
type=
"button"
class=
"btn btn-material-blue-900 dropdown-toggle"
data-toggle=
"dropdown"
aria-haspopup=
"true"
aria-expanded=
"false"
>
<i
class=
"mdi-hardware-headset"
></i>
<i
class=
"mdi-hardware-headset"
></i>
<span
class=
"caret"
></span>
<span
class=
"caret"
></span>
</button>
</button>
...
@@ -69,7 +69,7 @@
...
@@ -69,7 +69,7 @@
</ul>
</ul>
</div>
</div>
<div
class=
"btn-group"
ng-show=
"conf.canvasCount > 1"
>
<div
class=
"btn-group"
ng-show=
"conf.canvasCount > 1"
>
<button
tooltip-placement=
"bottom"
tooltip-title=
"
Popup"
uib-tooltips=
"Popup
"
type=
"button"
class=
"btn btn-material-blue-900 dropdown-toggle"
data-toggle=
"dropdown"
aria-haspopup=
"true"
aria-expanded=
"false"
>
<button
tooltip-placement=
"bottom"
tooltip-title=
"
{{'MESSAGE_POPUP' | translate}}"
uib-tooltips=
"{{'MESSAGE_POPUP' | translate}}
"
type=
"button"
class=
"btn btn-material-blue-900 dropdown-toggle"
data-toggle=
"dropdown"
aria-haspopup=
"true"
aria-expanded=
"false"
>
<i
class=
"mdi-image-filter-none"
></i>
<i
class=
"mdi-image-filter-none"
></i>
<span
class=
"caret"
></span>
<span
class=
"caret"
></span>
</button>
</button>
...
@@ -96,9 +96,9 @@
...
@@ -96,9 +96,9 @@
</div>
</div>
</div>
</div>
<div
class=
"col-md-6 col-xs-6 text-right"
>
<div
class=
"col-md-6 col-xs-6 text-right"
>
<button
class=
"btn btn-danger"
ng-click=
"hangup()"
>
<button
class=
"btn btn-danger"
ng-click=
"hangup()"
translate
>
<i
class=
"mdi-communication-call-end"
></i>
<i
class=
"mdi-communication-call-end"
></i>
{{ watcher ? '
Close' : 'End Call
' }}
{{ watcher ? '
BUTTON_CLOSE' : 'BUTTON_END_CALL
' }}
</button>
</button>
</div>
</div>
</div>
</div>
...
...
html5/verto/verto_communicator/src/storageService/services/splash_screen.js
浏览文件 @
6c197ae2
...
@@ -2,8 +2,8 @@
...
@@ -2,8 +2,8 @@
angular
angular
.
module
(
'storageService'
)
.
module
(
'storageService'
)
.
service
(
'splashscreen'
,
[
'$rootScope'
,
'$q'
,
'storage'
,
'config'
,
'verto'
,
.
service
(
'splashscreen'
,
[
'$rootScope'
,
'$q'
,
'storage'
,
'config'
,
'verto'
,
'$translate'
,
function
(
$rootScope
,
$q
,
storage
,
config
,
verto
)
{
function
(
$rootScope
,
$q
,
storage
,
config
,
verto
,
$translate
)
{
var
checkBrowser
=
function
()
{
var
checkBrowser
=
function
()
{
return
$q
(
function
(
resolve
,
reject
)
{
return
$q
(
function
(
resolve
,
reject
)
{
...
@@ -12,16 +12,15 @@
...
@@ -12,16 +12,15 @@
'activity'
:
activity
,
'activity'
:
activity
,
'soft'
:
false
,
'soft'
:
false
,
'status'
:
'success'
,
'status'
:
'success'
,
'message'
:
'Checking browser compability.'
'message'
:
$translate
.
instant
(
'BROWSER_COMPATIBILITY'
)
};
};
navigator
.
getUserMedia
=
navigator
.
getUserMedia
||
navigator
.
getUserMedia
=
navigator
.
getUserMedia
||
navigator
.
webkitGetUserMedia
||
navigator
.
webkitGetUserMedia
||
navigator
.
mozGetUserMedia
;
navigator
.
mozGetUserMedia
;
if
(
!
navigator
.
getUserMedia
)
{
if
(
!
navigator
.
getUserMedia
)
{
result
[
'status'
]
=
'error'
;
result
[
'status'
]
=
'error'
;
result
[
'message'
]
=
'Error: browser doesn
\'
t support WebRTC.'
;
result
[
'message'
]
=
$translate
.
instant
(
'BROWSER_WITHOUT_WEBRTC'
)
;
reject
(
result
);
reject
(
result
);
}
}
...
@@ -37,13 +36,13 @@
...
@@ -37,13 +36,13 @@
'activity'
:
activity
,
'activity'
:
activity
,
'soft'
:
false
,
'soft'
:
false
,
'status'
:
'success'
,
'status'
:
'success'
,
'message'
:
'Checking media permissions'
'message'
:
$translate
.
instant
(
'CHECK_PERMISSION_MEDIA'
)
};
};
verto
.
mediaPerm
(
function
(
status
)
{
verto
.
mediaPerm
(
function
(
status
)
{
if
(
!
status
)
{
if
(
!
status
)
{
result
[
'status'
]
=
'error'
;
result
[
'status'
]
=
'error'
;
result
[
'message'
]
=
'Error: Media Permission Denied'
;
result
[
'message'
]
=
$translate
.
instant
(
'ERROR_PERMISSION_MEDIA'
)
;
verto
.
data
.
mediaPerm
=
false
;
verto
.
data
.
mediaPerm
=
false
;
reject
(
result
);
reject
(
result
);
}
}
...
@@ -60,7 +59,7 @@
...
@@ -60,7 +59,7 @@
'status'
:
'success'
,
'status'
:
'success'
,
'soft'
:
true
,
'soft'
:
true
,
'activity'
:
activity
,
'activity'
:
activity
,
'message'
:
'Refresh Media Devices.'
'message'
:
$translate
.
instant
(
'REFRESH_MEDIA_DEVICES'
)
};
};
verto
.
refreshDevices
(
function
(
status
)
{
verto
.
refreshDevices
(
function
(
status
)
{
...
@@ -79,7 +78,7 @@
...
@@ -79,7 +78,7 @@
'status'
:
'success'
,
'status'
:
'success'
,
'soft'
:
true
,
'soft'
:
true
,
'activity'
:
activity
,
'activity'
:
activity
,
'message'
:
'Check Connection Speed.'
'message'
:
$translate
.
instant
(
'CHECK_CONNECTION_SPEED'
)
};
};
if
(
storage
.
data
.
autoBand
&&
verto
.
data
.
instance
)
{
if
(
storage
.
data
.
autoBand
&&
verto
.
data
.
instance
)
{
...
@@ -101,7 +100,7 @@
...
@@ -101,7 +100,7 @@
'status'
:
'promise'
,
'status'
:
'promise'
,
'soft'
:
true
,
'soft'
:
true
,
'activity'
:
activity
,
'activity'
:
activity
,
'message'
:
'Provisioning configuration.'
'message'
:
$translate
.
instant
(
'CHECK_PROVISIONING_CONF'
)
};
};
var
configResponse
=
config
.
configure
();
var
configResponse
=
config
.
configure
();
...
@@ -116,7 +115,7 @@
...
@@ -116,7 +115,7 @@
return
result
;
return
result
;
}
else
{
}
else
{
result
[
'status'
]
=
'error'
;
result
[
'status'
]
=
'error'
;
result
[
'message'
]
=
'Error: Provision failed.'
;
result
[
'message'
]
=
$translate
.
instant
(
'ERROR_PROVISIONING_CONF'
)
;
return
result
;
return
result
;
}
}
});
});
...
@@ -134,7 +133,7 @@
...
@@ -134,7 +133,7 @@
'status'
:
'success'
,
'status'
:
'success'
,
'soft'
:
true
,
'soft'
:
true
,
'activity'
:
activity
,
'activity'
:
activity
,
'message'
:
'Checking login.'
'message'
:
$translate
.
instant
(
'CHECK_LOGIN'
),
};
};
if
(
verto
.
data
.
connecting
||
verto
.
data
.
connected
)
{
if
(
verto
.
data
.
connecting
||
verto
.
data
.
connected
)
{
...
@@ -179,19 +178,19 @@
...
@@ -179,19 +178,19 @@
];
];
var
progress_message
=
[
var
progress_message
=
[
'Checking browser compability.'
,
$translate
.
instant
(
'BROWSER_COMPATIBILITY'
)
,
'Checking media permissions'
,
$translate
.
instant
(
'CHECK_PERMISSION_MEDIA'
)
,
'Refresh Media Devices.'
,
$translate
.
instant
(
'REFRESH_MEDIA_DEVICES'
)
,
'Provisioning configuration.'
,
$translate
.
instant
(
'CHECK_PROVISIONING_CONF'
)
,
'Checking login.'
,
$translate
.
instant
(
'CHECK_LOGIN'
)
,
'Check Connection Speed.'
$translate
.
instant
(
'CHECK_CONNECTION_SPEED'
),
];
];
var
getProgressMessage
=
function
(
current_progress
)
{
var
getProgressMessage
=
function
(
current_progress
)
{
if
(
progress_message
[
current_progress
]
!=
undefined
)
{
if
(
progress_message
[
current_progress
]
!=
undefined
)
{
return
progress_message
[
current_progress
];
return
progress_message
[
current_progress
];
}
else
{
}
else
{
return
'Please wait...'
;
return
$translate
.
instant
(
'PLEASE_WAIT'
)
;
}
}
};
};
...
...
html5/verto/verto_communicator/src/vertoApp/vertoApp.module.js
浏览文件 @
6c197ae2
...
@@ -17,10 +17,11 @@
...
@@ -17,10 +17,11 @@
'ui.gravatar'
,
'ui.gravatar'
,
'ui.bootstrap'
,
'ui.bootstrap'
,
'directive.g+signin'
,
'directive.g+signin'
,
'pascalprecht.translate'
,
]);
]);
vertoApp
.
config
([
'$routeProvider'
,
'gravatarServiceProvider'
,
vertoApp
.
config
([
'$routeProvider'
,
'gravatarServiceProvider'
,
'$translateProvider'
,
function
(
$routeProvider
,
gravatarServiceProvider
)
{
function
(
$routeProvider
,
gravatarServiceProvider
,
$translateProvider
)
{
$routeProvider
.
$routeProvider
.
when
(
'/'
,
{
when
(
'/'
,
{
title
:
'Loading'
,
title
:
'Loading'
,
...
@@ -59,6 +60,21 @@
...
@@ -59,6 +60,21 @@
gravatarServiceProvider
.
defaults
=
{
gravatarServiceProvider
.
defaults
=
{
default
:
'mm'
// Mystery man as default for missing avatars
default
:
'mm'
// Mystery man as default for missing avatars
};
};
$translateProvider
.
useStaticFilesLoader
({
prefix
:
'locales/locale-'
,
suffix
:
'.json'
})
.
registerAvailableLanguageKeys
([
'en'
,
'it'
],
{
'en'
:
'en'
,
'en_GB'
:
'en'
,
'en_US'
:
'en'
,
'it'
:
'it'
,
'it_IT'
:
'it'
})
.
preferredLanguage
(
'en'
)
.
fallbackLanguage
(
'en'
)
.
determinePreferredLanguage
()
.
useSanitizeValueStrategy
(
null
);
}
}
]);
]);
...
...
html5/verto/verto_communicator/src/vertoControllers/controllers/ChatController.js
浏览文件 @
6c197ae2
...
@@ -5,9 +5,9 @@
...
@@ -5,9 +5,9 @@
angular
angular
.
module
(
'vertoControllers'
)
.
module
(
'vertoControllers'
)
.
controller
(
'ChatController'
,
[
'$scope'
,
'$rootScope'
,
'$http'
,
.
controller
(
'ChatController'
,
[
'$scope'
,
'$rootScope'
,
'$http'
,
'$location'
,
'$anchorScroll'
,
'$timeout'
,
'verto'
,
'prompt'
,
'$location'
,
'$anchorScroll'
,
'$timeout'
,
'verto'
,
'prompt'
,
'$translate'
,
function
(
$scope
,
$rootScope
,
$http
,
$location
,
$anchorScroll
,
$timeout
,
function
(
$scope
,
$rootScope
,
$http
,
$location
,
$anchorScroll
,
$timeout
,
verto
,
prompt
)
{
verto
,
prompt
,
$translate
)
{
console
.
debug
(
'Executing ChatController.'
);
console
.
debug
(
'Executing ChatController.'
);
function
scrollToChatBottom
()
{
function
scrollToChatBottom
()
{
...
@@ -246,7 +246,7 @@
...
@@ -246,7 +246,7 @@
console
.
log
(
'$scope.confBanner'
);
console
.
log
(
'$scope.confBanner'
);
prompt
({
prompt
({
title
:
'Please insert the banner text'
,
title
:
$translate
.
instant
(
'TITLE_INSERT_BANNER'
)
,
input
:
true
,
input
:
true
,
label
:
''
,
label
:
''
,
value
:
''
,
value
:
''
,
...
@@ -263,7 +263,7 @@
...
@@ -263,7 +263,7 @@
return
;
return
;
}
}
shortPrompt
(
'Please insert the Canvas Id'
,
function
(
canvasID
)
{
shortPrompt
(
$translate
.
instant
(
'TITLE_INSERT_CANVAS_ID'
)
,
function
(
canvasID
)
{
console
.
log
(
memberID
,
canvasID
);
console
.
log
(
memberID
,
canvasID
);
verto
.
setCanvasIn
(
memberID
,
canvasID
);
verto
.
setCanvasIn
(
memberID
,
canvasID
);
});
});
...
@@ -276,7 +276,7 @@
...
@@ -276,7 +276,7 @@
return
;
return
;
}
}
shortPrompt
(
'Please insert the Canvas Id'
,
function
(
canvasID
)
{
shortPrompt
(
$translate
.
instant
(
'TITLE_INSERT_CANVAS_ID'
)
,
function
(
canvasID
)
{
verto
.
setCanvasOut
(
memberID
,
canvasID
);
verto
.
setCanvasOut
(
memberID
,
canvasID
);
});
});
};
};
...
@@ -287,7 +287,7 @@
...
@@ -287,7 +287,7 @@
return
;
return
;
}
}
shortPrompt
(
'Please insert the Layer'
,
function
(
canvasID
)
{
shortPrompt
(
$translate
.
instant
(
'TITLE_INSERT_LAYER'
)
,
function
(
canvasID
)
{
verto
.
setLayer
(
memberID
,
canvasID
);
verto
.
setLayer
(
memberID
,
canvasID
);
});
});
};
};
...
@@ -321,10 +321,10 @@
...
@@ -321,10 +321,10 @@
$scope
.
confTransfer
=
function
(
memberID
)
{
$scope
.
confTransfer
=
function
(
memberID
)
{
console
.
log
(
'$scope.confTransfer'
);
console
.
log
(
'$scope.confTransfer'
);
prompt
({
prompt
({
title
:
'Transfer party?'
,
title
:
$translate
.
instant
(
'TITLE_TRANSFER'
)
,
message
:
'To what destination would you like to transfer this call?'
,
message
:
$translate
.
instant
(
'MESSAGE_TRANSFER'
)
,
input
:
true
,
input
:
true
,
label
:
'Destination'
,
label
:
$translate
.
instant
(
'LABEL_TRANSFER'
)
,
value
:
''
,
value
:
''
,
}).
then
(
function
(
exten
)
{
}).
then
(
function
(
exten
)
{
if
(
exten
)
{
if
(
exten
)
{
...
...
html5/verto/verto_communicator/src/vertoControllers/controllers/InCallController.js
浏览文件 @
6c197ae2
...
@@ -4,9 +4,9 @@
...
@@ -4,9 +4,9 @@
angular
angular
.
module
(
'vertoControllers'
)
.
module
(
'vertoControllers'
)
.
controller
(
'InCallController'
,
[
'$rootScope'
,
'$scope'
,
.
controller
(
'InCallController'
,
[
'$rootScope'
,
'$scope'
,
'$http'
,
'$location'
,
'$modal'
,
'$timeout'
,
'toastr'
,
'verto'
,
'storage'
,
'prompt'
,
'Fullscreen'
,
'$http'
,
'$location'
,
'$modal'
,
'$timeout'
,
'toastr'
,
'verto'
,
'storage'
,
'prompt'
,
'Fullscreen'
,
'$translate'
,
function
(
$rootScope
,
$scope
,
$http
,
$location
,
$modal
,
$timeout
,
toastr
,
function
(
$rootScope
,
$scope
,
$http
,
$location
,
$modal
,
$timeout
,
toastr
,
verto
,
storage
,
prompt
,
Fullscreen
)
{
verto
,
storage
,
prompt
,
Fullscreen
,
$translate
)
{
console
.
debug
(
'Executing InCallController.'
);
console
.
debug
(
'Executing InCallController.'
);
$scope
.
layout
=
null
;
$scope
.
layout
=
null
;
...
@@ -55,8 +55,8 @@
...
@@ -55,8 +55,8 @@
*/
*/
$scope
.
videoCall
=
function
()
{
$scope
.
videoCall
=
function
()
{
prompt
({
prompt
({
title
:
'Would you like to activate video for this call?'
,
title
:
$translate
.
instant
(
'TITLE_ENABLE_VIDEO'
)
,
message
:
'Video will be active during the next calls.'
message
:
$translate
.
instant
(
'MESSAGE_ENABLE_VIDEO'
)
}).
then
(
function
()
{
}).
then
(
function
()
{
storage
.
data
.
videoCall
=
true
;
storage
.
data
.
videoCall
=
true
;
$scope
.
callTemplate
=
'partials/video_call.html'
;
$scope
.
callTemplate
=
'partials/video_call.html'
;
...
...
html5/verto/verto_communicator/src/vertoControllers/controllers/MainController.js
浏览文件 @
6c197ae2
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
angular
angular
.
module
(
'vertoControllers'
)
.
module
(
'vertoControllers'
)
.
controller
(
'MainController'
,
.
controller
(
'MainController'
,
function
(
$scope
,
$rootScope
,
$location
,
$modal
,
$timeout
,
$q
,
verto
,
storage
,
CallHistory
,
toastr
,
Fullscreen
,
prompt
,
eventQueue
)
{
function
(
$scope
,
$rootScope
,
$location
,
$modal
,
$timeout
,
$q
,
verto
,
storage
,
CallHistory
,
toastr
,
Fullscreen
,
prompt
,
eventQueue
,
$translate
)
{
console
.
debug
(
'Executing MainController.'
);
console
.
debug
(
'Executing MainController.'
);
...
@@ -123,8 +123,8 @@
...
@@ -123,8 +123,8 @@
if
(
verto
.
data
.
call
)
{
if
(
verto
.
data
.
call
)
{
prompt
({
prompt
({
title
:
'Oops, Active Call in Course.'
,
title
:
$translate
.
instant
(
'TITLE_ACTIVE_CALL'
)
,
message
:
'It seems that you are in a call. Do you want to hang up?'
message
:
$translate
.
instant
(
'MESSAGE_ACTIVE_CALL_HANGUP'
)
}).
then
(
function
()
{
}).
then
(
function
()
{
disconnect
();
disconnect
();
});
});
...
@@ -326,8 +326,8 @@
...
@@ -326,8 +326,8 @@
return
$q
(
function
(
resolve
,
reject
)
{
return
$q
(
function
(
resolve
,
reject
)
{
if
(
storage
.
data
.
askRecoverCall
)
{
if
(
storage
.
data
.
askRecoverCall
)
{
prompt
({
prompt
({
title
:
'Oops, Active Call in Course.'
,
title
:
$translate
.
instant
(
'TITLE_ACTIVE_CALL'
)
,
message
:
'It seems you were in a call before leaving the last time. Wanna go back to that?'
message
:
$translate
.
instant
(
'MESSAGE_ACTIVE_CALL_BACK'
)
}).
then
(
function
()
{
}).
then
(
function
()
{
console
.
log
(
'redirect to incall page'
);
console
.
log
(
'redirect to incall page'
);
$location
.
path
(
'/incall'
);
$location
.
path
(
'/incall'
);
...
@@ -423,8 +423,8 @@
...
@@ -423,8 +423,8 @@
storage
.
data
.
mutedMic
=
false
;
storage
.
data
.
mutedMic
=
false
;
prompt
({
prompt
({
title
:
'Incoming Call'
,
title
:
$translate
.
instant
(
'TITLE_INCOMING_CALL'
)
,
message
:
'from '
+
data
message
:
$translate
.
instant
(
'MESSAGE_INCOMING_CALL'
)
+
data
}).
then
(
function
()
{
}).
then
(
function
()
{
var
call_start
=
new
Date
(
storage
.
data
.
call_start
);
var
call_start
=
new
Date
(
storage
.
data
.
call_start
);
$rootScope
.
start_time
=
call_start
;
$rootScope
.
start_time
=
call_start
;
...
@@ -450,7 +450,7 @@
...
@@ -450,7 +450,7 @@
*/
*/
$scope
.
hangup
=
function
()
{
$scope
.
hangup
=
function
()
{
if
(
!
verto
.
data
.
call
)
{
if
(
!
verto
.
data
.
call
)
{
toastr
.
warning
(
'There is no call to hangup.'
);
toastr
.
warning
(
$translate
.
instant
(
'MESSAGE_NO_HANGUP_CALL'
)
);
$location
.
path
(
'/dialpad'
);
$location
.
path
(
'/dialpad'
);
return
;
return
;
}
}
...
@@ -501,7 +501,7 @@
...
@@ -501,7 +501,7 @@
};
};
$scope
.
play
=
function
()
{
$scope
.
play
=
function
()
{
var
file
=
$scope
.
promptInput
(
'Please, enter filename'
,
''
,
'File'
,
var
file
=
$scope
.
promptInput
(
$translate
.
instant
(
'MESSAGE_ENTER_FILENAME'
)
,
''
,
'File'
,
function
(
file
)
{
function
(
file
)
{
verto
.
data
.
conf
.
play
(
file
);
verto
.
data
.
conf
.
play
(
file
);
console
.
log
(
'play file :'
,
file
);
console
.
log
(
'play file :'
,
file
);
...
@@ -514,7 +514,7 @@
...
@@ -514,7 +514,7 @@
};
};
$scope
.
record
=
function
()
{
$scope
.
record
=
function
()
{
var
file
=
$scope
.
promptInput
(
'Please, enter filename'
,
''
,
'File'
,
var
file
=
$scope
.
promptInput
(
$translate
.
instant
(
'MESSAGE_ENTER_FILENAME'
)
,
''
,
'File'
,
function
(
file
)
{
function
(
file
)
{
verto
.
data
.
conf
.
record
(
file
);
verto
.
data
.
conf
.
record
(
file
);
console
.
log
(
'recording file :'
,
file
);
console
.
log
(
'recording file :'
,
file
);
...
@@ -526,7 +526,7 @@
...
@@ -526,7 +526,7 @@
};
};
$scope
.
snapshot
=
function
()
{
$scope
.
snapshot
=
function
()
{
var
file
=
$scope
.
promptInput
(
'Please, enter filename'
,
''
,
'File'
,
var
file
=
$scope
.
promptInput
(
$translate
.
instant
(
'MESSAGE_ENTER_FILENAME'
)
,
''
,
'File'
,
function
(
file
)
{
function
(
file
)
{
verto
.
data
.
conf
.
snapshot
(
file
);
verto
.
data
.
conf
.
snapshot
(
file
);
console
.
log
(
'snapshot file :'
,
file
);
console
.
log
(
'snapshot file :'
,
file
);
...
...
html5/verto/verto_communicator/src/vertoControllers/controllers/PreviewController.js
浏览文件 @
6c197ae2
...
@@ -4,9 +4,9 @@
...
@@ -4,9 +4,9 @@
angular
angular
.
module
(
'vertoControllers'
)
.
module
(
'vertoControllers'
)
.
controller
(
'PreviewController'
,
[
'$rootScope'
,
'$scope'
,
.
controller
(
'PreviewController'
,
[
'$rootScope'
,
'$scope'
,
'$http'
,
'$location'
,
'$modal'
,
'$timeout'
,
'toastr'
,
'verto'
,
'storage'
,
'prompt'
,
'Fullscreen'
,
'$http'
,
'$location'
,
'$modal'
,
'$timeout'
,
'toastr'
,
'verto'
,
'storage'
,
'prompt'
,
'Fullscreen'
,
'$translate'
,
function
(
$rootScope
,
$scope
,
$http
,
$location
,
$modal
,
$timeout
,
toastr
,
function
(
$rootScope
,
$scope
,
$http
,
$location
,
$modal
,
$timeout
,
toastr
,
verto
,
storage
,
prompt
,
Fullscreen
)
{
verto
,
storage
,
prompt
,
Fullscreen
,
$translate
)
{
$scope
.
storage
=
storage
;
$scope
.
storage
=
storage
;
console
.
debug
(
'Executing PreviewController.'
);
console
.
debug
(
'Executing PreviewController.'
);
...
@@ -87,8 +87,8 @@
...
@@ -87,8 +87,8 @@
$scope
.
videoCall
=
function
()
{
$scope
.
videoCall
=
function
()
{
prompt
({
prompt
({
title
:
'Would you like to activate video for this call?'
,
title
:
$translate
.
instant
(
'TITLE_ENABLE_VIDEO'
)
,
message
:
'Video will be active during the next calls.'
message
:
$translate
.
instant
(
'MESSAGE_ENABLE_VIDEO'
)
}).
then
(
function
()
{
}).
then
(
function
()
{
storage
.
data
.
videoCall
=
true
;
storage
.
data
.
videoCall
=
true
;
$scope
.
callTemplate
=
'partials/video_call.html'
;
$scope
.
callTemplate
=
'partials/video_call.html'
;
...
...
html5/verto/verto_communicator/src/vertoControllers/controllers/SettingsController.js
浏览文件 @
6c197ae2
...
@@ -4,8 +4,8 @@
...
@@ -4,8 +4,8 @@
angular
angular
.
module
(
'vertoControllers'
)
.
module
(
'vertoControllers'
)
.
controller
(
'SettingsController'
,
[
'$scope'
,
'$http'
,
.
controller
(
'SettingsController'
,
[
'$scope'
,
'$http'
,
'$location'
,
'$rootScope'
,
'storage'
,
'verto'
,
'$location'
,
'$rootScope'
,
'storage'
,
'verto'
,
'$translate'
,
function
(
$scope
,
$http
,
$location
,
$rootScope
,
storage
,
verto
)
{
function
(
$scope
,
$http
,
$location
,
$rootScope
,
storage
,
verto
,
$translate
)
{
console
.
debug
(
'Executing ModalSettingsController.'
);
console
.
debug
(
'Executing ModalSettingsController.'
);
$
.
material
.
init
();
$
.
material
.
init
();
...
@@ -47,7 +47,7 @@
...
@@ -47,7 +47,7 @@
return
;
return
;
}
}
else
{
else
{
toastr
.
warning
(
'Can
\'
t display preview settings during a call'
);
toastr
.
warning
(
$translate
.
instant
(
'MESSAGE_DISPLAY_SETTINGS'
)
);
}
}
};
};
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论