Changes the configuration of translation module to retrieve the resources synchronous. Removes the default values.

This commit is contained in:
hristoterezov 2015-02-26 17:35:35 +02:00
parent 9123923818
commit af682f8727
16 changed files with 17339 additions and 17495 deletions

View File

@ -19,7 +19,7 @@
<script src="libs/popover.js?v=1"></script><!-- bootstrap tooltip lib --> <script src="libs/popover.js?v=1"></script><!-- bootstrap tooltip lib -->
<script src="libs/toastr.js?v=1"></script><!-- notifications lib --> <script src="libs/toastr.js?v=1"></script><!-- notifications lib -->
<script src="interface_config.js?v=5"></script> <script src="interface_config.js?v=5"></script>
<script src="libs/app.bundle.js?v=23"></script> <script src="libs/app.bundle.js?v=24"></script>
<script src="analytics.js?v=1"></script><!-- google analytics plugin --> <script src="analytics.js?v=1"></script><!-- google analytics plugin -->
<link rel="stylesheet" href="css/font.css?v=6"/> <link rel="stylesheet" href="css/font.css?v=6"/>
<link rel="stylesheet" href="css/toastr.css?v=1"> <link rel="stylesheet" href="css/toastr.css?v=1">

View File

@ -175,6 +175,10 @@
"yourPassword": "your password", "yourPassword": "your password",
"Back": "Back", "Back": "Back",
"serviceUnavailable": "Service unavailable", "serviceUnavailable": "Service unavailable",
"gracefulShutdown": "Our service is currently down for maintenance. Please try again later." "gracefulShutdown": "Our service is currently down for maintenance. Please try again later.",
"Yes": "Yes",
"reservationError": "Reservation system error",
"reservationErrorMsg": "Error code: __code__, message: __msg__"
} }
} }

File diff suppressed because it is too large Load Diff

View File

@ -317,10 +317,8 @@ RTCUtils.prototype.errorCallback = function (error) {
function (error) { function (error) {
console.error('failed to obtain audio/video stream - stop', console.error('failed to obtain audio/video stream - stop',
error); error);
APP.UI.messageHandler.showError("dialog.error", "Error", APP.UI.messageHandler.showError("dialog.error",
"dialog.failedpermissions", "dialog.failedpermissions");
"Failed to obtain permissions to use the local microphone " +
"and/or camera.");
} }
); );
} }

View File

