Skip to content

Commit

Permalink
Translate security/users component (#23940) (#24726)
Browse files Browse the repository at this point in the history
Translate security/users
  • Loading branch information
pavel06081991 authored Oct 29, 2018
1 parent b3086f2 commit 5ba842e
Show file tree
Hide file tree
Showing 8 changed files with 314 additions and 95 deletions.
3 changes: 2 additions & 1 deletion .i18nrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@
"tileMap": "src/core_plugins/tile_map",
"tagCloud": "src/core_plugins/tagcloud",
"xpack.idxMgmt": "x-pack/plugins/index_management",
"xpack.watcher": "x-pack/plugins/watcher"
"xpack.watcher": "x-pack/plugins/watcher",
"xpack.security": "x-pack/plugins/security"
},
"exclude": [
"src/ui/ui_render/bootstrap/app_bootstrap.js",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,52 +7,86 @@
import React, { Component, Fragment } from 'react';
import { EuiOverlayMask, EuiConfirmModal } from '@elastic/eui';
import { toastNotifications } from 'ui/notify';
export class ConfirmDelete extends Component {
import { FormattedMessage, injectI18n } from '@kbn/i18n/react';

class ConfirmDeleteUI extends Component {
deleteUsers = () => {
const { usersToDelete, apiClient, callback } = this.props;
const errors = [];
usersToDelete.forEach(async username => {
try {
await apiClient.deleteUser(username);
toastNotifications.addSuccess(`Deleted user ${username}`);
toastNotifications.addSuccess(
this.props.intl.formatMessage({
id: "xpack.security.management.users.confirmDelete.userSuccessfullyDeletedNotificationMessage",
defaultMessage: "Deleted user {username}"
}, { username })
);
} catch (e) {
errors.push(username);
toastNotifications.addDanger(`Error deleting user ${username}`);
toastNotifications.addDanger(
this.props.intl.formatMessage({
id: "xpack.security.management.users.confirmDelete.userDeletingErrorNotificationMessage",
defaultMessage: "Error deleting user {username}"
}, { username })
);
}
if (callback) {
callback(usersToDelete, errors);
}
});
};
render() {
const { usersToDelete, onCancel } = this.props;
const { usersToDelete, onCancel, intl } = this.props;
const moreThanOne = usersToDelete.length > 1;
const title = moreThanOne
? `Delete ${usersToDelete.length} users`
: `Delete user '${usersToDelete[0]}'`;
? intl.formatMessage({
id: "xpack.security.management.users.confirmDelete.deleteMultipleUsersTitle",
defaultMessage: "Delete {userLength} users"
}, { userLength: usersToDelete.length })
: intl.formatMessage({
id: "xpack.security.management.users.confirmDelete.deleteOneUserTitle",
defaultMessage: "Delete user {userLength}"
}, { userLength: usersToDelete[0] });
return (
<EuiOverlayMask>
<EuiConfirmModal
title={title}
onCancel={onCancel}
onConfirm={this.deleteUsers}
cancelButtonText="Cancel"
confirmButtonText="Delete"
cancelButtonText={intl.formatMessage({
id: "xpack.security.management.users.confirmDelete.cancelButtonLabel",
defaultMessage: "Cancel"
})}
confirmButtonText={intl.formatMessage({
id: "xpack.security.management.users.confirmDelete.confirmButtonLabel",
defaultMessage: "Delete"
})}
buttonColor="danger"
>
<div>
{moreThanOne ? (
<Fragment>
<p>
You are about to delete these users:
<FormattedMessage
id="xpack.security.management.users.confirmDelete.removingUsersDescription"
defaultMessage="You are about to delete these users:"
/>
</p>
<ul>{usersToDelete.map(username => <li key={username}>{username}</li>)}</ul>
</Fragment>
) : null}
<p>This operation cannot be undone.</p>
<p>
<FormattedMessage
id="xpack.security.management.users.confirmDelete.removingUsersWarningMessage"
defaultMessage="This operation cannot be undone."
/>
</p>
</div>
</EuiConfirmModal>
</EuiOverlayMask>
);
}
}

export const ConfirmDelete = injectI18n(ConfirmDeleteUI);
Loading

0 comments on commit 5ba842e

Please sign in to comment.