86 lines
3.7 KiB
HTML
86 lines
3.7 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="pt">
|
|
<head>
|
|
<meta charset="UTF-8"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>Ligbox Ops — Support Desk</title>
|
|
<link rel="stylesheet" href="/assets/styles.css"/>
|
|
</head>
|
|
<body>
|
|
<div class="shell">
|
|
<aside class="sidebar">
|
|
<div class="brand">
|
|
<h1>Ligbox Ops</h1>
|
|
<p>Support Desk · Ibytera</p>
|
|
</div>
|
|
<nav class="nav">
|
|
<button type="button" data-view="dashboard" class="active">📊 Dashboard</button>
|
|
<button type="button" data-view="overview">🛡 Overview</button>
|
|
<button type="button" data-view="tickets">🎫 Tickets</button>
|
|
<button type="button" data-view="events">📡 Eventos</button>
|
|
<button type="button" data-view="tenants">🏢 Tenants</button>
|
|
<button type="button" data-view="infra">🖥 Infra</button>
|
|
</nav>
|
|
<div class="sidebar-footer">VM122 · ligbox-ops · MVP</div>
|
|
</aside>
|
|
|
|
<main class="main">
|
|
<header class="page-header">
|
|
<div>
|
|
<h2 id="page-title">Dashboard</h2>
|
|
<p>Operações Ligbox — onboarding, tickets e monitorização</p>
|
|
</div>
|
|
<div style="display:flex;gap:0.5rem;align-items:center;flex-wrap:wrap">
|
|
<span id="global-health" class="status-pill">…</span>
|
|
<button type="button" class="btn btn-ghost" id="btn-refresh">Actualizar</button>
|
|
</div>
|
|
</header>
|
|
|
|
<section id="view-dashboard" class="view active">
|
|
<div id="dashboard-content"><p class="loading">A carregar…</p></div>
|
|
</section>
|
|
|
|
<section id="view-overview" class="view">
|
|
<div id="overview-content"><p class="loading">A carregar…</p></div>
|
|
<div id="scorecard-panel" class="card" style="display:none;margin-top:1rem"></div>
|
|
</section>
|
|
|
|
<section id="view-tickets" class="view">
|
|
<div class="toolbar">
|
|
<button type="button" class="filter-btn active" data-filter="all">Todos</button>
|
|
<button type="button" class="filter-btn" data-filter="open">Abertos</button>
|
|
<button type="button" class="filter-btn" data-filter="closed">Fechados</button>
|
|
<span class="toolbar-sep">|</span>
|
|
<button type="button" class="filter-btn active" data-source="all" data-kind="ticket">Todas origens</button>
|
|
<button type="button" class="filter-btn" data-source="vm112-onboard" data-kind="ticket">Onboard</button>
|
|
<button type="button" class="filter-btn" data-source="wazuh" data-kind="ticket">Wazuh</button>
|
|
</div>
|
|
<div class="grid-2">
|
|
<div id="ticket-list"><p class="loading">A carregar…</p></div>
|
|
<div id="ticket-detail">
|
|
<div class="card detail-panel"><p class="empty">Seleccione um ticket para ver detalhes</p></div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section id="view-events" class="view">
|
|
<div class="toolbar">
|
|
<button type="button" class="filter-btn active" data-source="all" data-kind="event">Todas origens</button>
|
|
<button type="button" class="filter-btn" data-source="vm112-onboard" data-kind="event">Onboard</button>
|
|
<button type="button" class="filter-btn" data-source="wazuh" data-kind="event">Wazuh</button>
|
|
</div>
|
|
<div id="events-content"><p class="loading">A carregar…</p></div>
|
|
</section>
|
|
|
|
<section id="view-tenants" class="view">
|
|
<div id="tenants-content"><p class="loading">A carregar…</p></div>
|
|
</section>
|
|
|
|
<section id="view-infra" class="view">
|
|
<div id="infra-content"><p class="loading">A carregar…</p></div>
|
|
</section>
|
|
</main>
|
|
</div>
|
|
<script src="/assets/app.js"></script>
|
|
</body>
|
|
</html>
|