wip, ignore, i just want this pushed
This commit is contained in:
parent
71cf3a52f2
commit
3a6dac7ce5
7 changed files with 254 additions and 19 deletions
|
|
@ -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()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
:title="title"
|
||||
:cancel-text="cancelText"
|
||||
:confirm-text="confirmText"
|
||||
@accepted="callback"
|
||||
@accepted="doGeneric"
|
||||
@cancelled="hide"
|
||||
/>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -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))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
15
src/components/settings_modal/admin_tabs/admin_card.scss
Normal file
15
src/components/settings_modal/admin_tabs/admin_card.scss
Normal file
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -4,20 +4,194 @@
|
|||
{{ $t('admin_dash.users.loading_user') }}
|
||||
</div>
|
||||
<div v-else>
|
||||
<BasicUserCard :user="user" />
|
||||
<button
|
||||
class="button button-default btn"
|
||||
type="button"
|
||||
@click="detailsExpanded = true"
|
||||
>
|
||||
{{ $t('admin_dash.users.details') }}
|
||||
</button>
|
||||
<div class="inline-layout">
|
||||
<BasicUserCard :user="user" />
|
||||
<label
|
||||
v-if="isAdmin"
|
||||
class="alert neutral user-role"
|
||||
>
|
||||
{{ $t('admin_dash.users.indicator_admin') }}
|
||||
</label>
|
||||
<label
|
||||
v-if="isModerator"
|
||||
class="alert neutral user-role"
|
||||
>
|
||||
{{ $t('admin_dash.users.indicator_moderator') }}
|
||||
</label>
|
||||
<label
|
||||
v-if="isActivated"
|
||||
class="alert info user-role"
|
||||
>
|
||||
{{ $t('admin_dash.users.indicator_active') }}
|
||||
</label>
|
||||
<label
|
||||
v-if="!isActivated"
|
||||
class="alert error user-role"
|
||||
>
|
||||
{{ $t('admin_dash.users.indicator_deactivated') }}
|
||||
</label>
|
||||
<label
|
||||
v-if="isConfirmed"
|
||||
class="alert neutral user-role"
|
||||
>
|
||||
{{ $t('admin_dash.users.indicator_confirmed') }}
|
||||
</label>
|
||||
<button
|
||||
class="button button-default btn"
|
||||
type="button"
|
||||
@click="detailsExpanded = true"
|
||||
>
|
||||
{{ $t('admin_dash.users.title_details') }}
|
||||
</button>
|
||||
<Popover
|
||||
ref="dropdownuser"
|
||||
trigger="click"
|
||||
placement="top"
|
||||
>
|
||||
<template #trigger>
|
||||
<button
|
||||
class="button button-default btn"
|
||||
>
|
||||
{{ $t('admin_dash.users.title_actions') }}
|
||||
</button>
|
||||
</template>
|
||||
<template #content>
|
||||
<div class="dropdown-menu">
|
||||
<div class="menu-item dropdown-item">
|
||||
<button
|
||||
class="main-button"
|
||||
@click="confirmAction('confirmActivate')"
|
||||
>
|
||||
{{ $t('admin_dash.users.activate') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dropdown-menu">
|
||||
<div class="menu-item dropdown-item">
|
||||
<button
|
||||
class="main-button"
|
||||
@click="confirmAction('confirmDeactivate')"
|
||||
>
|
||||
{{ $t('admin_dash.users.deactivate') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dropdown-menu">
|
||||
<div class="menu-item dropdown-item">
|
||||
<button
|
||||
class="main-button"
|
||||
@click="confirmAction('confirmDeleteUser')"
|
||||
>
|
||||
{{ $t('admin_dash.users.delete') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dropdown-menu">
|
||||
<div class="menu-item dropdown-item">
|
||||
<button
|
||||
class="main-button"
|
||||
@click="confirmAction('confirmGrantAdmin')"
|
||||
>
|
||||
{{ $t('admin_dash.users.grant_admin') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dropdown-menu">
|
||||
<div class="menu-item dropdown-item">
|
||||
<button
|
||||
class="main-button"
|
||||
@click="confirmAction('confirmRevokeAdmin')"
|
||||
>
|
||||
{{ $t('admin_dash.users.revoke_admin') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dropdown-menu">
|
||||
<div class="menu-item dropdown-item">
|
||||
<button
|
||||
class="main-button"
|
||||
@click="confirmAction('confirmGrantModerator')"
|
||||
>
|
||||
{{ $t('admin_dash.users.grant_moderator') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dropdown-menu">
|
||||
<div class="menu-item dropdown-item">
|
||||
<button
|
||||
class="main-button"
|
||||
@click="confirmAction('confirmRevokeModerator')"
|
||||
>
|
||||
{{ $t('admin_dash.users.revoke_moderator') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dropdown-menu">
|
||||
<div class="menu-item dropdown-item">
|
||||
<button
|
||||
class="main-button"
|
||||
@click="confirmAction('confirmApprove')"
|
||||
>
|
||||
{{ $t('admin_dash.users.approve') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dropdown-menu">
|
||||
<div class="menu-item dropdown-item">
|
||||
<button
|
||||
class="main-button"
|
||||
@click="confirmAction('confirmConfirm')"
|
||||
>
|
||||
{{ $t('admin_dash.users.confirm') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dropdown-menu">
|
||||
<div class="menu-item dropdown-item">
|
||||
<button
|
||||
class="main-button"
|
||||
@click="confirmAction('confirmResendConfirmationEmail')"
|
||||
>
|
||||
{{ $t('admin_dash.users.resend_confirmation_email') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dropdown-menu">
|
||||
<div class="menu-item dropdown-item">
|
||||
<button
|
||||
class="main-button"
|
||||
@click="confirmAction('confirmRequirePasswordChange')"
|
||||
>
|
||||
{{ $t('admin_dash.users.require_password_change') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dropdown-menu">
|
||||
<div class="menu-item dropdown-item">
|
||||
<button
|
||||
class="main-button"
|
||||
@click="confirmAction('confirmDisableMFA')"
|
||||
>
|
||||
{{ $t('admin_dash.users.disable_mfa') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</Popover>
|
||||
</div>
|
||||
<div
|
||||
v-if="detailsExpanded"
|
||||
>
|
||||
<Modal
|
||||
:no-background="false"
|
||||
@backdrop-clicked="() => { detailsExpanded = false }"
|
||||
>
|
||||
<div style="background-color: rgb(0 0 0 / 50%)">
|
||||
<ul class="setting-list">
|
||||
<li> show statuses </li>
|
||||
</ul>
|
||||
</div>
|
||||
<!--
|
||||
<ul class="setting-list">
|
||||
<li
|
||||
v-if="isLocal"
|
||||
|
|
@ -90,8 +264,10 @@
|
|||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
-->
|
||||
</Modal>
|
||||
</div>
|
||||
<!--
|
||||
<div v-if="!timelineExpanded">
|
||||
<button
|
||||
class="button button-default btn"
|
||||
|
|
@ -200,8 +376,23 @@
|
|||
<h2> {{ $t('admin_dash.users.title_details') }} </h2>
|
||||
<pre> {{ JSON.stringify(user_details, null, 2) }} </pre>
|
||||
</div>
|
||||
-->
|
||||
</div>
|
||||
<GenericConfirm
|
||||
ref="confirmActivate"
|
||||
: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')"
|
||||
:action="() => actionConfirmed('adminActivateUser')"
|
||||
/>
|
||||
<GenericConfirm
|
||||
ref="confirmDeactivate"
|
||||
:title="$t('admin_dash.users.bulk_actions.deactivate')"
|
||||
:cancel-text="$t('admin_dash.users.bulk_actions.no')"
|
||||
:confirm-text="$t('admin_dash.users.bulk_actions.yes')"
|
||||
:action="() => actionConfirmed('adminDeactivateUser')"
|
||||
/>
|
||||
<!--<GenericConfirm
|
||||
ref="confirmDelete"
|
||||
:title="$t('admin_dash.users.bulk_actions.activate')"
|
||||
:cancel-text="$t('admin_dash.users.bulk_actions.no')"
|
||||
|
|
@ -249,13 +440,13 @@
|
|||
:cancel-text="$t('admin_dash.users.bulk_actions.no')"
|
||||
:confirm-text="$t('admin_dash.users.bulk_actions.yes')"
|
||||
@callback="selectionConfirmed('adminChangeStatusScope', { visiblity: 'direct' })"
|
||||
/>
|
||||
/>-->
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script src="./admin_card.js"></script>
|
||||
|
||||
<style lang="scss">
|
||||
<style lang="scss" src="./admin_card.scss"></style>
|
||||
<!--<style lang="scss">
|
||||
.admin-card-content-container {
|
||||
margin-top: 0.5em;
|
||||
text-align: right;
|
||||
|
|
@ -264,4 +455,4 @@
|
|||
width: 10em;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</style>-->
|
||||
|
|
|
|||
|
|
@ -109,8 +109,7 @@ const UsersTab = {
|
|||
name: this.filtersName,
|
||||
email: this.filtersEmail
|
||||
}}
|
||||
const users = store.dispatch('fetchAdminUsers', nopts)
|
||||
return users
|
||||
return store.dispatch('fetchAdminUsers', nopts)
|
||||
},
|
||||
/**
|
||||
* reset the userlist explicitly
|
||||
|
|
|
|||
|
|
@ -1229,7 +1229,14 @@
|
|||
"title_database": "Database",
|
||||
"title_details": "Details",
|
||||
"title_users": "Users",
|
||||
"user_has_no_posts": "User has no posts"
|
||||
"title_actions": "Actions",
|
||||
"user_has_no_posts": "User has no posts",
|
||||
"indicator_admin": "Admin",
|
||||
"indicator_moderator": "Moderator",
|
||||
"indicator_active": "Active",
|
||||
"indicator_deactivated": "Deactivated",
|
||||
"indicator_approved": "Approved",
|
||||
"indicator_confirmed": "Confirmed"
|
||||
},
|
||||
"limits": {
|
||||
"arbitrary_limits": "Arbitrary limits",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue