From c3e854c1f9b241319829b40dde60924118101b3a Mon Sep 17 00:00:00 2001 From: luce Date: Wed, 10 Sep 2025 15:08:47 +0200 Subject: [PATCH] wip, added popovers and dialogs for user options, made modal timeline a little bit less painful to look at --- .../confirm_modal/generic_confirm.js | 8 +- .../settings_modal/admin_tabs/admin_card.js | 16 +- .../settings_modal/admin_tabs/admin_card.vue | 187 ++++++++++++++---- .../admin_tabs/admin_status_card.vue | 5 + .../settings_modal/admin_tabs/users_tab.vue | 24 +-- src/i18n/en.json | 61 +++++- src/modules/adminSettings.js | 2 +- 7 files changed, 233 insertions(+), 70 deletions(-) diff --git a/src/components/confirm_modal/generic_confirm.js b/src/components/confirm_modal/generic_confirm.js index 7ac07581b..a964a9805 100644 --- a/src/components/confirm_modal/generic_confirm.js +++ b/src/components/confirm_modal/generic_confirm.js @@ -3,10 +3,6 @@ import ConfirmModal from './confirm_modal.vue' export default { props: { - action: { - type: Function, - require: true - }, title: { type: String }, @@ -17,7 +13,7 @@ export default { type: String } }, - emits: ['hide', 'show'], + emits: ['hide', 'show', 'action'], data: () => ({ showing: false }), @@ -34,7 +30,7 @@ export default { this.$emit('hide') }, doGeneric () { - this.action() + this.$emit('action') this.hide() } } diff --git a/src/components/settings_modal/admin_tabs/admin_card.js b/src/components/settings_modal/admin_tabs/admin_card.js index b83426f0e..a773b7bb4 100644 --- a/src/components/settings_modal/admin_tabs/admin_card.js +++ b/src/components/settings_modal/admin_tabs/admin_card.js @@ -222,19 +222,19 @@ const AdminCard = { const res = store.dispatch('adminListStatuses', { user: u, opts: { pageSize: opts.pageSize, godmode: true, withReblogs: true}}) return res.then(r => r.activities) }, - /** - * ... - */ confirmAction (box) { this.$refs[box].show() this.$refs.dropdownuser.hidePopover() }, - /** - * ... - */ - actionConfirmed (action) { - console.log(action) + userActionConfirmed (action) { this.$store.dispatch(action, this.$store.getters.findUser(this.userDetails.id)) + }, + statusActionConfirmed (action, opts) { + const s = this.$refs.statusList.getSelected() + s.forEach(p => { + this.$store.dispatch(action, { id: p.id, ...(opts || {})}) + }) + this.reset() } } } diff --git a/src/components/settings_modal/admin_tabs/admin_card.vue b/src/components/settings_modal/admin_tabs/admin_card.vue index aa9953e22..cab2d2bec 100644 --- a/src/components/settings_modal/admin_tabs/admin_card.vue +++ b/src/components/settings_modal/admin_tabs/admin_card.vue @@ -56,7 +56,10 @@ diff --git a/src/components/settings_modal/admin_tabs/admin_status_card.vue b/src/components/settings_modal/admin_tabs/admin_status_card.vue index 388d1c58f..f56df92e9 100644 --- a/src/components/settings_modal/admin_tabs/admin_status_card.vue +++ b/src/components/settings_modal/admin_tabs/admin_status_card.vue @@ -27,6 +27,8 @@ @interacted="false" /> +

action dropdown thingy

