Версия 1.6.3 — 2026-06-06
Управляемая озвучка при входе в систему + иконки для всех справочников.
Добавлено
Страница настроек «Озвучка входа»
Меню «Система» → «Озвучка входа» (доступна super-admin / Admin).
До этого фраза «Код отправлен в Мультифактор» при сабмите формы логина была захардкожена в public/assets/plugins.js. Теперь у админа есть страница с полным контролем:
Два режима воспроизведения:
-
Синтез речи (TTS) — браузерный
SpeechSynthesisUtterance. Настраивается:- текст фразы;
- скорость (0.5–2.0);
- высота голоса (0–2, по умолчанию 1) — пять кулёров, можно сделать бас или детский писк;
- громкость (0–1);
- язык (BCP-47, по умолчанию
ru-RU); - конкретный голос из системного списка (подтягивается на лету через
speechSynthesis.getVoices(), русские сверху).
-
Готовая запись (MP3-пресет) — список файлов из
public/voices/. Поддерживаются.mp3,.m4a,.wav,.ogg. Имя файла без расширения становится идентификатором, человеко-читаемое имя генерируется автоматически (golos-1.mp3→ «Голос 1»,female-warm.mp3→ «Женский Warm» и т.п. — для русских названий есть встроенный словарь: voice/golos/female/male/milena/yuri).
Кнопка «Послушать» на странице — играет текущие параметры без сохранения. Удобно подбирать высоту/скорость на слух перед сохранением.
Чекбокс «Озвучивать вход» — глобальный выключатель.
Хранение: JSON-файл storage/app/voice-login-settings.json. Без миграций.
Применение на логине: LoginPage инжектит резолвленные настройки как window.__voiceLoginSettings, public/assets/plugins.js читает оттуда — поддерживает оба режима, валидирует параметры, тихо игнорирует ошибки (браузер может блокировать TTS/audio до взаимодействия пользователя).
Иконки для справочников
В разделе меню «Справочники» подобраны Heroicons для каждого пункта:
- Подрядные организации —
users - Дезинфицирующие средства —
beaker - Типы уборок —
sparkles - Оборудование —
wrench-screwdriver - Вакцины —
shield-check
Раньше только у «Подрядных организаций» была иконка, остальные отображались без значка.
Технические детали
- Версия в
config/journals.php:1.6.2 → 1.6.3. - Новые файлы:
app/Services/VoiceLoginSettings.php— чтение/запись настроек + резолв пресетовapp/MoonShine/Pages/VoiceLoginSettingsPage.php— админ-страница с формойapp/Http/Controllers/VoiceLoginSettingsController.php— обработчик POST
- Новый маршрут:
POST /voice-login-settings→voice-login-settings.update. - Зарегистрирована страница в
MoonShineServiceProviderи в меню «Система». - Папка
public/voices/— пресеты MP3, 4 стартовых файла (golos-1.mp3…golos-4.mp3). public/assets/plugins.jsпереписан под чтение настроек изwindow.__voiceLoginSettingsс поддержкой обоих режимов.
Миграции
Не требуются.