GUACAMOLE-36: Migrate guacLogin and guacNotification to TranslatableMessage.

This commit is contained in:
Michael Jumper
2016-08-16 21:47:26 -07:00
parent 0671f18d40
commit 986ea4b206
13 changed files with 70 additions and 35 deletions

View File

@@ -578,7 +578,9 @@ angular.module('client').controller('clientController', ['$scope', '$routeParams
|| connectionState === ManagedClientState.ConnectionState.WAITING) { || connectionState === ManagedClientState.ConnectionState.WAITING) {
guacNotification.showStatus({ guacNotification.showStatus({
title: "CLIENT.DIALOG_HEADER_CONNECTING", title: "CLIENT.DIALOG_HEADER_CONNECTING",
text: "CLIENT.TEXT_CLIENT_STATUS_" + connectionState.toUpperCase() text: {
key : "CLIENT.TEXT_CLIENT_STATUS_" + connectionState.toUpperCase()
}
}); });
} }
@@ -595,7 +597,9 @@ angular.module('client').controller('clientController', ['$scope', '$routeParams
notifyConnectionClosed({ notifyConnectionClosed({
className : "error", className : "error",
title : "CLIENT.DIALOG_HEADER_CONNECTION_ERROR", title : "CLIENT.DIALOG_HEADER_CONNECTION_ERROR",
text : "CLIENT.ERROR_CLIENT_" + errorName, text : {
key : "CLIENT.ERROR_CLIENT_" + errorName
},
countdown : countdown, countdown : countdown,
actions : actions actions : actions
}); });
@@ -615,7 +619,9 @@ angular.module('client').controller('clientController', ['$scope', '$routeParams
notifyConnectionClosed({ notifyConnectionClosed({
className : "error", className : "error",
title : "CLIENT.DIALOG_HEADER_CONNECTION_ERROR", title : "CLIENT.DIALOG_HEADER_CONNECTION_ERROR",
text : "CLIENT.ERROR_TUNNEL_" + errorName, text : {
key : "CLIENT.ERROR_TUNNEL_" + errorName
},
countdown : countdown, countdown : countdown,
actions : actions actions : actions
}); });
@@ -626,7 +632,9 @@ angular.module('client').controller('clientController', ['$scope', '$routeParams
else if (connectionState === ManagedClientState.ConnectionState.DISCONNECTED) { else if (connectionState === ManagedClientState.ConnectionState.DISCONNECTED) {
notifyConnectionClosed({ notifyConnectionClosed({
title : "CLIENT.DIALOG_HEADER_DISCONNECTED", title : "CLIENT.DIALOG_HEADER_DISCONNECTED",
text : "CLIENT.TEXT_CLIENT_STATUS_" + connectionState.toUpperCase(), text : {
key : "CLIENT.TEXT_CLIENT_STATUS_" + connectionState.toUpperCase()
},
actions : actions actions : actions
}); });
} }

View File

@@ -38,7 +38,7 @@ angular.module('index').controller('indexController', ['$scope', '$injector',
* The message to display to the user as instructions for the login * The message to display to the user as instructions for the login
* process. * process.
* *
* @type String * @type TranslatableMessage
*/ */
$scope.loginHelpText = null; $scope.loginHelpText = null;
@@ -160,7 +160,7 @@ angular.module('index').controller('indexController', ['$scope', '$injector',
$scope.$on('guacInsufficientCredentials', function loginInsufficient(event, parameters, error) { $scope.$on('guacInsufficientCredentials', function loginInsufficient(event, parameters, error) {
$scope.page.title = 'APP.NAME'; $scope.page.title = 'APP.NAME';
$scope.page.bodyClassName = ''; $scope.page.bodyClassName = '';
$scope.loginHelpText = error.message; $scope.loginHelpText = error.translatableMessage;
$scope.acceptedCredentials = parameters; $scope.acceptedCredentials = parameters;
$scope.expectedCredentials = error.expected; $scope.expectedCredentials = error.expected;
}); });

View File

@@ -36,7 +36,7 @@ angular.module('login').directive('guacLogin', [function guacLogin() {
* An optional instructional message to display within the login * An optional instructional message to display within the login
* dialog. * dialog.
* *
* @type String * @type TranslatableMessage
*/ */
helpText : '=', helpText : '=',
@@ -72,7 +72,7 @@ angular.module('login').directive('guacLogin', [function guacLogin() {
/** /**
* A description of the error that occurred during login, if any. * A description of the error that occurred during login, if any.
* *
* @type String * @type TranslatableMessage
*/ */
$scope.loginError = null; $scope.loginError = null;
@@ -160,11 +160,13 @@ angular.module('login').directive('guacLogin', [function guacLogin() {
// Flag generic error for invalid login // Flag generic error for invalid login
if (error.type === Error.Type.INVALID_CREDENTIALS) if (error.type === Error.Type.INVALID_CREDENTIALS)
$scope.loginError = 'LOGIN.ERROR_INVALID_LOGIN'; $scope.loginError = {
'key' : 'LOGIN.ERROR_INVALID_LOGIN'
};
// Display error if anything else goes wrong // Display error if anything else goes wrong
else else
$scope.loginError = error.message; $scope.loginError = error.translatableMessage;
// Clear all visible password fields // Clear all visible password fields
angular.forEach($scope.remainingFields, function clearEnteredValueIfPassword(field) { angular.forEach($scope.remainingFields, function clearEnteredValueIfPassword(field) {

View File

@@ -1,7 +1,8 @@
<div class="login-ui" ng-class="{error: loginError, continuation: isContinuation(), initial: !isContinuation()}" > <div class="login-ui" ng-class="{error: loginError, continuation: isContinuation(), initial: !isContinuation()}" >
<!-- Login error message --> <!-- Login error message -->
<p class="login-error">{{loginError | translate}}</p> <p class="login-error" translate="{{loginError.key}}"
translate-values="{{loginError.variables}}"></p>
<div class="login-dialog-middle"> <div class="login-dialog-middle">
@@ -17,7 +18,8 @@
</div> </div>
<!-- Login message/instructions --> <!-- Login message/instructions -->
<p ng-show="helpText">{{helpText | translate}}</p> <p ng-show="helpText" translate="{{helpText.key}}"
translate-values="{{helpText.variables}}"></p>
<!-- Login fields --> <!-- Login fields -->
<div class="login-fields"> <div class="login-fields">

View File

@@ -380,7 +380,7 @@ angular.module('manage').controller('manageConnectionController', ['$scope', '$i
guacNotification.showStatus({ guacNotification.showStatus({
'className' : 'error', 'className' : 'error',
'title' : 'MANAGE_CONNECTION.DIALOG_HEADER_ERROR', 'title' : 'MANAGE_CONNECTION.DIALOG_HEADER_ERROR',
'text' : error.message, 'text' : error.translatableMessage,
'actions' : [ ACKNOWLEDGE_ACTION ] 'actions' : [ ACKNOWLEDGE_ACTION ]
}); });
}); });
@@ -430,7 +430,7 @@ angular.module('manage').controller('manageConnectionController', ['$scope', '$i
guacNotification.showStatus({ guacNotification.showStatus({
'className' : 'error', 'className' : 'error',
'title' : 'MANAGE_CONNECTION.DIALOG_HEADER_ERROR', 'title' : 'MANAGE_CONNECTION.DIALOG_HEADER_ERROR',
'text' : error.message, 'text' : error.translatableMessage,
'actions' : [ ACKNOWLEDGE_ACTION ] 'actions' : [ ACKNOWLEDGE_ACTION ]
}); });
}); });
@@ -446,7 +446,9 @@ angular.module('manage').controller('manageConnectionController', ['$scope', '$i
// Confirm deletion request // Confirm deletion request
guacNotification.showStatus({ guacNotification.showStatus({
'title' : 'MANAGE_CONNECTION.DIALOG_HEADER_CONFIRM_DELETE', 'title' : 'MANAGE_CONNECTION.DIALOG_HEADER_CONFIRM_DELETE',
'text' : 'MANAGE_CONNECTION.TEXT_CONFIRM_DELETE', 'text' : {
key : 'MANAGE_CONNECTION.TEXT_CONFIRM_DELETE'
},
'actions' : [ DELETE_ACTION, CANCEL_ACTION] 'actions' : [ DELETE_ACTION, CANCEL_ACTION]
}); });

View File

@@ -220,7 +220,7 @@ angular.module('manage').controller('manageConnectionGroupController', ['$scope'
guacNotification.showStatus({ guacNotification.showStatus({
'className' : 'error', 'className' : 'error',
'title' : 'MANAGE_CONNECTION_GROUP.DIALOG_HEADER_ERROR', 'title' : 'MANAGE_CONNECTION_GROUP.DIALOG_HEADER_ERROR',
'text' : error.message, 'text' : error.translatableMessage,
'actions' : [ ACKNOWLEDGE_ACTION ] 'actions' : [ ACKNOWLEDGE_ACTION ]
}); });
}); });
@@ -270,7 +270,7 @@ angular.module('manage').controller('manageConnectionGroupController', ['$scope'
guacNotification.showStatus({ guacNotification.showStatus({
'className' : 'error', 'className' : 'error',
'title' : 'MANAGE_CONNECTION_GROUP.DIALOG_HEADER_ERROR', 'title' : 'MANAGE_CONNECTION_GROUP.DIALOG_HEADER_ERROR',
'text' : error.message, 'text' : error.translatableMessage,
'actions' : [ ACKNOWLEDGE_ACTION ] 'actions' : [ ACKNOWLEDGE_ACTION ]
}); });
}); });
@@ -286,7 +286,9 @@ angular.module('manage').controller('manageConnectionGroupController', ['$scope'
// Confirm deletion request // Confirm deletion request
guacNotification.showStatus({ guacNotification.showStatus({
'title' : 'MANAGE_CONNECTION_GROUP.DIALOG_HEADER_CONFIRM_DELETE', 'title' : 'MANAGE_CONNECTION_GROUP.DIALOG_HEADER_CONFIRM_DELETE',
'text' : 'MANAGE_CONNECTION_GROUP.TEXT_CONFIRM_DELETE', 'text' : {
key : 'MANAGE_CONNECTION_GROUP.TEXT_CONFIRM_DELETE'
},
'actions' : [ DELETE_ACTION, CANCEL_ACTION] 'actions' : [ DELETE_ACTION, CANCEL_ACTION]
}); });

View File

@@ -341,7 +341,7 @@ angular.module('manage').controller('manageSharingProfileController', ['$scope',
guacNotification.showStatus({ guacNotification.showStatus({
'className' : 'error', 'className' : 'error',
'title' : 'MANAGE_SHARING_PROFILE.DIALOG_HEADER_ERROR', 'title' : 'MANAGE_SHARING_PROFILE.DIALOG_HEADER_ERROR',
'text' : error.message, 'text' : error.translatableMessage,
'actions' : [ ACKNOWLEDGE_ACTION ] 'actions' : [ ACKNOWLEDGE_ACTION ]
}); });
}); });
@@ -379,7 +379,7 @@ angular.module('manage').controller('manageSharingProfileController', ['$scope',
guacNotification.showStatus({ guacNotification.showStatus({
'className' : 'error', 'className' : 'error',
'title' : 'MANAGE_SHARING_PROFILE.DIALOG_HEADER_ERROR', 'title' : 'MANAGE_SHARING_PROFILE.DIALOG_HEADER_ERROR',
'text' : error.message, 'text' : error.translatableMessage,
'actions' : [ ACKNOWLEDGE_ACTION ] 'actions' : [ ACKNOWLEDGE_ACTION ]
}); });
}); });
@@ -395,7 +395,9 @@ angular.module('manage').controller('manageSharingProfileController', ['$scope',
// Confirm deletion request // Confirm deletion request
guacNotification.showStatus({ guacNotification.showStatus({
'title' : 'MANAGE_SHARING_PROFILE.DIALOG_HEADER_CONFIRM_DELETE', 'title' : 'MANAGE_SHARING_PROFILE.DIALOG_HEADER_CONFIRM_DELETE',
'text' : 'MANAGE_SHARING_PROFILE.TEXT_CONFIRM_DELETE', 'text' : {
'key' : 'MANAGE_SHARING_PROFILE.TEXT_CONFIRM_DELETE'
},
'actions' : [ DELETE_ACTION, CANCEL_ACTION] 'actions' : [ DELETE_ACTION, CANCEL_ACTION]
}); });

View File

@@ -1012,7 +1012,9 @@ angular.module('manage').controller('manageUserController', ['$scope', '$injecto
guacNotification.showStatus({ guacNotification.showStatus({
'className' : 'error', 'className' : 'error',
'title' : 'MANAGE_USER.DIALOG_HEADER_ERROR', 'title' : 'MANAGE_USER.DIALOG_HEADER_ERROR',
'text' : 'MANAGE_USER.ERROR_PASSWORD_MISMATCH', 'text' : {
key : 'MANAGE_USER.ERROR_PASSWORD_MISMATCH'
},
'actions' : [ ACKNOWLEDGE_ACTION ] 'actions' : [ ACKNOWLEDGE_ACTION ]
}); });
return; return;
@@ -1055,7 +1057,8 @@ angular.module('manage').controller('manageUserController', ['$scope', '$injecto
guacNotification.showStatus({ guacNotification.showStatus({
'className' : 'error', 'className' : 'error',
'title' : 'MANAGE_USER.DIALOG_HEADER_ERROR', 'title' : 'MANAGE_USER.DIALOG_HEADER_ERROR',
'text' : error.message, 'text' : error.translatableMessage,
'values' : error.translationValues,
'actions' : [ ACKNOWLEDGE_ACTION ] 'actions' : [ ACKNOWLEDGE_ACTION ]
}); });
}); });
@@ -1067,7 +1070,7 @@ angular.module('manage').controller('manageUserController', ['$scope', '$injecto
guacNotification.showStatus({ guacNotification.showStatus({
'className' : 'error', 'className' : 'error',
'title' : 'MANAGE_USER.DIALOG_HEADER_ERROR', 'title' : 'MANAGE_USER.DIALOG_HEADER_ERROR',
'text' : error.message, 'text' : error.translatableMessage,
'actions' : [ ACKNOWLEDGE_ACTION ] 'actions' : [ ACKNOWLEDGE_ACTION ]
}); });
}); });
@@ -1117,7 +1120,7 @@ angular.module('manage').controller('manageUserController', ['$scope', '$injecto
guacNotification.showStatus({ guacNotification.showStatus({
'className' : 'error', 'className' : 'error',
'title' : 'MANAGE_USER.DIALOG_HEADER_ERROR', 'title' : 'MANAGE_USER.DIALOG_HEADER_ERROR',
'text' : error.message, 'text' : error.translatableMessage,
'actions' : [ ACKNOWLEDGE_ACTION ] 'actions' : [ ACKNOWLEDGE_ACTION ]
}); });
}); });
@@ -1133,7 +1136,9 @@ angular.module('manage').controller('manageUserController', ['$scope', '$injecto
// Confirm deletion request // Confirm deletion request
guacNotification.showStatus({ guacNotification.showStatus({
'title' : 'MANAGE_USER.DIALOG_HEADER_CONFIRM_DELETE', 'title' : 'MANAGE_USER.DIALOG_HEADER_CONFIRM_DELETE',
'text' : 'MANAGE_USER.TEXT_CONFIRM_DELETE', 'text' : {
key : 'MANAGE_USER.TEXT_CONFIRM_DELETE'
},
'actions' : [ DELETE_ACTION, CANCEL_ACTION] 'actions' : [ DELETE_ACTION, CANCEL_ACTION]
}); });

View File

@@ -60,7 +60,9 @@ angular.module('notification').factory('guacNotification', ['$injector',
* // To show a status message with actions * // To show a status message with actions
* guacNotification.showStatus({ * guacNotification.showStatus({
* 'title' : 'Disconnected', * 'title' : 'Disconnected',
* 'text' : 'You have been disconnected!', * 'text' : {
* 'key' : 'NAMESPACE.SOME_TRANSLATION_KEY'
* },
* 'actions' : { * 'actions' : {
* 'name' : 'reconnect', * 'name' : 'reconnect',
* 'callback' : function () { * 'callback' : function () {

View File

@@ -8,7 +8,9 @@
<div class="body"> <div class="body">
<!-- Notification text --> <!-- Notification text -->
<p ng-show="notification.text" class="text">{{notification.text | translate}}</p> <p ng-show="notification.text" class="text"
translate="{{notification.text.key}}"
translate-values="{{notification.text.variables}}"></p>
<!-- Current progress --> <!-- Current progress -->
<div class="progress" ng-show="notification.progress"><div class="bar" ng-show="progressPercent" ng-style="{'width': progressPercent + '%'}"></div><div <div class="progress" ng-show="notification.progress"><div class="bar" ng-show="progressPercent" ng-style="{'width': progressPercent + '%'}"></div><div

View File

@@ -53,7 +53,7 @@ angular.module('notification').factory('Notification', [function defineNotificat
/** /**
* The body text of the notification. * The body text of the notification.
* *
* @type String * @type TranslatableMessage
*/ */
this.text = template.text; this.text = template.text;

View File

@@ -127,7 +127,9 @@ angular.module('settings').directive('guacSettingsPreferences', [function guacSe
guacNotification.showStatus({ guacNotification.showStatus({
className : 'error', className : 'error',
title : 'SETTINGS_PREFERENCES.DIALOG_HEADER_ERROR', title : 'SETTINGS_PREFERENCES.DIALOG_HEADER_ERROR',
text : 'SETTINGS_PREFERENCES.ERROR_PASSWORD_MISMATCH', text : {
key : 'SETTINGS_PREFERENCES.ERROR_PASSWORD_MISMATCH'
},
actions : [ ACKNOWLEDGE_ACTION ] actions : [ ACKNOWLEDGE_ACTION ]
}); });
return; return;
@@ -138,7 +140,9 @@ angular.module('settings').directive('guacSettingsPreferences', [function guacSe
guacNotification.showStatus({ guacNotification.showStatus({
className : 'error', className : 'error',
title : 'SETTINGS_PREFERENCES.DIALOG_HEADER_ERROR', title : 'SETTINGS_PREFERENCES.DIALOG_HEADER_ERROR',
text : 'SETTINGS_PREFERENCES.ERROR_PASSWORD_BLANK', text : {
key : 'SETTINGS_PREFERENCES.ERROR_PASSWORD_BLANK'
},
actions : [ ACKNOWLEDGE_ACTION ] actions : [ ACKNOWLEDGE_ACTION ]
}); });
return; return;
@@ -155,7 +159,9 @@ angular.module('settings').directive('guacSettingsPreferences', [function guacSe
// Indicate that the password has been changed // Indicate that the password has been changed
guacNotification.showStatus({ guacNotification.showStatus({
text : 'SETTINGS_PREFERENCES.INFO_PASSWORD_CHANGED', text : {
key : 'SETTINGS_PREFERENCES.INFO_PASSWORD_CHANGED'
},
actions : [ ACKNOWLEDGE_ACTION ] actions : [ ACKNOWLEDGE_ACTION ]
}); });
}) })
@@ -165,7 +171,7 @@ angular.module('settings').directive('guacSettingsPreferences', [function guacSe
guacNotification.showStatus({ guacNotification.showStatus({
className : 'error', className : 'error',
title : 'SETTINGS_PREFERENCES.DIALOG_HEADER_ERROR', title : 'SETTINGS_PREFERENCES.DIALOG_HEADER_ERROR',
'text' : error.message, text : error.translatableMessage,
actions : [ ACKNOWLEDGE_ACTION ] actions : [ ACKNOWLEDGE_ACTION ]
}); });
}); });

View File

@@ -334,7 +334,7 @@ angular.module('settings').directive('guacSettingsSessions', [function guacSetti
guacNotification.showStatus({ guacNotification.showStatus({
'className' : 'error', 'className' : 'error',
'title' : 'SETTINGS_SESSIONS.DIALOG_HEADER_ERROR', 'title' : 'SETTINGS_SESSIONS.DIALOG_HEADER_ERROR',
'text' : error.message, 'text' : error.translatableMessage,
'actions' : [ ACKNOWLEDGE_ACTION ] 'actions' : [ ACKNOWLEDGE_ACTION ]
}); });
}); });
@@ -349,7 +349,9 @@ angular.module('settings').directive('guacSettingsSessions', [function guacSetti
// Confirm deletion request // Confirm deletion request
guacNotification.showStatus({ guacNotification.showStatus({
'title' : 'SETTINGS_SESSIONS.DIALOG_HEADER_CONFIRM_DELETE', 'title' : 'SETTINGS_SESSIONS.DIALOG_HEADER_CONFIRM_DELETE',
'text' : 'SETTINGS_SESSIONS.TEXT_CONFIRM_DELETE', 'text' : {
'key' : 'SETTINGS_SESSIONS.TEXT_CONFIRM_DELETE'
},
'actions' : [ DELETE_ACTION, CANCEL_ACTION] 'actions' : [ DELETE_ACTION, CANCEL_ACTION]
}); });
}; };