feat: refactor operator dashboard and report handling, add public intervention page
This commit is contained in:
@@ -106,6 +106,19 @@ const formatDate = (dateStr: string) => {
|
||||
hour: '2-digit', minute: '2-digit'
|
||||
})
|
||||
}
|
||||
|
||||
const formatFlagStatus = (status: string) => {
|
||||
const map: Record<string, string> = {
|
||||
OPEN: 'Aperto',
|
||||
RESOLVED: 'Risolto',
|
||||
DISMISSED: 'Ignorato'
|
||||
}
|
||||
|
||||
return map[status] || status
|
||||
}
|
||||
|
||||
const contentTypeLabel = (type: string) => type === 'REPORT' ? 'Segnalazione' : 'Messaggio'
|
||||
const canRejectReport = (flag: any) => flag.content_type === 'REPORT'
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@@ -153,7 +166,7 @@ const formatDate = (dateStr: string) => {
|
||||
'bg-warning': flag.status === 'OPEN',
|
||||
'bg-success': flag.status === 'RESOLVED',
|
||||
'bg-secondary': flag.status === 'DISMISSED'
|
||||
}">{{ flag.status }}</span>
|
||||
}">{{ formatFlagStatus(flag.status) }}</span>
|
||||
</div>
|
||||
<small class="text-muted">{{ formatDate(flag.created_at) }}</small>
|
||||
</div>
|
||||
@@ -166,7 +179,7 @@ const formatDate = (dateStr: string) => {
|
||||
</p>
|
||||
|
||||
<div class="mt-info">
|
||||
<span class="badge bg-info me-2">{{ flag.content_type }}</span>
|
||||
<span class="badge bg-info me-2">{{ contentTypeLabel(flag.content_type) }}</span>
|
||||
<span v-if="flag.report_id">
|
||||
Rif:
|
||||
<NuxtLink :to="`/operator/reports/${flag.report_id}`" class="text-decoration-none">
|
||||
@@ -190,11 +203,11 @@ const formatDate = (dateStr: string) => {
|
||||
|
||||
<div class="col-md-4 text-end" v-if="flag.status === 'OPEN'">
|
||||
<div class="d-flex flex-column gap-2 mt-3 mt-md-0">
|
||||
<button class="btn btn-outline-danger btn-sm" @click="openResolveModal(flag.id, true)">
|
||||
<BIIcon name="it-ban" size="xs" /> Risolvi & Rigetta Segn.
|
||||
<button class="btn btn-outline-danger btn-sm" @click="openResolveModal(flag.id, canRejectReport(flag))">
|
||||
<BIIcon name="it-ban" size="xs" /> {{ canRejectReport(flag) ? 'Risolvi & Rigetta Segn.' : 'Risolvi flag' }}
|
||||
</button>
|
||||
<button class="btn btn-outline-warning btn-sm" @click="openResolveModal(flag.id, false)">
|
||||
<BIIcon name="it-check" size="xs" /> Risolvi (Solo Avviso)
|
||||
<BIIcon name="it-check" size="xs" /> {{ canRejectReport(flag) ? 'Risolvi (Solo Avviso)' : 'Risolvi senza rigetto' }}
|
||||
</button>
|
||||
<button class="btn btn-outline-secondary btn-sm" @click="openDismissModal(flag.id)">
|
||||
<BIIcon name="it-close" size="xs" /> Ignora Flag
|
||||
@@ -280,4 +293,4 @@ const formatDate = (dateStr: string) => {
|
||||
.dismissed-card .mt-info {
|
||||
margin-top: 0.4rem;
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user