Files
analiticaNucleo/nuxt4-app/app/pages/notifications.vue
josedario87 1baa4de990
All checks were successful
build-and-deploy / build (push) Successful in 56s
build-and-deploy / deploy (push) Successful in 4s
Remove legacy authentication and PostgreSQL configuration
- Remove obsolete auth middleware references from settings and notifications pages
- Clean up .env.example: remove unused PostgreSQL and PostgREST variables
- Delete POSTGRES_SETUP.md: outdated documentation for removed services
- App now uses Supabase directly instead of local PostgreSQL+PostgREST
- Authentication is handled entirely by Authentik Forward Auth at Traefik level
2025-10-13 13:27:22 -06:00

152 lines
5.3 KiB
Vue

<script setup lang="ts">
definePageMeta({
layout: 'dashboard',
title: 'Notificaciones'
})
// Mock notifications for preview
const mockNotifications = [
{
id: 1,
type: 'info',
title: 'Nueva actualización disponible',
message: 'Se ha lanzado una nueva versión del sistema con mejoras de rendimiento.',
time: '2 horas',
read: false,
icon: 'i-lucide-info',
color: 'blue'
},
{
id: 2,
type: 'warning',
title: 'Mantenimiento programado',
message: 'El sistema estará en mantenimiento el próximo domingo de 2:00 AM a 4:00 AM.',
time: '1 día',
read: false,
icon: 'i-lucide-alert-triangle',
color: 'amber'
},
{
id: 3,
type: 'success',
title: 'Reporte generado',
message: 'Tu reporte mensual ha sido generado exitosamente.',
time: '3 días',
read: true,
icon: 'i-lucide-check-circle',
color: 'green'
}
]
</script>
<template>
<UDashboardLayout>
<UDashboardPanel grow>
<UDashboardNavbar
title="Notificaciones"
description="Mantente al día con las últimas actualizaciones y alertas"
/>
<UDashboardPanelContent>
<div class="max-w-4xl mx-auto space-y-8">
<!-- Coming Soon Banner -->
<UCard>
<div class="text-center py-12 space-y-6">
<div class="flex justify-center">
<div class="w-24 h-24 rounded-full bg-amber-50 dark:bg-amber-950/30 flex items-center justify-center relative">
<UIcon name="i-lucide-bell" class="size-12 text-amber-600 dark:text-amber-400" />
<span class="absolute -top-1 -right-1 w-6 h-6 bg-red-500 text-white text-xs font-bold rounded-full flex items-center justify-center ring-4 ring-white dark:ring-gray-900">
3
</span>
</div>
</div>
<div>
<h2 class="text-3xl font-bold text-gray-900 dark:text-white mb-2">
Página en construcción
</h2>
<p class="text-lg text-gray-600 dark:text-gray-400 mb-4">
Estamos trabajando en esta funcionalidad
</p>
<p class="text-sm text-gray-500 dark:text-gray-500 max-w-md mx-auto">
Pronto podrás gestionar tus notificaciones, configurar alertas personalizadas y mantenerte informado sobre eventos importantes del sistema.
</p>
</div>
<div class="flex justify-center gap-3">
<UButton
to="/"
color="primary"
icon="i-lucide-home"
>
Volver al inicio
</UButton>
</div>
</div>
</UCard>
<!-- Notifications Preview -->
<UCard>
<template #header>
<div class="flex items-center justify-between">
<h3 class="text-lg font-semibold text-gray-900 dark:text-white">
Vista previa de notificaciones
</h3>
<UBadge color="red" variant="solid" size="sm">
{{ mockNotifications.filter(n => !n.read).length }} nuevas
</UBadge>
</div>
</template>
<div class="space-y-3">
<div
v-for="notification in mockNotifications"
:key="notification.id"
:class="[
'p-4 rounded-lg border transition-colors',
notification.read
? 'bg-gray-50/50 dark:bg-gray-800/50 border-gray-200 dark:border-gray-700'
: 'bg-white dark:bg-gray-900 border-gray-300 dark:border-gray-600'
]"
>
<div class="flex gap-3">
<div :class="[
'w-10 h-10 rounded-lg flex items-center justify-center flex-shrink-0',
`bg-${notification.color}-50 dark:bg-${notification.color}-950/30`
]">
<UIcon
:name="notification.icon"
:class="[
'size-5',
`text-${notification.color}-600 dark:text-${notification.color}-400`
]"
/>
</div>
<div class="flex-1 min-w-0">
<div class="flex items-start justify-between gap-2">
<h4 :class="[
'font-semibold text-sm',
notification.read
? 'text-gray-600 dark:text-gray-400'
: 'text-gray-900 dark:text-white'
]">
{{ notification.title }}
</h4>
<span class="text-xs text-gray-500 dark:text-gray-500 flex-shrink-0">
hace {{ notification.time }}
</span>
</div>
<p class="text-sm text-gray-600 dark:text-gray-400 mt-1">
{{ notification.message }}
</p>
</div>
</div>
</div>
</div>
</UCard>
</div>
</UDashboardPanelContent>
</UDashboardPanel>
</UDashboardLayout>
</template>