82 lines
5.5 KiB
PHP
82 lines
5.5 KiB
PHP
<?php
|
|
/**
|
|
* ============================================
|
|
* AegisOne Engineering Service — Шапка дашборда
|
|
* ============================================
|
|
*
|
|
* Выводит <head> (с запретом индексации), открывает <body>,
|
|
* сайдбар с навигацией по ролям и <main>.
|
|
* Если пользователь не авторизован — редирект на логин.
|
|
*/
|
|
|
|
if (empty($_SESSION['user_id'])) return;
|
|
|
|
$current_uri = $_SERVER['REQUEST_URI'];
|
|
$role = $_SESSION['user_role'];
|
|
$name = $_SESSION['user_name'];
|
|
|
|
function nav_link(string $href, string $label, string $tooltip = '', array $roles = []): string {
|
|
global $current_uri, $role;
|
|
if (!empty($roles) && !in_array($role, $roles, true)) return '';
|
|
$active = strpos($current_uri, $href) === 0 ? ' active' : '';
|
|
$tip = $tooltip !== '' ? ' data-tooltip="' . htmlspecialchars($tooltip) . '"' : '';
|
|
return '<a href="' . htmlspecialchars($href) . '" class="' . $active . '"' . $tip . '>' . htmlspecialchars($label) . '</a>';
|
|
}
|
|
|
|
$roleLabel = $role === 'owner' ? 'Владелец' : ($role === 'engineer' ? 'Инженер' : 'Техник');
|
|
?><!DOCTYPE html>
|
|
<html lang="ru">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<meta name="robots" content="noindex, nofollow">
|
|
<title>Service Portal — AegisOne Engineering</title>
|
|
<link rel="stylesheet" href="/service-style.php">
|
|
<link rel="icon" type="image/x-icon" href="/assets/img/favicon.ico">
|
|
</head>
|
|
<body>
|
|
<button class="sidebar-toggle" onclick="document.querySelector('.sidebar').classList.toggle('open')">☰</button>
|
|
<div class="layout">
|
|
<aside class="sidebar">
|
|
<div class="sidebar-header">
|
|
<div class="logo">Aegis<span>One</span></div>
|
|
<div style="font-size:10px;color:var(--text-muted);">Service Portal</div>
|
|
</div>
|
|
<nav class="sidebar-nav">
|
|
<div class="sidebar-section">Панель</div>
|
|
<?= nav_link('/service/dashboard.php', 'Дашборд', 'Главная панель', ['owner','engineer','technician']) ?>
|
|
<div class="sidebar-section">Управление</div>
|
|
<?= nav_link('/service/pages/owner/users.php', 'Сотрудники', 'Управление сотрудниками', ['owner']) ?>
|
|
<?= nav_link('/service/pages/owner/customers.php', 'Клиенты', 'Управление клиентами', ['owner','engineer']) ?>
|
|
<?= nav_link('/service/pages/owner/objects.php', 'Объекты', 'Управление объектами', ['owner','engineer']) ?>
|
|
<?= nav_link('/service/pages/owner/assignments.php', 'Назначения', 'Назначения на объекты', ['owner']) ?>
|
|
<?= nav_link('/service/pages/owner/sla.php', 'SLA контракты', 'Управление SLA', ['owner','engineer']) ?>
|
|
<?= nav_link('/service/pages/owner/ceo.php', 'CEO дашборд', 'Бизнес-метрики', ['owner']) ?>
|
|
<?= nav_link('/service/pages/owner/coefficients.php', 'Коэффициенты', 'Расчётные коэффициенты', ['owner']) ?>
|
|
<div class="sidebar-section">Работа</div>
|
|
<?= nav_link('/service/pages/engineer/tasks.php', 'Задачи', 'Мои задачи', ['engineer','technician']) ?>
|
|
<?= nav_link('/service/pages/engineer/reports.php', 'Отчёты', 'Отчёты по объектам', ['engineer','technician']) ?>
|
|
<?= nav_link('/service/pages/engineer/incidents.php', 'Инциденты', 'Журнал инцидентов', ['engineer','technician']) ?>
|
|
<?= nav_link('/service/pages/shared/questionnaire.php', 'Опросник', 'Обследование объекта', ['owner','engineer']) ?>
|
|
<?= nav_link('/service/pages/owner/questionnaire_config.php', 'Настройка опросника', 'Конфигурация вопросов', ['owner']) ?>
|
|
<?= nav_link('/service/pages/shared/passports.php', 'Паспорта объектов', 'Паспорта и расчёты', ['owner','engineer']) ?>
|
|
<?php if ($role === 'technician'): ?>
|
|
<?= nav_link('/service/pages/technician/checklist.php', 'Чек-лист', 'Чек-лист техника', ['technician']) ?>
|
|
<?php endif; ?>
|
|
<div class="sidebar-section">Блог</div>
|
|
<?= nav_link('/service/pages/owner/blog.php', 'Управление блогом', 'Создание и редактирование статей', ['owner']) ?>
|
|
<?= nav_link('/blog/', 'Публичный блог', 'Открытый блог на сайте', ['owner','engineer','technician']) ?>
|
|
<div class="sidebar-section">Контент</div>
|
|
<?= nav_link('/service/pages/owner/cases.php', 'Примеры из практики', 'Карусель на главной', ['owner']) ?>
|
|
<div class="sidebar-section">Документация</div>
|
|
<?= nav_link('/service/pages/shared/docs.php', 'Просмотр документации', 'Читать документы', ['owner','engineer']) ?>
|
|
<?= nav_link('/service/pages/owner/docs_section.php', 'Управление документами', 'Настройка доступа к документам', ['owner']) ?>
|
|
</nav>
|
|
<div class="sidebar-footer">
|
|
<div class="user-name"><?= htmlspecialchars($name) ?></div>
|
|
<div class="user-role"><?= $roleLabel ?></div>
|
|
<a href="/service/logout.php" style="display:inline-block;margin-top:6px;font-size:12px;">Выйти</a>
|
|
</div>
|
|
</aside>
|
|
<main class="main">
|