91 lines
4.4 KiB
HTML
91 lines
4.4 KiB
HTML
<!doctype html>
|
|
<html lang="ru">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>AWatch-rus Portal</title>
|
|
<link rel="stylesheet" href="app.css">
|
|
</head>
|
|
<body>
|
|
<div class="app-layout">
|
|
<aside class="sidebar" aria-label="Основная навигация">
|
|
<div class="sidebar-brand">
|
|
<strong>AWatch-rus</strong>
|
|
<span>Активность и риски</span>
|
|
</div>
|
|
<nav class="tabs">
|
|
<button class="tab is-active" data-tab="operator">Обзор</button>
|
|
<button class="tab" data-tab="employees">Сотрудники</button>
|
|
<button class="tab" data-tab="departments">Подразделения</button>
|
|
<button class="tab" data-tab="owner">Риски</button>
|
|
<button class="tab" data-tab="incidents">Расследования</button>
|
|
<button class="tab" data-tab="perimeter">Сетевой периметр</button>
|
|
<button class="tab" data-tab="reports">Отчеты</button>
|
|
<button class="tab" data-tab="settings">Настройки</button>
|
|
<a class="nav-link" href="/portal/architecture">Архитектура</a>
|
|
</nav>
|
|
</aside>
|
|
|
|
<main class="shell">
|
|
<header class="topbar">
|
|
<div class="brand">
|
|
<p class="eyebrow">AWatch-rus</p>
|
|
<h1>Пульс организации</h1>
|
|
<p class="lead">Активность сотрудников, риски подразделений и материалы расследований за выбранный период</p>
|
|
</div>
|
|
<div class="topbar-side" aria-label="Параметры отчета">
|
|
<div class="control-strip">
|
|
<label>
|
|
<span>Период</span>
|
|
<select id="periodFilter">
|
|
<option value="today">Сегодня</option>
|
|
<option value="week">7 дней</option>
|
|
<option value="month">30 дней</option>
|
|
</select>
|
|
</label>
|
|
<label>
|
|
<span>Подразделение</span>
|
|
<select id="departmentFilter">
|
|
<option>Все</option>
|
|
</select>
|
|
</label>
|
|
</div>
|
|
<div class="view-switch" aria-label="Ролевое представление">
|
|
<span>Роль</span>
|
|
<button class="view-button is-active" data-view-mode="executive" type="button">Руководитель</button>
|
|
<button class="view-button" data-view-mode="manager" type="button">Менеджер</button>
|
|
<button class="view-button" data-view-mode="security" type="button">Безопасность</button>
|
|
<button class="view-button" data-view-mode="forensics" type="button">Расследования</button>
|
|
<button class="view-button" data-view-mode="admin" type="button">Админ</button>
|
|
</div>
|
|
<div class="header-actions">
|
|
<button class="small-button primary" data-open-reports="true">Сформировать отчет</button>
|
|
<button class="small-button" data-export-markdown="true">Текстовый отчет</button>
|
|
<button class="small-button" data-print-report="true">PDF-отчет</button>
|
|
<a class="small-button" href="/portal/api/reports" target="_blank" rel="noopener noreferrer">Данные</a>
|
|
<div id="globalStatus" class="status-pill status-unknown">Загрузка данных</div>
|
|
</div>
|
|
</div>
|
|
</header>
|
|
|
|
<section id="loadingStatus" class="loading-status loading-status-unknown" aria-live="polite">
|
|
<div class="loading-status-head">
|
|
<div>
|
|
<strong id="loadingStateText">Загрузка данных</strong>
|
|
<span id="loadingStageText">Получение данных</span>
|
|
</div>
|
|
<span id="loadingUpdatedText">последнее обновление: -</span>
|
|
</div>
|
|
<div class="loading-progress" aria-hidden="true">
|
|
<div id="loadingProgressBar" style="width: 0%"></div>
|
|
</div>
|
|
</section>
|
|
|
|
<section id="content" class="content-panel" aria-live="polite"></section>
|
|
<section id="summary" class="summary-grid service-summary"></section>
|
|
</main>
|
|
</div>
|
|
<script src="app.js?v=20260604-security-cache"></script>
|
|
</body>
|
|
</html>
|