+ + diff --git a/src/components/settings_modal/admin_tabs/users_tab.vue b/src/components/settings_modal/admin_tabs/users_tab.vue index 54d77989b..6a021d3c2 100644 --- a/src/components/settings_modal/admin_tabs/users_tab.vue +++ b/src/components/settings_modal/admin_tabs/users_tab.vue @@ -243,84 +243,84 @@ :title="$t('admin_dash.users.bulk_actions.activate')" :cancel-text="$t('admin_dash.users.bulk_actions.no')" :confirm-text="$t('admin_dash.users.bulk_actions.yes')" - @callback="selectionConfirmed('adminActivateUser')" + @action="selectionConfirmed('adminActivateUser')" /> diff --git a/src/i18n/en.json b/src/i18n/en.json index 827a1988b..8f9bf1ff1 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -1172,13 +1172,67 @@ "only_unapproved": "Unapproved Only", "only_unconfirmed": "Unconfirmed Only", "refresh": "Refresh", + + "actions": { + "button": { + "title": "Actions", + "yes": "Confirm", + "no": "Abort", + "activate": "Activate", + "deactivate": "Deactivate", + "delete_user": "Delete", + "delete_status": "Delete", + "grant_admin": "Grant Admin", + "revoke_admin": "Revoke Admin", + "grant_moderator": "Grant Moderator", + "revoke_moderator": "Revoke Moderator", + "approve": "Approve", + "confirm": "Confirm", + "require_password_change": "Require Password Change", + "resend_confirmation_email": "Resend Confirmation Email", + "disable_mfa": "Disable MFA" + }, + "confirm_single": { + "activate": "Activate User?", + "deactivate": "Deactivate User?", + "delete_user": "Delete User?", + "delete_status": "Delete Status?", + "grant_admin": "Grant Admin Privileges?", + "revoke_admin": "Revoke Admin Privileges?", + "grant_moderator": "Grant Moderator Privileges?", + "revoke_moderator": "Revoke Moderator Privileges?", + "approve": "Approve User?", + "confirm": "Confirm User?", + "require_password_change": "Require Password Change?", + "resend_confirmation_email": "Resend Confirmation Email?", + "disable_mfa": "Disable MFA?" + }, + "confirm_multi": { + "activate": "Actiate Selected Users?", + "deactivate": "Deactivate Selected Users?", + "delete_user": "Delete Selected Users?", + "delete_status": "Delete Selected Statuses?", + "grant_admin": "Grant Admin Privileges For Selected Users?", + "revoke_admin": "Revoke Admin Privileges For Selected Users?", + "grant_moderator": "Grant Moderator Privileges For Selected Users?", + "revoke_moderator": "Revoke Moderator Privileges For Selected Users?", + "approve": "Approve Selected Users?", + "confirm": "Confirm Selected Users?", + "require_password_change": "Require Password Change For Selected Users?", + "resend_confirmation_email": "Resend Confirmation Email For Selected Users?", + "disable_mfa": "Disable MFA For Selected Users?" + + } + }, + "bulk_actions": { "title": "Bulk Actions", "yes": "Yes", "no": "No", "activate": "Activate Selected Users?", "deactivate": "Deactivate Selected Users?", - "delete": "Delete Selected Users?", + "delete_user": "Delete Selected Users?", + "delete_status": "Delete Selected Statuses?", "grant_admin": "Grant Admin Privileges To Selected Users?", "revoke_admin": "Revoke Admin Privileges From Selected Users?", "grant_moderator": "Grant Moderator Privileges To Selected Users?", @@ -1189,8 +1243,9 @@ "resend_confirmation_email": "Resend Confirmation Email For Selected Users?", "disable_mfa": "Disable MFA For Selected Users?" }, - "activate": "Activate", - "deactivate": "Deactivate", + "activate": "Activate?", + "deactivate": "Deactivate?", + "delete_user": "Delete User?", "resend_confirmation_email": "Resend confirmation email", "approve": "Approve", "grant_admin": "Grant Admin", diff --git a/src/modules/adminSettings.js b/src/modules/adminSettings.js index 25d0a1f84..a18764c75 100644 --- a/src/modules/adminSettings.js +++ b/src/modules/adminSettings.js @@ -71,7 +71,7 @@ const adminSettingsStorage = { }, adminRemoveUserFromAdminGroup (store, user) { // prevent revokation of own rights - if (user.id !== store.state.users.currentUser.id) { + if (user.id !== store.rootState.users.currentUser.id) { return store.rootState.api.backendInteractor.adminRemoveUserFromAdminGroup({ user }) .then(res => store.commit('updateRight', { user, right: 'admin', value: res.is_admin })) }