diff --git a/src/components/confirm_modal/generic_confirm.js b/src/components/confirm_modal/generic_confirm.js index 21bf3f61b..7ac07581b 100644 --- a/src/components/confirm_modal/generic_confirm.js +++ b/src/components/confirm_modal/generic_confirm.js @@ -3,8 +3,9 @@ import ConfirmModal from './confirm_modal.vue' export default { props: { - callback: { - type: Function + action: { + type: Function, + require: true }, title: { type: String @@ -31,6 +32,10 @@ export default { hide () { this.showing = false this.$emit('hide') + }, + doGeneric () { + this.action() + this.hide() } } } diff --git a/src/components/confirm_modal/generic_confirm.vue b/src/components/confirm_modal/generic_confirm.vue index d0cbae2ca..794a15490 100644 --- a/src/components/confirm_modal/generic_confirm.vue +++ b/src/components/confirm_modal/generic_confirm.vue @@ -4,7 +4,7 @@ :title="title" :cancel-text="cancelText" :confirm-text="confirmText" - @accepted="callback" + @accepted="doGeneric" @cancelled="hide" /> diff --git a/src/components/settings_modal/admin_tabs/admin_card.js b/src/components/settings_modal/admin_tabs/admin_card.js index cc5afc0d6..b83426f0e 100644 --- a/src/components/settings_modal/admin_tabs/admin_card.js +++ b/src/components/settings_modal/admin_tabs/admin_card.js @@ -3,6 +3,8 @@ import Checkbox from 'src/components/checkbox/checkbox.vue' import PageList from 'src/components/page_list/page_list.vue' import AdminStatusCard from 'src/components/settings_modal/admin_tabs/admin_status_card.vue' import Modal from 'src/components/modal/modal.vue' +import Popover from 'src/components/popover/popover.vue' +import GenericConfirm from 'src/components/confirm_modal/generic_confirm.vue' const AdminCard = { props: { @@ -124,7 +126,9 @@ const AdminCard = { Checkbox, PageList, AdminStatusCard, - Modal + Modal, + Popover, + GenericConfirm }, methods: { /** @@ -217,6 +221,20 @@ const AdminCard = { const u = this.$store.getters.findUser(this.userDetails.id) 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) + this.$store.dispatch(action, this.$store.getters.findUser(this.userDetails.id)) } } } diff --git a/src/components/settings_modal/admin_tabs/admin_card.scss b/src/components/settings_modal/admin_tabs/admin_card.scss new file mode 100644 index 000000000..dddfad29f --- /dev/null +++ b/src/components/settings_modal/admin_tabs/admin_card.scss @@ -0,0 +1,15 @@ +.inline-layout { + display: flex; + align-items: center; + width: 100%; + gap: 8px; +} + +.alert { + text-shadow: none; +} + +.user-role { + display: inline-block; + vertical-align: baseline; +} diff --git a/src/components/settings_modal/admin_tabs/admin_card.vue b/src/components/settings_modal/admin_tabs/admin_card.vue index e3ca14d0a..aa9953e22 100644 --- a/src/components/settings_modal/admin_tabs/admin_card.vue +++ b/src/components/settings_modal/admin_tabs/admin_card.vue @@ -4,20 +4,194 @@ {{ $t('admin_dash.users.loading_user') }}