feat(mejoras): 14 mejoras al CRM Frasa
Fase 1 - UI: dark mode, skeletons, toasts Fase 2 - Filtros: avanzados Mi día, búsqueda global Ctrl+K Fase 3 - Datos: export Excel, notas apartados, auditoría Fase 4 - Dashboard: gráficas vendedor + métricas uso Fase 5 - Responsive: tablets optimizadas Fase 6 - PWA: IndexedDB offline, push notifications Backend: 3 tablas nuevas, 6 services, 6 endpoints nuevos 721 API tests + fronts verdes.
This commit is contained in:
12
apps/mi-dia/public/manifest.json
Normal file
12
apps/mi-dia/public/manifest.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"name": "FRASA CRM",
|
||||
"short_name": "FRASA",
|
||||
"start_url": "/hoy/",
|
||||
"display": "standalone",
|
||||
"background_color": "#F8FAFC",
|
||||
"theme_color": "#2563EB",
|
||||
"icons": [
|
||||
{ "src": "/hoy/icons/icon-192.png", "sizes": "192x192", "type": "image/png" },
|
||||
{ "src": "/hoy/icons/icon-512.png", "sizes": "512x512", "type": "image/png" }
|
||||
]
|
||||
}
|
||||
21
apps/mi-dia/public/sw.js
Normal file
21
apps/mi-dia/public/sw.js
Normal file
@@ -0,0 +1,21 @@
|
||||
/* eslint-env serviceworker */
|
||||
|
||||
self.addEventListener('push', (event) => {
|
||||
const data = event.data ? event.data.json() : {}
|
||||
const titulo = data.titulo || 'FRASA'
|
||||
const cuerpo = data.cuerpo || ''
|
||||
const url = data.url || '/'
|
||||
event.waitUntil(
|
||||
self.registration.showNotification(titulo, {
|
||||
body: cuerpo,
|
||||
data: { url },
|
||||
icon: '/hoy/icons/icon-192.png',
|
||||
}),
|
||||
)
|
||||
})
|
||||
|
||||
self.addEventListener('notificationclick', (event) => {
|
||||
event.notification.close()
|
||||
const url = (event.notification.data && event.notification.data.url) || '/'
|
||||
event.waitUntil(clients.openWindow(url))
|
||||
})
|
||||
Reference in New Issue
Block a user