// phase5-pages.jsx — Онбординг · Навчання · Аудит · Сповіщення
// ============ ОНБОРДИНГ ============
function OnboardingPage({ role }) {
const steps = window.ONBOARDING_STEPS;
const cats = window.ONBOARDING_CATEGORIES;
const active = window.ACTIVE_ONBOARDINGS;
const [openId, setOpenId] = React.useState(null);
return (
Онбординг новачків
{active.length} {window.plural(active.length, "новачок", "новачки", "новачків")} зараз{steps.length} кроків у чек-листіщоб ніхто не загубився в перший тиждень
Як працює: при додаванні нового співробітника створюється персональний чек-лист
з 20 пунктів. Менеджер і ментор галочкують виконане. Прогрес видно всім.
Сторінки для новачка
видай у перший день
Пам'ятка · Доступ до ERP
Як новачок уперше входить у систему — 3 кроки зі скріншотами реальних екранів: вхід, зміна пароля, «На сьогодні». Придатна для друку й розсилки.
);
}
// ============ АУДИТ ============
function AuditLogPage({ role }) {
const log = window.AUDIT_LOG;
const actions = window.AUDIT_ACTIONS;
const entities = window.AUDIT_ENTITY_LABELS;
const team = window.DATA.TEAM;
const [filterWho, setFilterWho] = React.useState("all");
const [filterAction, setFilterAction] = React.useState("all");
let shown = log;
if (filterWho !== "all") shown = shown.filter(l => l.who === filterWho);
if (filterAction !== "all") shown = shown.filter(l => l.action === filterAction);
// Group by day
const byDay = {};
shown.forEach(item => {
const day = item.date.substring(0, 10);
if (!byDay[day]) byDay[day] = [];
byDay[day].push(item);
});
const days = Object.keys(byDay).sort((a, b) => b.localeCompare(a));
return (
Журнал аудиту
{log.length} {window.plural(log.length, "запис", "записи", "записів")} за {days.length} {window.plural(days.length, "день", "дні", "днів")}хто що змінив у системіусі дії незмінні · зберігаються 7 років
Для чого: вимога для відповідальних об'єктів (СС2/СС3) і для перевірок —
повний слід усіх змін: підписи, узгодження, виставлення рахунків, редагування
проєктної документації. Записи неможливо видалити.