@ -137,16 +137,18 @@ function registerListeners() {
APP.xmpp.addListener(XMPPEvents.DISPOSE_CONFERENCE, onDisposeConference); APP.xmpp.addListener(XMPPEvents.DISPOSE_CONFERENCE, onDisposeConference);
APP.xmpp.addListener(XMPPEvents.GRACEFUL_SHUTDOWN, function () { APP.xmpp.addListener(XMPPEvents.GRACEFUL_SHUTDOWN, function () {
messageHandler.openMessageDialog( messageHandler.openMessageDialog(
'dialog.serviceUnavailable', 'Service unavailable', 'dialog.serviceUnavailable',
'dialog.gracefulShutdown', 'dialog.gracefulShutdown'
'Our service is currently down for maintenance.' +
' Please try again later.'
); );
}); });
APP.xmpp.addListener(XMPPEvents.RESERVATION_ERROR, function (code, msg) { APP.xmpp.addListener(XMPPEvents.RESERVATION_ERROR, function (code, msg) {
var title = APP.translation.generateTranslatonHTML(
"dialog.reservationError");
var message = APP.translation.generateTranslatonHTML(
"dialog.reservationErrorMsg", {code: code, msg: msg});
messageHandler.openDialog( messageHandler.openDialog(
'Reservation system error', title,
'Error code: ' + code + ', message: ' + msg, message,
true, {}, true, {},
function (event, value, message, formVals) function (event, value, message, formVals)
{ {
@ -155,14 +157,15 @@ function registerListeners() {
); );
}); });
APP.xmpp.addListener(XMPPEvents.KICKED, function () { APP.xmpp.addListener(XMPPEvents.KICKED, function () {
messageHandler.openMessageDialog("dialog.sessTerminated", "Session Terminated", messageHandler.openMessageDialog("dialog.sessTerminated",
"dialog.kickMessage", "Ouch! You have been kicked out of the meet!"); "dialog.kickMessage");
}); });
APP.xmpp.addListener(XMPPEvents.MUC_DESTROYED, function (reason) { APP.xmpp.addListener(XMPPEvents.MUC_DESTROYED, function (reason) {
//FIXME: use Session Terminated from translation, but //FIXME: use Session Terminated from translation, but
// 'reason' text comes from XMPP packet and is not translated // 'reason' text comes from XMPP packet and is not translated
var title = APP.translation.generateTranslatonHTML("dialog.sessTerminated");
messageHandler.openDialog( messageHandler.openDialog(
"Session Terminated", reason, true, {}, title, reason, true, {},
function (event, value, message, formVals) function (event, value, message, formVals)
{ {
return false; return false;
@ -170,9 +173,8 @@ function registerListeners() {
); );
}); });
APP.xmpp.addListener(XMPPEvents.BRIDGE_DOWN, function () { APP.xmpp.addListener(XMPPEvents.BRIDGE_DOWN, function () {
messageHandler.showError("dialog.error","Error", messageHandler.showError("dialog.error",
"dialog.bridgeUnavailable", "dialog.bridgeUnavailable");
"Jitsi Videobridge is currently unavailable. Please try again later!");
}); });
APP.xmpp.addListener(XMPPEvents.USER_ID_CHANGED, function (from, id) { APP.xmpp.addListener(XMPPEvents.USER_ID_CHANGED, function (from, id) {
Avatar.setUserAvatar(from, id); Avatar.setUserAvatar(from, id);
@ -417,9 +419,9 @@ function onMucLeft(jid) {
console.log('left.muc', jid); console.log('left.muc', jid);
var displayName = $('#participant_' + Strophe.getResourceFromJid(jid) + var displayName = $('#participant_' + Strophe.getResourceFromJid(jid) +
'>.displayname').html(); '>.displayname').html();
messageHandler.notify(displayName,'notify.somebody', "Somebody", messageHandler.notify(displayName,'notify.somebody',
'disconnected', 'disconnected',
'notify.disconnected', "disconnected"); 'notify.disconnected');
// Need to call this with a slight delay, otherwise the element couldn't be // Need to call this with a slight delay, otherwise the element couldn't be
// found for some reason. // found for some reason.
// XXX(gp) it works fine without the timeout for me (with Chrome 38). // XXX(gp) it works fine without the timeout for me (with Chrome 38).
@ -450,8 +452,7 @@ function onLocalRoleChange(jid, info, pres, isModerator)
if (isModerator) { if (isModerator) {
Authentication.closeAuthenticationWindow(); Authentication.closeAuthenticationWindow();
messageHandler.notify(null, "notify.me", messageHandler.notify(null, "notify.me",
'Me', 'connected', "notify.moderator", 'connected', "notify.moderator");
'Moderator rights granted !');
} }
} }
@ -475,7 +476,7 @@ function onPasswordReqiured(callback) {
Toolbar.lockLockButton(); Toolbar.lockLockButton();
var message = '<h2 data-i18n="dialog.passwordRequired">'; var message = '<h2 data-i18n="dialog.passwordRequired">';
message += APP.translation.translateString( message += APP.translation.translateString(
"dialog.passwordRequired", null, "Password required"); "dialog.passwordRequired");
message += '</h2>' + message += '</h2>' +
'<input id="lockKey" type="text" placeholder="password" autofocus>'; '<input id="lockKey" type="text" placeholder="password" autofocus>';
@ -498,9 +499,9 @@ function onPasswordReqiured(callback) {
); );
} }
function onMucEntered(jid, id, displayName) { function onMucEntered(jid, id, displayName) {
messageHandler.notify(displayName,'notify.somebody', "Somebody", messageHandler.notify(displayName,'notify.somebody',
'connected', 'connected',
'notify.connected', "connected"); 'notify.connected');
// Add Peer's container // Add Peer's container
VideoLayout.ensurePeerContainerExists(jid,id); VideoLayout.ensurePeerContainerExists(jid,id);
@ -516,9 +517,7 @@ function onMucRoleChanged(role, displayName) {
if (role === 'moderator') { if (role === 'moderator') {
var messageKey, messageOptions = {}; var messageKey, messageOptions = {};
var lDisplayName = displayName; if (!displayName) {
if (!lDisplayName) {
lDisplayName = 'Somebody';
messageKey = "notify.grantedToUnknown"; messageKey = "notify.grantedToUnknown";
} }
else else
@ -527,9 +526,8 @@ function onMucRoleChanged(role, displayName) {
messageOptions = {to: displayName}; messageOptions = {to: displayName};
} }
messageHandler.notify( messageHandler.notify(
displayName,'notify.somebody', "Somebody", displayName,'notify.somebody',
'connected', messageKey, 'connected', messageKey,
'Moderator rights granted to ' + lDisplayName + '!',
messageOptions); messageOptions);
} }
} }
@ -641,7 +639,7 @@ UI.showLoginPopup = function(callback)
console.log('password is required'); console.log('password is required');
var message = '<h2 data-i18n="dialog.passwordRequired">'; var message = '<h2 data-i18n="dialog.passwordRequired">';
message += APP.translation.translateString( message += APP.translation.translateString(
"dialog.passwordRequired", null, "Password required"); "dialog.passwordRequired");
message += '</h2>' + message += '</h2>' +
'<input id="passwordrequired.username" type="text" ' + '<input id="passwordrequired.username" type="text" ' +
'placeholder="user@domain.net" autofocus>' + 'placeholder="user@domain.net" autofocus>' +

View File

@ -16,16 +16,11 @@ var Authentication = {
// extract room name from 'room@muc.server.net' // extract room name from 'room@muc.server.net'
var room = roomName.substr(0, roomName.indexOf('@')); var room = roomName.substr(0, roomName.indexOf('@'));
var title = APP.translation.generateTranslatonHTML("dialog.Stop", var title = APP.translation.generateTranslatonHTML("dialog.Stop");
"Stop");
var defMsg = 'Authentication is required to create room:<br/><b>' +
room +
'</b></br> You can either authenticate to create the room or ' +
'just wait for someone else to do so.';
var msg = APP.translation.generateTranslatonHTML("dialog.AuthMsg", var msg = APP.translation.generateTranslatonHTML("dialog.AuthMsg",
defMsg, {room: room}); {room: room});
var button = APP.translation.generateTranslatonHTML( var button = APP.translation.generateTranslatonHTML(
"dialog.Authenticate", "Authenticate"); "dialog.Authenticate");
var buttons = {}; var buttons = {};
buttons.authenticate = {title: button, value: "authNow"}; buttons.authenticate = {title: button, value: "authNow"};

View File

@ -34,8 +34,9 @@ var Prezi = {
var myprezi = APP.xmpp.getPrezi(); var myprezi = APP.xmpp.getPrezi();
if (myprezi) { if (myprezi) {
messageHandler.openTwoButtonDialog("dialog.removePreziTitle", messageHandler.openTwoButtonDialog("dialog.removePreziTitle",
"Remove Prezi", "dialog.removePreziMsg", null,
"Are you sure you would like to remove your Prezi?", "dialog.removePreziMsg",
null,
false, false,
"dialog.Remove", "dialog.Remove",
function(e,v,m,f) { function(e,v,m,f) {
@ -47,9 +48,8 @@ var Prezi = {
} }
else if (preziPlayer != null) { else if (preziPlayer != null) {
messageHandler.openTwoButtonDialog("dialog.sharePreziTitle", messageHandler.openTwoButtonDialog("dialog.sharePreziTitle",
"Share a Prezi", "dialog.sharePreziMsg", null, "dialog.sharePreziMsg",
"Another participant is already sharing a Prezi." + null,
"This conference allows only one Prezi at a time.",
false, false,
"dialog.Ok", "dialog.Ok",
function(e,v,m,f) { function(e,v,m,f) {
@ -59,20 +59,20 @@ var Prezi = {
} }
else { else {
var html = APP.translation.generateTranslatonHTML( var html = APP.translation.generateTranslatonHTML(
"dialog.sharePreziTitle", "Share a Prezi"); "dialog.sharePreziTitle");
var cancelButton = APP.translation.generateTranslatonHTML( var cancelButton = APP.translation.generateTranslatonHTML(
"dialog.Cancel", "Cancel"); "dialog.Cancel");
var shareButton = APP.translation.generateTranslatonHTML( var shareButton = APP.translation.generateTranslatonHTML(
"dialog.Share", "Share"); "dialog.Share");
var backButton = APP.translation.generateTranslatonHTML( var backButton = APP.translation.generateTranslatonHTML(
"dialog.Back", "Back"); "dialog.Back");
var buttons = {}; var buttons = {};
var buttons1 = {}; var buttons1 = {};
buttons1.button1 = buttons.button1 = {title: cancelButton, value: false}; buttons1.button1 = buttons.button1 = {title: cancelButton, value: false};
buttons.button2 = {title: shareButton, value: true}; buttons.button2 = {title: shareButton, value: true};
buttons1.button2 = {title: backButton, value: true}; buttons1.button2 = {title: backButton, value: true};
var linkError = APP.translation.generateTranslatonHTML( var linkError = APP.translation.generateTranslatonHTML(
"dialog.preziLinkError", "Please provide a correct prezi link.") "dialog.preziLinkError");
var openPreziState = { var openPreziState = {
state0: { state0: {
html: '<h2>' + html + '</h2>' + html: '<h2>' + html + '</h2>' +

View File

@ -27,6 +27,7 @@ var SettingsMenu = {
init: function () { init: function () {
$("#updateSettings").before(generateLanguagesSelectBox()); $("#updateSettings").before(generateLanguagesSelectBox());
APP.translation.translateElement($("#languages_selectbox"));
$('#settingsmenu>input').keyup(function(event){ $('#settingsmenu>input').keyup(function(event){
if(event.keyCode === 13) {//enter if(event.keyCode === 13) {//enter
SettingsMenu.update(); SettingsMenu.update();

View File

@ -66,10 +66,12 @@ var buttonHandlers =
"toolbar_button_logout": function () { "toolbar_button_logout": function () {
// Ask for confirmation // Ask for confirmation
messageHandler.openTwoButtonDialog( messageHandler.openTwoButtonDialog(
"dialog.logoutTitle", "Logout", "dialog.logoutTitle",
null,
"dialog.logoutQuestion", "dialog.logoutQuestion",
"Are you sure you want to logout and stop the conference ?", null,
false, "Yes", false,
"dialog.Yes",
function (evt, yes) { function (evt, yes) {
if (yes) { if (yes) {
APP.xmpp.logout(function (url) { APP.xmpp.logout(function (url) {
@ -97,11 +99,11 @@ function hangup() {
} }
var title = APP.translation.generateTranslatonHTML( var title = APP.translation.generateTranslatonHTML(
"dialog.sessTerminated", "Session Terminated"); "dialog.sessTerminated");
var msg = APP.translation.generateTranslatonHTML( var msg = APP.translation.generateTranslatonHTML(
"dialog.hungUp","You hung up the call"); "dialog.hungUp");
var button = APP.translation.generateTranslatonHTML( var button = APP.translation.generateTranslatonHTML(
"dialog.joinAgain", "Join again"); "dialog.joinAgain");
var buttons = {}; var buttons = {};
buttons.joinAgain = {title: button, value: true}; buttons.joinAgain = {title: button, value: true};
@ -125,7 +127,7 @@ function hangup() {
function toggleRecording() { function toggleRecording() {
APP.xmpp.toggleRecording(function (callback) { APP.xmpp.toggleRecording(function (callback) {
var msg = APP.translation.generateTranslatonHTML( var msg = APP.translation.generateTranslatonHTML(
"dialog.recordingToken", "Enter recording token"); "dialog.recordingToken");
APP.UI.messageHandler.openTwoButtonDialog(null, null, null, APP.UI.messageHandler.openTwoButtonDialog(null, null, null,
'<h2>' + msg + '</h2>' + '<h2>' + msg + '</h2>' +
'<input id="recordingToken" type="text" ' + '<input id="recordingToken" type="text" ' +
@ -172,16 +174,13 @@ function lockRoom(lock) {
} }
}, function (err) { }, function (err) {
console.warn('setting password failed', err); console.warn('setting password failed', err);
messageHandler.showError("dialog.lockTitle", 'Lock failed', messageHandler.showError("dialog.lockTitle",
"dialog.lockMessage", "dialog.lockMessage");
'Failed to lock conference.',
err);
Toolbar.setSharedKey(''); Toolbar.setSharedKey('');
}, function () { }, function () {
console.warn('room passwords not supported'); console.warn('room passwords not supported');
messageHandler.showError("dialog.warning", 'Warning', messageHandler.showError("dialog.warning",
"dialog.passwordNotSupported", "dialog.passwordNotSupported");
'Room passwords are currently not supported.');
Toolbar.setSharedKey(''); Toolbar.setSharedKey('');
}); });
}; };
@ -233,7 +232,7 @@ function callSipButtonClicked()
= config.defaultSipNumber ? config.defaultSipNumber : ''; = config.defaultSipNumber ? config.defaultSipNumber : '';
var sipMsg = APP.translation.generateTranslatonHTML( var sipMsg = APP.translation.generateTranslatonHTML(
"dialog.sipMsg", "Enter SIP number"); "dialog.sipMsg");
messageHandler.openTwoButtonDialog(null, null, null, messageHandler.openTwoButtonDialog(null, null, null,
'<h2>' + sipMsg + '</h2>' + '<h2>' + sipMsg + '</h2>' +
'<input id="sipNumber" type="text"' + '<input id="sipNumber" type="text"' +
@ -318,10 +317,7 @@ var Toolbar = (function (my) {
}, url); }, url);
if (!authenticationWindow) { if (!authenticationWindow) {
messageHandler.openMessageDialog( messageHandler.openMessageDialog(
null, null, "dialog.popupError", null, "dialog.popupError");
"Your browser is blocking popup windows from this site." +
" Please enable popups in your browser security settings" +
" and try again.");
} }
}); });
} }
@ -359,26 +355,16 @@ var Toolbar = (function (my) {
// Only the focus is able to set a shared key. // Only the focus is able to set a shared key.
if (!APP.xmpp.isModerator()) { if (!APP.xmpp.isModerator()) {
if (sharedKey) { if (sharedKey) {
messageHandler.openMessageDialog(null, null, messageHandler.openMessageDialog(null,
"dialog.passwordError", "dialog.passwordError");
"This conversation is currently protected by" +
" a password. Only the owner of the conference" +
" could set a password.",
false,
"Password");
} else { } else {
messageHandler.openMessageDialog(null, null, "dialog.passwordError2", messageHandler.openMessageDialog(null, "dialog.passwordError2");
"This conversation isn't currently protected by" +
" a password. Only the owner of the conference" +
" could set a password.",
false,
"Password");
} }
} else { } else {
if (sharedKey) { if (sharedKey) {
messageHandler.openTwoButtonDialog(null, null, messageHandler.openTwoButtonDialog(null, null,
"dialog.passwordCheck", "dialog.passwordCheck",
"Are you sure you would like to remove your password?", null,
false, false,
"dialog.Remove", "dialog.Remove",
function (e, v) { function (e, v) {
@ -389,9 +375,9 @@ var Toolbar = (function (my) {
}); });
} else { } else {
var msg = APP.translation.generateTranslatonHTML( var msg = APP.translation.generateTranslatonHTML(
"dialog.passwordMsg", "Set a password to lock your room"); "dialog.passwordMsg");
var yourPassword = APP.translation.translateString( var yourPassword = APP.translation.translateString(
"dialog.yourPassword", null, "your password"); "dialog.yourPassword");
messageHandler.openTwoButtonDialog(null, null, null, messageHandler.openTwoButtonDialog(null, null, null,
'<h2>' + msg + '</h2>' + '<h2>' + msg + '</h2>' +
'<input id="lockKey" type="text"' + '<input id="lockKey" type="text"' +
@ -427,7 +413,7 @@ var Toolbar = (function (my) {
inviteLink = encodeURI(roomUrl); inviteLink = encodeURI(roomUrl);
} }
messageHandler.openTwoButtonDialog("dialog.shareLink", messageHandler.openTwoButtonDialog("dialog.shareLink",
"Share this link with everyone you want to invite", null, null, null,
'<input id="inviteLinkRef" type="text" value="' + '<input id="inviteLinkRef" type="text" value="' +
inviteLink + '" onclick="this.select();" readonly>', inviteLink + '" onclick="this.select();" readonly>',
false, false,
@ -455,15 +441,14 @@ var Toolbar = (function (my) {
*/ */
my.openSettingsDialog = function () { my.openSettingsDialog = function () {
var settings1 = APP.translation.generateTranslatonHTML( var settings1 = APP.translation.generateTranslatonHTML(
"dialog.settings1", "Configure your conference"); "dialog.settings1");
var settings2 = APP.translation.generateTranslatonHTML( var settings2 = APP.translation.generateTranslatonHTML(
"dialog.settings2", "Participants join muted"); "dialog.settings2");
var settings3 = APP.translation.generateTranslatonHTML( var settings3 = APP.translation.generateTranslatonHTML(
"dialog.settings3", "Require nicknames<br/><br/>" + "dialog.settings3");
"Set a password to lock your room:");
var yourPassword = APP.translation.translateString( var yourPassword = APP.translation.translateString(
"dialog.yourPassword", null, "your password"); "dialog.yourPassword");
messageHandler.openTwoButtonDialog(null, messageHandler.openTwoButtonDialog(null,
'<h2>' + settings1 + '</h2>' + '<h2>' + settings1 + '</h2>' +

View File

@ -7,16 +7,13 @@ var messageHandler = (function(my) {
* @param titleString the title of the message * @param titleString the title of the message
* @param messageString the text of the message * @param messageString the text of the message
*/ */
my.openMessageDialog = function(titleKey, titleString, my.openMessageDialog = function(titleKey, messageKey) {
messageKey, messageString) {
var title = null; var title = null;
if(titleKey) if(titleKey)
{ {
title = APP.translation.generateTranslatonHTML(titleKey, title = APP.translation.generateTranslatonHTML(titleKey);
titleString);
} }
var message = APP.translation.generateTranslatonHTML(messageKey, var message = APP.translation.generateTranslatonHTML(messageKey);
messageString);
$.prompt(message, $.prompt(message,
{ {
title: title, title: title,
@ -43,16 +40,15 @@ var messageHandler = (function(my) {
var leftButton = APP.translation.generateTranslatonHTML(leftButtonKey); var leftButton = APP.translation.generateTranslatonHTML(leftButtonKey);
var buttons = {}; var buttons = {};
buttons.button1 = {title: leftButton, value: true}; buttons.button1 = {title: leftButton, value: true};
var cancelButton = APP.translation.generateTranslatonHTML("dialog.Cancel", var cancelButton = APP.translation.generateTranslatonHTML("dialog.Cancel");
"Cancel");
buttons.button2 = {title: cancelButton, value: false}; buttons.button2 = {title: cancelButton, value: false};
var message = msgString, title = titleString; var message = msgString, title = titleString;
if(titleKey) if(titleKey)
{ {
title = APP.translation.generateTranslatonHTML(titleKey, titleString); title = APP.translation.generateTranslatonHTML(titleKey);
} }
if(msgKey) { if(msgKey) {
message = APP.translation.generateTranslatonHTML(msgKey, msgString); message = APP.translation.generateTranslatonHTML(msgKey);
} }
$.prompt(message, { $.prompt(message, {
title: title, title: title,
@ -76,7 +72,7 @@ var messageHandler = (function(my) {
* @param submitFunction function to be called on submit * @param submitFunction function to be called on submit
* @param loadedFunction function to be called after the prompt is fully loaded * @param loadedFunction function to be called after the prompt is fully loaded
*/ */
my.openDialog = function (titleString, msgString, persistent, buttons, my.openDialog = function (titleString, msgString, persistent, buttons,
submitFunction, loadedFunction) { submitFunction, loadedFunction) {
var args = { var args = {
title: titleString, title: titleString,
@ -152,9 +148,8 @@ var messageHandler = (function(my) {
* @param msgString the text of the message * @param msgString the text of the message
* @param error the error that is being reported * @param error the error that is being reported
*/ */
my.openReportDialog = function(titleKey, titleString, msgKey, my.openReportDialog = function(titleKey, msgKey, error) {
msgString, error) { my.openMessageDialog(titleKey, msgKey);
my.openMessageDialog(titleKey, titleString, msgKey, msgString);
console.log(error); console.log(error);
//FIXME send the error to the server //FIXME send the error to the server
}; };
@ -164,22 +159,20 @@ var messageHandler = (function(my) {
* @param title the title of the message * @param title the title of the message
* @param message the text of the messafe * @param message the text of the messafe
*/ */
my.showError = function(titleKey, title, msgKey, message) { my.showError = function(titleKey, msgKey) {
if(!titleKey) { if(!titleKey) {
title = "Oops!";
titleKey = "dialog.oops"; titleKey = "dialog.oops";
} }
if(!msgKey) if(!msgKey)
{ {
message = "There was some kind of error";
msgKey = "dialog.defaultError"; msgKey = "dialog.defaultError";
} }
messageHandler.openMessageDialog(titleKey, title, msgKey, message); messageHandler.openMessageDialog(titleKey, msgKey);
}; };
my.notify = function(displayName, displayNameKey, displayNameDefault, my.notify = function(displayName, displayNameKey,
cls, messageKey, messageDefault, messageArguments) { cls, messageKey, messageArguments) {
var displayNameSpan = '<span class="nickname" '; var displayNameSpan = '<span class="nickname" ';
if(displayName) if(displayName)
{ {
@ -188,22 +181,17 @@ var messageHandler = (function(my) {
else else
{ {
displayNameSpan += "data-i18n='" + displayNameKey + displayNameSpan += "data-i18n='" + displayNameKey +
"'>" + APP.translation.translateString(displayNameKey, null, "'>" + APP.translation.translateString(displayNameKey);
{defaultValue: displayNameDefault});
} }
displayNameSpan += "</span>"; displayNameSpan += "</span>";
var lMessageArguments = messageArguments;
if(!messageArguments)
lMessageArguments = {};
lMessageArguments.defaultValue = messageDefault;
toastr.info( toastr.info(
displayNameSpan + '<br>' + displayNameSpan + '<br>' +
'<span class=' + cls + ' data-i18n="' + messageKey + '"' + '<span class=' + cls + ' data-i18n="' + messageKey + '"' +
(messageArguments? (messageArguments?
" i18n-options='" + JSON.stringify(messageArguments) + "'" " i18n-options='" + JSON.stringify(messageArguments) + "'"
: "") + ">" + : "") + ">" +
APP.translation.translateString(messageKey, null, APP.translation.translateString(messageKey,
lMessageArguments) + messageArguments) +
'</span>'); '</span>');
}; };

View File

@ -92,9 +92,8 @@ function isUpdateRequired(minVersion, extVersion)
catch (e) catch (e)
{ {
console.error("Failed to parse extension version", e); console.error("Failed to parse extension version", e);
APP.UI.messageHandler.showError("dialog.error", 'Error', APP.UI.messageHandler.showError("dialog.error",
"dialod.detectext", "dialog.detectext");
'Error when trying to detect desktopsharing extension.');
return true; return true;
} }
} }
@ -175,9 +174,8 @@ function obtainScreenFromExtension(streamCallback, failCallback) {
function (arg) { function (arg) {
console.log("Failed to install the extension", arg); console.log("Failed to install the extension", arg);
failCallback(arg); failCallback(arg);
APP.UI.messageHandler.showError("dialog.error", 'Error', APP.UI.messageHandler.showError("dialog.error",
"dialog.failtoinstall", "dialog.failtoinstall");
'Failed to install desktop sharing extension');
} }
); );
} }

View File

@ -2,8 +2,6 @@ var i18n = require("i18next-client");
var languages = require("../../service/translation/languages"); var languages = require("../../service/translation/languages");
var Settings = require("../settings/Settings"); var Settings = require("../settings/Settings");
var DEFAULT_LANG = languages.EN; var DEFAULT_LANG = languages.EN;
var initialized = false;
var waitingForInit = [];
i18n.addPostProcessor("resolveAppName", function(value, key, options) { i18n.addPostProcessor("resolveAppName", function(value, key, options) {
return value.replace("__app__", interfaceConfig.APP_NAME); return value.replace("__app__", interfaceConfig.APP_NAME);
@ -27,13 +25,12 @@ var defaultOptions = {
fallbackOnEmpty: true, fallbackOnEmpty: true,
useDataAttrOptions: true, useDataAttrOptions: true,
app: interfaceConfig.APP_NAME, app: interfaceConfig.APP_NAME,
getAsync: true, getAsync: false,
customLoad: function(lng, ns, options, done) { customLoad: function(lng, ns, options, done) {
var resPath = "lang/__ns__-__lng__.json"; var resPath = "lang/__ns__-__lng__.json";
if(lng === languages.EN) if(lng === languages.EN)
resPath = "lang/__ns__.json"; resPath = "lang/__ns__.json";
var url = i18n.functions.applyReplacement(resPath, { lng: lng, ns: ns }); var url = i18n.functions.applyReplacement(resPath, { lng: lng, ns: ns });
initialized = false;
i18n.functions.ajax({ i18n.functions.ajax({
url: url, url: url,
success: function(data, status, xhr) { success: function(data, status, xhr) {
@ -67,14 +64,7 @@ var defaultOptions = {
function initCompleted(t) function initCompleted(t)
{ {
initialized = true;
$("[data-i18n]").i18n(); $("[data-i18n]").i18n();
for(var i = 0; i < waitingForInit.length; i++)
{
var obj = waitingForInit[i];
obj.callback(i18n.t(obj.key));
}
waitingForInit = [];
} }
function checkForParameter() { function checkForParameter() {
@ -92,7 +82,6 @@ function checkForParameter() {
module.exports = { module.exports = {
init: function (lang) { init: function (lang) {
initialized = false;
var options = defaultOptions; var options = defaultOptions;
@ -113,21 +102,10 @@ module.exports = {
i18n.init(options, initCompleted); i18n.init(options, initCompleted);
}, },
translateString: function (key, cb, options) { translateString: function (key, options) {
if(!cb) return i18n.t(key, options);
return i18n.t(key, options);
if(initialized)
{
cb(i18n.t(key, options));
}
else
{
waitingForInit.push({"callback": cb, "key": key});
}
}, },
setLanguage: function (lang) { setLanguage: function (lang) {
initialized = false;
if(!lang) if(!lang)
lang = DEFAULT_LANG; lang = DEFAULT_LANG;
i18n.setLng(lang, defaultOptions, initCompleted); i18n.setLng(lang, defaultOptions, initCompleted);
@ -138,20 +116,14 @@ module.exports = {
translateElement: function (selector) { translateElement: function (selector) {
selector.i18n(); selector.i18n();
}, },
generateTranslatonHTML: function (key, defaultString, options) { generateTranslatonHTML: function (key, options) {
var str = "<span data-i18n=\"" + key + "\""; var str = "<span data-i18n=\"" + key + "\"";
if(options) if(options)
{ {
str += " data-i18n-options=\"" + JSON.stringify(options) + "\""; str += " data-i18n-options=\"" + JSON.stringify(options) + "\"";
} }
str += ">"; str += ">";
if(!options) str += this.translateString(key, options);
options = {};
if(defaultString)
{
options.defaultValue = defaultString;
}
str += this.translateString(key, null, options);
str += "</span>"; str += "</span>";
return str; return str;

View File

@ -1226,9 +1226,8 @@ JingleSession.onJingleFatalError = function (session, error)
{ {
this.service.sessionTerminated = true; this.service.sessionTerminated = true;
this.connection.emuc.doLeave(); this.connection.emuc.doLeave();
APP.UI.messageHandler.showError("dialog.sorry", "Sorry", APP.UI.messageHandler.showError("dialog.sorry",
"dialog.internalError", "dialog.internalError");
"Internal application error[setRemoteDescription]");
} }
JingleSession.prototype.setLocalDescription = function () { JingleSession.prototype.setLocalDescription = function () {

View File

@ -324,9 +324,7 @@ var Moderator = {
if (!invalidSession) { if (!invalidSession) {
APP.UI.messageHandler.notify( APP.UI.messageHandler.notify(
null, "notify.focus", null, "notify.focus",
'Conference focus', 'disconnected', "notify.focusFail", 'disconnected', "notify.focusFail",
focusComponent + " not available - retry in " +
retrySec + " sec",
{component: focusComponent, ms: retrySec}); {component: focusComponent, ms: retrySec});
} }
// Reset response timeout // Reset response timeout

View File

@ -285,26 +285,18 @@ module.exports = function(XMPP, eventEmitter) {
// We're either missing Jicofo/Prosody config for anonymous // We're either missing Jicofo/Prosody config for anonymous
// domains or something is wrong. // domains or something is wrong.
// XMPP.promptLogin(); // XMPP.promptLogin();
APP.UI.messageHandler.openReportDialog(null, null, APP.UI.messageHandler.openReportDialog(null,
"dialog.joinError", "dialog.joinError", pres);
'Oops ! We couldn`t join the conference.' +
' There might be some problem with security' +
' configuration. Please contact service' +
' administrator.', pres);
} else { } else {
console.warn('onPresError ', pres); console.warn('onPresError ', pres);
APP.UI.messageHandler.openReportDialog(null, null, APP.UI.messageHandler.openReportDialog(null,
"dialog.connectError", "dialog.connectError",
'Oops! Something went wrong and we couldn`t ' +
'connect to the conference.',
pres); pres);
} }
} else { } else {
console.warn('onPresError ', pres); console.warn('onPresError ', pres);
APP.UI.messageHandler.openReportDialog(null, null, APP.UI.messageHandler.openReportDialog(null,
"dialog.connectError", "dialog.connectError",
'Oops! Something went wrong and we couldn`t ' +
'connect to the conference.',
pres); pres);
} }
return true; return true;

View File

@ -252,8 +252,8 @@ var XMPP = {
} else { } else {
// We are done immediately // We are done immediately
console.error("No conference handler"); console.error("No conference handler");
APP.UI.messageHandler.showError("dialog.error", 'Error', APP.UI.messageHandler.showError("dialog.error",
"dialog.unableToSwitch", 'Unable to switch video stream.'); "dialog.unableToSwitch");
callback(); callback();
} }
}, },
@ -315,9 +315,7 @@ var XMPP = {
function (error) { function (error) {
console.log('mute SLD error'); console.log('mute SLD error');
APP.UI.messageHandler.showError("dialog.error", APP.UI.messageHandler.showError("dialog.error",
'Error', "dialog.SLDFailure", "dialog.SLDFailure");
'Oops! Something went wrong and we failed to ' +
'mute! (SLD Failure)');
} }
); );
}, },
@ -329,10 +327,8 @@ var XMPP = {
}, },
function (error) { function (error) {
console.log('muteVideo SRD error'); console.log('muteVideo SRD error');
APP.UI.messageHandler.showError("dialog.error", 'Error', APP.UI.messageHandler.showError("dialog.error",
"dialog.SRDFailure", "dialog.SRDFailure");
'Oops! Something went wrong and we failed to stop video!' +
'(SRD Failure)');
} }
); );