feat: complete administration and reporting

This commit is contained in:
2026-08-04 17:40:52 +01:00
parent d829f34580
commit 7a4ac48aaf
42 changed files with 2595 additions and 76 deletions

View File

@@ -1,6 +1,7 @@
import { Link, usePage } from '@inertiajs/react';
import {
Bell,
BarChart3,
CalendarDays,
CalendarRange,
LayoutGrid,
@@ -10,6 +11,10 @@ import {
PlusCircle,
ServerCog,
ShieldCheck,
ScrollText,
UsersRound,
SlidersHorizontal,
Mails,
} from 'lucide-react';
import AppLogo from '@/components/app-logo';
import { NavFooter } from '@/components/nav-footer';
@@ -82,16 +87,53 @@ export function AppSidebar() {
},
]
: roleNavItems;
const visibleNavItems = can.administer
const calendarNavItems = can.viewGlobalCalendar
? [
...operationalNavItems,
{
title: 'Calendário global',
href: '/calendario-global',
icon: CalendarRange,
},
]
: operationalNavItems;
const reportNavItems = can.viewReports
? [
...calendarNavItems,
{ title: 'Relatórios', href: '/relatorios', icon: BarChart3 },
]
: calendarNavItems;
const oversightNavItems = can.viewAudit
? [
...reportNavItems,
{ title: 'Auditoria', href: '/auditoria', icon: ScrollText },
]
: reportNavItems;
const visibleNavItems = can.administer
? [
...oversightNavItems,
{
title: 'Utilizadores',
href: '/administracao/utilizadores',
icon: UsersRound,
},
{
title: 'Regras de reserva',
href: '/administracao/regras',
icon: SlidersHorizontal,
},
{
title: 'Modelos de email',
href: '/administracao/notificacoes/modelos',
icon: Mails,
},
{
title: 'Integração Snipe-IT',
href: '/administracao/snipe-it',
icon: ServerCog,
},
]
: operationalNavItems;
: oversightNavItems;
return (
<Sidebar collapsible="icon" variant="inset">