feat: добавлен режим "Каникулы" и улучшения админ-панели

- Добавлен режим "Каникулы" который полностью заменяет главную страницу:
  * Карточка с эмодзи 🎉 и праздничным сообщением
  * Поддержка произвольного текста в формате Markdown
  * Карточка центрируется по вертикали при отсутствии текста

- Улучшения админ-панели:
  * Переключатель режима "Каникулы"
  * Редактор текста с подсказками по форматированию Markdown
  * Исправлена проблема с обновлением настроек (сохранение существующих значений)
  * Исправлена проблема с debug опциями в production (не блокируют обновление обычных настроек)

- Оптимизация загрузки:
  * Проверка режима каникул перед загрузкой групп
  * Динамическая загрузка ReactMarkdown только при необходимости
  * Кеш настроек сбрасывается на главной странице для актуальности

- Добавлен скрипт для сброса пароля администратора (scripts/reset-admin-password.js)

- Установлена библиотека react-markdown для рендеринга Markdown контента
This commit is contained in:
kilyabin
2025-12-04 23:22:42 +04:00
parent e46a2419c3
commit 3f74709513
9 changed files with 1562 additions and 23 deletions

View File

@@ -158,6 +158,8 @@ export function getSettings(): AppSettings {
const defaultSettings: AppSettings = {
weekNavigationEnabled: false,
showAddGroupButton: true,
vacationModeEnabled: false,
vacationModeContent: '',
debug: {
forceCache: false,
forceEmpty: false,
@@ -176,6 +178,8 @@ export function getSettings(): AppSettings {
return {
weekNavigationEnabled: settings.weekNavigationEnabled ?? false,
showAddGroupButton: settings.showAddGroupButton ?? true,
vacationModeEnabled: settings.vacationModeEnabled ?? false,
vacationModeContent: settings.vacationModeContent ?? '',
...settings,
debug: {
forceCache: false,
@@ -190,6 +194,8 @@ export function getSettings(): AppSettings {
const defaultSettings: AppSettings = {
weekNavigationEnabled: false,
showAddGroupButton: true,
vacationModeEnabled: false,
vacationModeContent: '',
debug: {
forceCache: false,
forceEmpty: false,
@@ -207,6 +213,8 @@ export function updateSettings(settings: AppSettings): void {
const defaultSettings: AppSettings = {
weekNavigationEnabled: false,
showAddGroupButton: true,
vacationModeEnabled: false,
vacationModeContent: '',
debug: {
forceCache: false,
forceEmpty: false,