Nuovi endpoint CRUD implementati lato grafico nel pannello admin #7

Merged
reloia merged 3 commits from crud-admin-panel into master 2026-06-15 15:07:10 +00:00
3 changed files with 22 additions and 6 deletions
Showing only changes of commit 3e16f66180 - Show all commits
+4 -1
View File
@@ -33,6 +33,9 @@ const modalTitle = computed(() => editingAreaId.value ? 'Modifica Area' : 'Nuova
const submitLabel = computed(() => editingAreaId.value ? 'Salva Modifiche' : 'Crea Area')
const isEditing = computed(() => editingAreaId.value !== null)
const areas = computed(() => areasRes.value?.areas || [])
const areaDeleteMessage = computed(() =>
areaPendingDelete.value ? `Vuoi eliminare area "${areaPendingDelete.value.name}"? Operazione irreversibile.` : ''
)
const openCreateModal = () => {
actionError.value = ''
@@ -393,7 +396,7 @@ const handleDeleteArea = async () => {
<ConfirmModal
:open="areaPendingDelete !== null"
title="Elimina area"
:message="areaPendingDelete ? `Vuoi eliminare area \\\"${areaPendingDelete.name}\\\"? Operazione irreversibile.` : ''"
:message="areaDeleteMessage"
confirm-label="Elimina area"
confirm-class="btn-danger"
:pending="deletingAreaId !== null"
+8 -2
View File
@@ -43,6 +43,12 @@ const teamPendingDelete = ref<Team | null>(null)
const categories = computed(() => categoriesRes.value?.categories || [])
const teams = computed(() => teamsRes.value?.teams || [])
const areas = computed(() => areasRes.value?.areas || [])
const categoryDeleteMessage = computed(() =>
categoryPendingDelete.value ? `Vuoi eliminare categoria "${categoryPendingDelete.value.name}"? Operazione irreversibile.` : ''
)
const teamDeleteMessage = computed(() =>
teamPendingDelete.value ? `Vuoi eliminare team "${teamPendingDelete.value.name}"? Operazione irreversibile.` : ''
)
const resetCategoryForm = () => {
editingCategoryId.value = null
@@ -418,7 +424,7 @@ const handleDeleteTeam = async () => {
<ConfirmModal
:open="categoryPendingDelete !== null"
title="Elimina categoria"
:message="categoryPendingDelete ? `Vuoi eliminare categoria \\\"${categoryPendingDelete.name}\\\"? Operazione irreversibile.` : ''"
:message="categoryDeleteMessage"
confirm-label="Elimina categoria"
confirm-class="btn-danger"
:pending="deletingCategoryId !== null"
@@ -429,7 +435,7 @@ const handleDeleteTeam = async () => {
<ConfirmModal
:open="teamPendingDelete !== null"
title="Elimina team"
:message="teamPendingDelete ? `Vuoi eliminare team \\\"${teamPendingDelete.name}\\\"? Operazione irreversibile.` : ''"
:message="teamDeleteMessage"
confirm-label="Elimina team"
confirm-class="btn-danger"
:pending="deletingTeamId !== null"
+10 -3
View File
@@ -18,6 +18,13 @@ const roleError = ref('')
const pendingBanUser = ref<any | null>(null)
const isUpdatingBan = ref(false)
const parseRoles = (roles?: string) => roles ? roles.split(',').map((r) => r.trim().toUpperCase()).filter(Boolean) : []
const banConfirmMessage = computed(() =>
pendingBanUser.value
? `Vuoi ${pendingBanUser.value.banned ? 'sbloccare' : 'bannare'} utente ${pendingBanUser.value.first_name} ${pendingBanUser.value.last_name}?`
: ''
)
const banConfirmLabel = computed(() => pendingBanUser.value?.banned ? 'Sblocca utente' : 'Banna utente')
const banConfirmClass = computed(() => pendingBanUser.value?.banned ? 'btn-success' : 'btn-danger')
const filteredUsers = computed(() => {
if (!usersRes.value?.users) return []
@@ -210,9 +217,9 @@ const saveRoles = async () => {
<ConfirmModal
:open="pendingBanUser !== null"
title="Conferma stato utente"
:message="pendingBanUser ? `Vuoi ${pendingBanUser.banned ? 'sbloccare' : 'bannare'} utente ${pendingBanUser.first_name} ${pendingBanUser.last_name}?` : ''"
:confirm-label="pendingBanUser?.banned ? 'Sblocca utente' : 'Banna utente'"
:confirm-class="pendingBanUser?.banned ? 'btn-success' : 'btn-danger'"
:message="banConfirmMessage"
:confirm-label="banConfirmLabel"
:confirm-class="banConfirmClass"
:pending="isUpdatingBan"
@cancel="closeBanModal"
@confirm="handleToggleBan"