From 498471958b9962e9fa8addeef44aaa8ed6baaf9d Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Mon, 18 Jan 2021 18:25:36 -0600 Subject: [PATCH] Use short names for admin quick actions --- app/soapbox/actions/moderation.js | 36 ++++++++++--------- app/soapbox/components/status_action_bar.js | 8 ++--- .../features/account/components/header.js | 8 ++--- .../features/admin/components/report.js | 13 ++++--- .../features/status/components/action_bar.js | 8 ++--- 5 files changed, 38 insertions(+), 35 deletions(-) diff --git a/app/soapbox/actions/moderation.js b/app/soapbox/actions/moderation.js index 7edc3e775..563a08b60 100644 --- a/app/soapbox/actions/moderation.js +++ b/app/soapbox/actions/moderation.js @@ -4,27 +4,29 @@ import { deactivateUsers, deleteUsers, deleteStatus } from 'soapbox/actions/admi import snackbar from 'soapbox/actions/snackbar'; const messages = defineMessages({ - deactivateUserPrompt: { id: 'confirmations.admin.deactivate_user.message', defaultMessage: 'You are about to deactivate {acct}. Deactivating a user is a reversible action.' }, - deactivateUserConfirm: { id: 'confirmations.admin.deactivate_user.confirm', defaultMessage: 'Deactivate {acct}' }, - userDeactivated: { id: 'admin.users.user_deactivated_message', defaultMessage: '{acct} was deactivated' }, - deleteUserPrompt: { id: 'confirmations.admin.delete_user.message', defaultMessage: 'You are about to delete {acct}. THIS IS A DESTRUCTIVE ACTION THAT CANNOT BE UNDONE.' }, - deleteUserConfirm: { id: 'confirmations.admin.delete_user.confirm', defaultMessage: 'Delete {acct}' }, - userDeleted: { id: 'admin.users.user_deleted_message', defaultMessage: '{acct} was deleted' }, - deleteStatusPrompt: { id: 'confirmations.admin.delete_status.message', defaultMessage: 'You are about to delete a post by {acct}. This action cannot be undone.' }, + deactivateUserPrompt: { id: 'confirmations.admin.deactivate_user.message', defaultMessage: 'You are about to deactivate @{acct}. Deactivating a user is a reversible action.' }, + deactivateUserConfirm: { id: 'confirmations.admin.deactivate_user.confirm', defaultMessage: 'Deactivate @{name}' }, + userDeactivated: { id: 'admin.users.user_deactivated_message', defaultMessage: '@{acct} was deactivated' }, + deleteUserPrompt: { id: 'confirmations.admin.delete_user.message', defaultMessage: 'You are about to delete @{acct}. THIS IS A DESTRUCTIVE ACTION THAT CANNOT BE UNDONE.' }, + deleteUserConfirm: { id: 'confirmations.admin.delete_user.confirm', defaultMessage: 'Delete @{name}' }, + userDeleted: { id: 'admin.users.user_deleted_message', defaultMessage: '@{acct} was deleted' }, + deleteStatusPrompt: { id: 'confirmations.admin.delete_status.message', defaultMessage: 'You are about to delete a post by @{acct}. This action cannot be undone.' }, deleteStatusConfirm: { id: 'confirmations.admin.delete_status.confirm', defaultMessage: 'Delete post' }, - statusDeleted: { id: 'admin.statuses.status_deleted_message', defaultMessage: 'Post by {acct} was deleted' }, + statusDeleted: { id: 'admin.statuses.status_deleted_message', defaultMessage: 'Post by @{acct} was deleted' }, }); export function deactivateUserModal(intl, accountId, afterConfirm = () => {}) { return function(dispatch, getState) { const state = getState(); const acct = state.getIn(['accounts', accountId, 'acct']); + const name = state.getIn(['accounts', accountId, 'username']); + dispatch(openModal('CONFIRM', { - message: intl.formatMessage(messages.deactivateUserPrompt, { acct: `@${acct}` }), - confirm: intl.formatMessage(messages.deactivateUserConfirm, { acct: `@${acct}` }), + message: intl.formatMessage(messages.deactivateUserPrompt, { acct }), + confirm: intl.formatMessage(messages.deactivateUserConfirm, { name }), onConfirm: () => { dispatch(deactivateUsers([acct])).then(() => { - const message = intl.formatMessage(messages.userDeactivated, { acct: `@${acct}` }); + const message = intl.formatMessage(messages.userDeactivated, { acct }); dispatch(snackbar.success(message)); afterConfirm(); }).catch(() => {}); @@ -37,12 +39,14 @@ export function deleteUserModal(intl, accountId, afterConfirm = () => {}) { return function(dispatch, getState) { const state = getState(); const acct = state.getIn(['accounts', accountId, 'acct']); + const name = state.getIn(['accounts', accountId, 'username']); + dispatch(openModal('CONFIRM', { - message: intl.formatMessage(messages.deleteUserPrompt, { acct: `@${acct}` }), - confirm: intl.formatMessage(messages.deleteUserConfirm, { acct: `@${acct}` }), + message: intl.formatMessage(messages.deleteUserPrompt, { acct }), + confirm: intl.formatMessage(messages.deleteUserConfirm, { name }), onConfirm: () => { dispatch(deleteUsers([acct])).then(() => { - const message = intl.formatMessage(messages.userDeleted, { acct: `@${acct}` }); + const message = intl.formatMessage(messages.userDeleted, { acct }); dispatch(snackbar.success(message)); afterConfirm(); }).catch(() => {}); @@ -58,11 +62,11 @@ export function deleteStatusModal(intl, statusId, afterConfirm = () => {}) { const acct = state.getIn(['accounts', accountId, 'acct']); dispatch(openModal('CONFIRM', { - message: intl.formatMessage(messages.deleteStatusPrompt, { acct: `@${acct}` }), + message: intl.formatMessage(messages.deleteStatusPrompt, { acct }), confirm: intl.formatMessage(messages.deleteStatusConfirm), onConfirm: () => { dispatch(deleteStatus(statusId)).then(() => { - const message = intl.formatMessage(messages.statusDeleted, { acct: `@${acct}` }); + const message = intl.formatMessage(messages.statusDeleted, { acct }); dispatch(snackbar.success(message)); }).catch(() => {}); afterConfirm(); diff --git a/app/soapbox/components/status_action_bar.js b/app/soapbox/components/status_action_bar.js index 5895dde9e..6a8b94391 100644 --- a/app/soapbox/components/status_action_bar.js +++ b/app/soapbox/components/status_action_bar.js @@ -45,8 +45,8 @@ const messages = defineMessages({ copy: { id: 'status.copy', defaultMessage: 'Copy link to post' }, group_remove_account: { id: 'status.remove_account_from_group', defaultMessage: 'Remove account from group' }, group_remove_post: { id: 'status.remove_post_from_group', defaultMessage: 'Remove post from group' }, - deactivateUser: { id: 'admin.users.actions.deactivate_user', defaultMessage: 'Deactivate {acct}' }, - deleteUser: { id: 'admin.users.actions.delete_user', defaultMessage: 'Delete {acct}' }, + deactivateUser: { id: 'admin.users.actions.deactivate_user', defaultMessage: 'Deactivate @{name}' }, + deleteUser: { id: 'admin.users.actions.delete_user', defaultMessage: 'Delete @{name}' }, deleteStatus: { id: 'admin.statuses.actions.delete_status', defaultMessage: 'Delete post' }, }); @@ -309,8 +309,8 @@ class StatusActionBar extends ImmutablePureComponent { menu.push(null); menu.push({ text: intl.formatMessage(messages.admin_account, { name: status.getIn(['account', 'username']) }), href: `/pleroma/admin/#/users/${status.getIn(['account', 'id'])}/` }); // menu.push({ text: intl.formatMessage(messages.admin_status), href: `/admin/accounts/${status.getIn(['account', 'id'])}/statuses/${status.get('id')}` }); - menu.push({ text: intl.formatMessage(messages.deactivateUser, { acct: `@${status.getIn(['account', 'acct'])}` }), action: this.handleDeactivateUser }); - menu.push({ text: intl.formatMessage(messages.deleteUser, { acct: `@${status.getIn(['account', 'acct'])}` }), action: this.handleDeleteUser }); + menu.push({ text: intl.formatMessage(messages.deactivateUser, { name: status.getIn(['account', 'username']) }), action: this.handleDeactivateUser }); + menu.push({ text: intl.formatMessage(messages.deleteUser, { name: status.getIn(['account', 'username']) }), action: this.handleDeleteUser }); menu.push({ text: intl.formatMessage(messages.deleteStatus), action: this.handleDeleteStatus }); } diff --git a/app/soapbox/features/account/components/header.js b/app/soapbox/features/account/components/header.js index 80bba5c6d..dbd57cb91 100644 --- a/app/soapbox/features/account/components/header.js +++ b/app/soapbox/features/account/components/header.js @@ -46,8 +46,8 @@ const messages = defineMessages({ unendorse: { id: 'account.unendorse', defaultMessage: 'Don\'t feature on profile' }, admin_account: { id: 'status.admin_account', defaultMessage: 'Open moderation interface for @{name}' }, add_or_remove_from_list: { id: 'account.add_or_remove_from_list', defaultMessage: 'Add or Remove from lists' }, - deactivateUser: { id: 'admin.users.actions.deactivate_user', defaultMessage: 'Deactivate {acct}' }, - deleteUser: { id: 'admin.users.actions.delete_user', defaultMessage: 'Delete {acct}' }, + deactivateUser: { id: 'admin.users.actions.deactivate_user', defaultMessage: 'Deactivate @{name}' }, + deleteUser: { id: 'admin.users.actions.delete_user', defaultMessage: 'Delete @{name}' }, }); const mapStateToProps = state => { @@ -171,8 +171,8 @@ class Header extends ImmutablePureComponent { if (account.get('id') !== me && isStaff) { menu.push(null); menu.push({ text: intl.formatMessage(messages.admin_account, { name: account.get('username') }), href: `/pleroma/admin/#/users/${account.get('id')}/`, newTab: true }); - menu.push({ text: intl.formatMessage(messages.deactivateUser, { acct: `@${account.get('acct')}` }), action: this.props.onDeactivateUser }); - menu.push({ text: intl.formatMessage(messages.deleteUser, { acct: `@${account.get('acct')}` }), action: this.props.onDeleteUser }); + menu.push({ text: intl.formatMessage(messages.deactivateUser, { name: account.get('username') }), action: this.props.onDeactivateUser }); + menu.push({ text: intl.formatMessage(messages.deleteUser, { name: account.get('username') }), action: this.props.onDeleteUser }); } return menu; diff --git a/app/soapbox/features/admin/components/report.js b/app/soapbox/features/admin/components/report.js index 6c6b7face..297b0d55d 100644 --- a/app/soapbox/features/admin/components/report.js +++ b/app/soapbox/features/admin/components/report.js @@ -14,9 +14,9 @@ import snackbar from 'soapbox/actions/snackbar'; import { deactivateUserModal, deleteUserModal } from 'soapbox/actions/moderation'; const messages = defineMessages({ - reportClosed: { id: 'admin.reports.report_closed_message', defaultMessage: 'Report on {acct} was closed' }, - deactivateUser: { id: 'admin.users.actions.deactivate_user', defaultMessage: 'Deactivate {acct}' }, - deleteUser: { id: 'admin.users.actions.delete_user', defaultMessage: 'Delete {acct}' }, + reportClosed: { id: 'admin.reports.report_closed_message', defaultMessage: 'Report on @{name} was closed' }, + deactivateUser: { id: 'admin.users.actions.deactivate_user', defaultMessage: 'Deactivate @{name}' }, + deleteUser: { id: 'admin.users.actions.delete_user', defaultMessage: 'Delete @{name}' }, }); export default @connect() @@ -35,19 +35,18 @@ class Report extends ImmutablePureComponent { const { intl, report } = this.props; return [{ - text: intl.formatMessage(messages.deactivateUser, { acct: `@${report.getIn(['account', 'acct'])}` }), + text: intl.formatMessage(messages.deactivateUser, { name: report.getIn(['account', 'username']) }), action: this.handleDeactivateUser, }, { - text: intl.formatMessage(messages.deleteUser, { acct: `@${report.getIn(['account', 'acct'])}` }), + text: intl.formatMessage(messages.deleteUser, { name: report.getIn(['account', 'username']) }), action: this.handleDeleteUser, }]; } handleCloseReport = () => { const { intl, dispatch, report } = this.props; - const nickname = report.getIn(['account', 'acct']); dispatch(closeReports([report.get('id')])).then(() => { - const message = intl.formatMessage(messages.reportClosed, { acct: `@${nickname}` }); + const message = intl.formatMessage(messages.reportClosed, { name: report.getIn(['account', 'username']) }); dispatch(snackbar.success(message)); }).catch(() => {}); } diff --git a/app/soapbox/features/status/components/action_bar.js b/app/soapbox/features/status/components/action_bar.js index 2e8e6f375..ec531fe4b 100644 --- a/app/soapbox/features/status/components/action_bar.js +++ b/app/soapbox/features/status/components/action_bar.js @@ -36,8 +36,8 @@ const messages = defineMessages({ copy: { id: 'status.copy', defaultMessage: 'Copy link to post' }, bookmark: { id: 'status.bookmark', defaultMessage: 'Bookmark' }, unbookmark: { id: 'status.unbookmark', defaultMessage: 'Remove bookmark' }, - deactivateUser: { id: 'admin.users.actions.deactivate_user', defaultMessage: 'Deactivate {acct}' }, - deleteUser: { id: 'admin.users.actions.delete_user', defaultMessage: 'Delete {acct}' }, + deactivateUser: { id: 'admin.users.actions.deactivate_user', defaultMessage: 'Deactivate @{name}' }, + deleteUser: { id: 'admin.users.actions.delete_user', defaultMessage: 'Delete @{name}' }, deleteStatus: { id: 'admin.statuses.actions.delete_status', defaultMessage: 'Delete post' }, }); @@ -294,8 +294,8 @@ class ActionBar extends React.PureComponent { menu.push(null); menu.push({ text: intl.formatMessage(messages.admin_account, { name: status.getIn(['account', 'username']) }), href: `/pleroma/admin/#/users/${status.getIn(['account', 'id'])}/` }); // menu.push({ text: intl.formatMessage(messages.admin_status), href: `/admin/accounts/${status.getIn(['account', 'id'])}/statuses/${status.get('id')}` }); - menu.push({ text: intl.formatMessage(messages.deactivateUser, { acct: `@${status.getIn(['account', 'acct'])}` }), action: this.handleDeactivateUser }); - menu.push({ text: intl.formatMessage(messages.deleteUser, { acct: `@${status.getIn(['account', 'acct'])}` }), action: this.handleDeleteUser }); + menu.push({ text: intl.formatMessage(messages.deactivateUser, { name: status.getIn(['account', 'username']) }), action: this.handleDeactivateUser }); + menu.push({ text: intl.formatMessage(messages.deleteUser, { name: status.getIn(['account', 'username']) }), action: this.handleDeleteUser }); menu.push({ text: intl.formatMessage(messages.deleteStatus), action: this.handleDeleteStatus }); } }