feat: warn use when deleting self (#1848)

* add the alert component on User Management

* refactored the warning text into the language file
This commit is contained in:
Jambaldorj Ochirpurev 2022-12-01 06:26:50 +01:00 committed by GitHub
parent 0801f0a908
commit 1c87a87627
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 3 deletions

View File

@ -151,6 +151,7 @@
"a-name-is-required": "A Name is Required", "a-name-is-required": "A Name is Required",
"delete-with-name": "Delete {name}", "delete-with-name": "Delete {name}",
"confirm-delete-generic-with-name": "Are you sure you want to delete this {name}?", "confirm-delete-generic-with-name": "Are you sure you want to delete this {name}?",
"confirm-delete-own-admin-account": "Please note that you are trying to delete your own admin account! This action cannot be undone and will permanently delete your account?",
"organizer": "Organizer", "organizer": "Organizer",
"transfer": "Transfer", "transfer": "Transfer",
"copy": "Copy", "copy": "Copy",

View File

@ -2,9 +2,21 @@
<v-container fluid> <v-container fluid>
<BaseDialog v-model="deleteDialog" :title="$t('general.confirm')" color="error" @confirm="deleteUser(deleteTarget)"> <BaseDialog v-model="deleteDialog" :title="$t('general.confirm')" color="error" @confirm="deleteUser(deleteTarget)">
<template #activator> </template> <template #activator> </template>
<v-card-text>
<v-card-text
v-if="isUserOwnAccount === true">
<v-alert
text
outlined
color="deep-orange"
> {{ $t("general.confirm-delete-own-admin-account") }}
<br/>
</v-alert>
{{ $t("general.confirm-delete-generic") }} {{ $t("general.confirm-delete-generic") }}
</v-card-text> </v-card-text>
<v-card-text v-else>
{{ $t("general.confirm-delete-generic") }}
</v-card-text>
</BaseDialog> </BaseDialog>
<BaseCardSectionTitle title="User Management"> </BaseCardSectionTitle> <BaseCardSectionTitle title="User Management"> </BaseCardSectionTitle>
@ -51,7 +63,8 @@
@click.stop=" @click.stop="
deleteDialog = true; deleteDialog = true;
deleteTarget = item.id; deleteTarget = item.id;
" isUserOwnAccount = item.id === user.id ? true : false;
"
> >
<v-icon> <v-icon>
{{ $globals.icons.delete }} {{ $globals.icons.delete }}
@ -65,7 +78,7 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent, reactive, ref, toRefs, useContext, useRouter } from "@nuxtjs/composition-api"; import { defineComponent, reactive, ref, toRefs, useContext, useRouter, computed } from "@nuxtjs/composition-api";
import { useAdminApi } from "~/composables/api"; import { useAdminApi } from "~/composables/api";
import { alert } from "~/composables/use-toast"; import { alert } from "~/composables/use-toast";
import { useUser, useAllUsers } from "~/composables/use-user"; import { useUser, useAllUsers } from "~/composables/use-user";
@ -76,6 +89,9 @@ export default defineComponent({
setup() { setup() {
const api = useAdminApi(); const api = useAdminApi();
const refUserDialog = ref(); const refUserDialog = ref();
const { $auth } = useContext();
const user = computed(() => $auth.user);
const { i18n } = useContext(); const { i18n } = useContext();
@ -84,6 +100,7 @@ export default defineComponent({
const state = reactive({ const state = reactive({
deleteDialog: false, deleteDialog: false,
deleteTarget: 0, deleteTarget: 0,
isUserOwnAccount: false,
search: "", search: "",
}); });
@ -130,6 +147,7 @@ export default defineComponent({
loading, loading,
refUserDialog, refUserDialog,
users, users,
user,
handleRowClick, handleRowClick,
}; };
}, },