Harden audit privacy and admin modals
CI - Build & Verify / Build, Typecheck & Hygiene (push) Successful in 56s
CI - Build & Verify / Deploy to award.noveria.net (push) Successful in 1m5s

This commit is contained in:
AzuTear
2026-06-26 20:47:07 +02:00
parent aeade132f9
commit 9393d433fa
17 changed files with 741 additions and 315 deletions
@@ -4,6 +4,7 @@ import { computed, reactive, ref } from 'vue'
import AdminPageHeader from '../../components/admin/AdminPageHeader.vue'
import { useAdminTeamManager } from '../../components/admin/useAdminTeamManager'
import { useBodyScrollLock } from '../../composables/useBodyScrollLock'
import { watchAdminToast } from '../../composables/useAdminToast'
import Button from '../../components/ui/Button.vue'
import Card from '../../components/ui/Card.vue'
@@ -67,6 +68,15 @@ const memberPendingDeletion = computed(() =>
members.value.find((member) => member.id === confirmDeleteMemberId.value) ?? null,
)
const onlineMembers = computed(() => members.value.filter((member) => member.isOnline).length)
const anyTeamModalOpen = computed(() =>
passwordModalOpen.value
|| createMemberModalOpen.value
|| editMemberModalOpen.value
|| rolePermissionsModalOpen.value
|| Boolean(memberPendingDeletion.value),
)
useBodyScrollLock(() => anyTeamModalOpen.value)
const summaryItems = computed(() => [
{ label: 'Mitglieder', value: members.value.length, note: `${onlineMembers.value} online` },