cleaned up, refactored and implemented new <ModerationTools>
This commit is contained in:
parent
3443ddddbb
commit
e56ea2dbeb
23 changed files with 1124 additions and 975 deletions
|
|
@ -3,154 +3,37 @@
|
|||
<Popover
|
||||
trigger="click"
|
||||
class="moderation-tools-popover"
|
||||
:disabled="disabled"
|
||||
placement="bottom"
|
||||
:offset="{ y: 5 }"
|
||||
@show="setToggled(true)"
|
||||
@close="setToggled(false)"
|
||||
@show="setOpen(true)"
|
||||
@close="setOpen(false)"
|
||||
>
|
||||
<template #content>
|
||||
<template #content="{close}">
|
||||
<div class="dropdown-menu">
|
||||
<template v-if="canGrantRole">
|
||||
<div class="menu-item dropdown-item -icon-space">
|
||||
<button
|
||||
class="main-button"
|
||||
@click="toggleRight("admin")"
|
||||
>
|
||||
{{ $t(!!user.rights.admin ? 'user_card.admin_menu.revoke_admin' : 'user_card.admin_menu.grant_admin') }}
|
||||
</button>
|
||||
</div>
|
||||
<div class="menu-item dropdown-item -icon-space">
|
||||
<button
|
||||
class="main-button"
|
||||
@click="toggleRight("moderator")"
|
||||
>
|
||||
{{ $t(!!user.rights.moderator ? 'user_card.admin_menu.revoke_moderator' : 'user_card.admin_menu.grant_moderator') }}
|
||||
</button>
|
||||
</div>
|
||||
<template v-for="(entry, index) in entries">
|
||||
<div
|
||||
v-if="canChangeActivationState || canDeleteAccount"
|
||||
v-if="entry === 'separator'"
|
||||
:key="index"
|
||||
role="separator"
|
||||
class="dropdown-divider"
|
||||
/>
|
||||
</template>
|
||||
<div
|
||||
v-if="canChangeActivationState"
|
||||
class="menu-item dropdown-item -icon-space"
|
||||
>
|
||||
<button
|
||||
class="main-button"
|
||||
@click="toggleActivationStatus()"
|
||||
>
|
||||
{{ $t(!!user.deactivated ? 'user_card.admin_menu.activate_account' : 'user_card.admin_menu.deactivate_account') }}
|
||||
</button>
|
||||
</div>
|
||||
<div
|
||||
v-if="canDeleteAccount"
|
||||
class="menu-item dropdown-item -icon-space"
|
||||
>
|
||||
<button
|
||||
class="main-button"
|
||||
@click="deleteUserDialog(true)"
|
||||
>
|
||||
{{ $t('user_card.admin_menu.delete_account') }}
|
||||
</button>
|
||||
</div>
|
||||
<template v-if="canUseTagPolicy">
|
||||
<div
|
||||
role="separator"
|
||||
class="dropdown-divider"
|
||||
/>
|
||||
<div class="menu-item dropdown-item -icon">
|
||||
<button
|
||||
class="main-button"
|
||||
@click="toggleTag(tags.FORCE_NSFW)"
|
||||
>
|
||||
<span
|
||||
class="input menu-checkbox"
|
||||
:class="{ 'menu-checkbox-checked': hasTag(tags.FORCE_NSFW) }"
|
||||
/>
|
||||
{{ $t('user_card.admin_menu.force_nsfw') }}
|
||||
</button>
|
||||
</div>
|
||||
<div class="menu-item dropdown-item -icon">
|
||||
<button
|
||||
class="main-button"
|
||||
@click="toggleTag(tags.STRIP_MEDIA)"
|
||||
>
|
||||
<span
|
||||
class="input menu-checkbox"
|
||||
:class="{ 'menu-checkbox-checked': hasTag(tags.STRIP_MEDIA) }"
|
||||
/>
|
||||
{{ $t('user_card.admin_menu.strip_media') }}
|
||||
</button>
|
||||
</div>
|
||||
<div class="menu-item dropdown-item -icon">
|
||||
<button
|
||||
class="main-button"
|
||||
@click="toggleTag(tags.FORCE_UNLISTED)"
|
||||
>
|
||||
<span
|
||||
class="input menu-checkbox"
|
||||
:class="{ 'menu-checkbox-checked': hasTag(tags.FORCE_UNLISTED) }"
|
||||
/>
|
||||
{{ $t('user_card.admin_menu.force_unlisted') }}
|
||||
</button>
|
||||
</div>
|
||||
<div class="menu-item dropdown-item -icon">
|
||||
<button
|
||||
class="main-button"
|
||||
@click="toggleTag(tags.SANDBOX)"
|
||||
>
|
||||
<span
|
||||
class="input menu-checkbox"
|
||||
:class="{ 'menu-checkbox-checked': hasTag(tags.SANDBOX) }"
|
||||
/>
|
||||
{{ $t('user_card.admin_menu.sandbox') }}
|
||||
</button>
|
||||
</div>
|
||||
<div
|
||||
v-if="user.is_local"
|
||||
class="menu-item dropdown-item -icon"
|
||||
v-else
|
||||
:key="entry.label"
|
||||
class="menu-item dropdown-item"
|
||||
:class="entry.checkbox ? '-icon' : '-icon-space'"
|
||||
>
|
||||
<button
|
||||
class="main-button"
|
||||
@click="toggleTag(tags.DISABLE_REMOTE_SUBSCRIPTION)"
|
||||
@click="() => maybeShowConfirm(close, entry)"
|
||||
>
|
||||
<span
|
||||
v-if="entry.checkbox"
|
||||
class="input menu-checkbox"
|
||||
:class="{ 'menu-checkbox-checked': hasTag(tags.DISABLE_REMOTE_SUBSCRIPTION) }"
|
||||
:class="entry.checkboxClass"
|
||||
/>
|
||||
{{ $t('user_card.admin_menu.disable_remote_subscription') }}
|
||||
</button>
|
||||
</div>
|
||||
<div
|
||||
v-if="user.is_local"
|
||||
class="menu-item dropdown-item -icon"
|
||||
>
|
||||
<button
|
||||
class="main-button"
|
||||
@click="toggleTag(tags.DISABLE_ANY_SUBSCRIPTION)"
|
||||
>
|
||||
<span
|
||||
class="input menu-checkbox"
|
||||
:class="{ 'menu-checkbox-checked': hasTag(tags.DISABLE_ANY_SUBSCRIPTION) }"
|
||||
/>
|
||||
{{ $t('user_card.admin_menu.disable_any_subscription') }}
|
||||
</button>
|
||||
</div>
|
||||
<div
|
||||
v-if="user.is_local"
|
||||
class="menu-item dropdown-item -icon"
|
||||
>
|
||||
<button
|
||||
class="main-button"
|
||||
@click="toggleTag(tags.QUARANTINE)"
|
||||
>
|
||||
<span
|
||||
class="input menu-checkbox"
|
||||
:class="{ 'menu-checkbox-checked': hasTag(tags.QUARANTINE) }"
|
||||
/>
|
||||
{{ $t('user_card.admin_menu.quarantine') }}
|
||||
{{ $t(entry.label) }}
|
||||
</button>
|
||||
</div>
|
||||
</template>
|
||||
|
|
@ -159,37 +42,60 @@
|
|||
<template #trigger>
|
||||
<button
|
||||
class="btn button-default btn-block moderation-tools-button"
|
||||
:class="{ toggled }"
|
||||
:class="{ toggled: open, disabled }"
|
||||
:disabled="disabled"
|
||||
>
|
||||
{{ $t('user_card.admin_menu.moderation') }}
|
||||
<FAIcon icon="chevron-down" />
|
||||
<FAIcon v-if="ready" icon="chevron-down" />
|
||||
<span v-else class="loading-spinner">
|
||||
<FAIcon
|
||||
class="fa-old-padding"
|
||||
spin
|
||||
icon="circle-notch"
|
||||
/>
|
||||
</span>
|
||||
</button>
|
||||
</template>
|
||||
</Popover>
|
||||
<teleport to="#modal">
|
||||
<DialogModal
|
||||
v-if="showDeleteUserDialog"
|
||||
:on-cancel="deleteUserDialog.bind(this, false)"
|
||||
<ConfirmModal
|
||||
v-if="confirmDialogShow"
|
||||
:title="$t(confirmDialogTitle)"
|
||||
:confirm-text="confirmDialogConfirm"
|
||||
:confirm-danger="confirmDialogDanger"
|
||||
:cancel-text="$t('general.cancel')"
|
||||
@accepted="doConfirmDialogAction"
|
||||
@cancelled="clearConfirmDialog"
|
||||
>
|
||||
<template #header>
|
||||
{{ $t('user_card.admin_menu.delete_user') }}
|
||||
</template>
|
||||
<p>{{ $t('user_card.admin_menu.delete_user_confirmation') }}</p>
|
||||
<template #footer>
|
||||
<button
|
||||
class="btn button-default"
|
||||
@click="deleteUserDialog(false)"
|
||||
>
|
||||
{{ $t('general.cancel') }}
|
||||
</button>
|
||||
<button
|
||||
class="btn button-default danger"
|
||||
@click="deleteUser()"
|
||||
>
|
||||
{{ $t('user_card.admin_menu.delete_user') }}
|
||||
</button>
|
||||
</template>
|
||||
</DialogModal>
|
||||
<i18n-t
|
||||
:plural="users.length"
|
||||
scope="global"
|
||||
:keypath="confirmDialogContent"
|
||||
tag="p"
|
||||
>
|
||||
<template #user>
|
||||
<span
|
||||
v-text="users[0].screen_name_ui"
|
||||
/>
|
||||
</template>
|
||||
<template #count>
|
||||
{{ users.length }}
|
||||
</template>
|
||||
<template #name>
|
||||
<code>
|
||||
{{ confirmDialogName }}
|
||||
</code>
|
||||
</template>
|
||||
</i18n-t>
|
||||
<p v-if="confirmDialogContent2">
|
||||
{{ $t(confirmDialogContent2) }}
|
||||
</p>
|
||||
<ul v-if="users.length > 1">
|
||||
<li v-for="user in users">
|
||||
{{ user.screen_name }}
|
||||
</li>
|
||||
</ul>
|
||||
</ConfirmModal>
|
||||
</teleport>
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue