К содержанию
База знаний

Уведомления

Назначение

Раздел описывает, как система сообщает пользователю о событиях: успехах операций, ошибках, срочных запросах от коллег, изменениях статусов. Уведомления — это «нервная система» продукта: они связывают веб-интерфейс мастера и приложение OCULUS оператора в реальном времени, превращают разрозненные действия в общий рабочий процесс смены.

Кто работает с модулем

  • Мастер и администратор в веб-интерфейсе — получают всплывающие сообщения (тосты) о результате каждого действия (создал, обновил, удалил, ошибся), видят журнал аудита для истории.
  • Оператор в приложении OCULUS — получает push-уведомления о критичных событиях (запрос помощи, изменения статуса задания, завершение простоя) и локальные алерты при нахождении в приложении.
  • Помощники задания — получают уведомления при приглашении, подтверждении, отказе и освобождении от задания.

Типы уведомлений

ТипГде появляетсяКогда
Тост (всплывающее)Веб-интерфейс, нижний правый уголПосле каждого действия пользователя — успех, ошибка, предупреждение
Диалог подтвержденияВеб-интерфейс, центр экранаПеред деструктивными действиями (удаление, отмена)
Информационный баннерВеб-интерфейс, шапка страницыСостояние сети, обновления приложения
Push-уведомлениеНа устройство пользователя (даже когда приложение свёрнуто)Запрос помощи, освобождение помощника, завершение простоя
Локальное уведомление в OCULUSВнутри открытого приложенияЗавершение простоя, статус задания
Реалтайм-обновление экранаЛюбой интерфейсКогда другой пользователь меняет данные, которые видны текущему
Запись в журнале аудитаРаздел «Безопасность → Журнал аудита»После критичных операций для истории

Тосты в веб-интерфейсе

  • Цвет соответствует типу: зелёный — успех, красный — ошибка, оранжевый — предупреждение, синий — информация.
  • Иконка усиливает цветовое сообщение: галочка, восклицание, информация.
  • Позиция — нижний правый угол экрана, чтобы не перекрывать основной контент.
  • Стек — несколько тостов одновременно расставляются вертикально с зазором, более новые сверху.
  • Закрытие — автоматическое через несколько секунд или вручную крестиком.
  • Текст — короткое заглавие плюс опциональное пояснение помельче. Пример: «Задание создано» / «JOB-00231 добавлено в смену А».
  • Без действий — тост не предлагает кнопок. Если нужно подтверждение или отмена — открывается отдельный диалог.

Тосты не сохраняются между сессиями. Если пользователь упустил тост, его содержание не теряется только в части критичных операций — для них есть параллельный след в журнале аудита.

Push-уведомления в приложении OCULUS

Push приходит на устройство оператора независимо от того, открыто приложение или нет. Это сигнал на критичное событие, которое требует внимания «прямо сейчас».

Когда приходит push:

  • Запрос помощи. Главный исполнитель просит помощника подключиться к заданию.
  • Подтверждение или отказ. Помощник получает ответ на свой запрос участия.
  • Освобождение от задания. Завершилось задание, в котором участвовал помощник — он освободился для следующих задач.
  • Завершение простоя. Локальное уведомление оператору, что простой закрыт и можно продолжать работу.

Что в самом push:

Текст уведомления намеренно общий — «Новое уведомление. Откройте OCULUS для просмотра деталей». Это политика безопасности: персональные данные и конкретику задач не раскрывают на экране блокировки устройства, особенно если телефон на проходной увидит посторонний. Полная информация о событии подгружается, когда оператор открывает приложение.

Доставка:

  • При активном приложении — мгновенная синхронизация через постоянное соединение, экран обновляется без push.
  • При свёрнутом или закрытом приложении — push через системный канал устройства, со звуком и вибрацией по системным настройкам.
  • При отключённой связи — событие догонит при восстановлении сети.

События, генерирующие уведомления

  • Создание, обновление, удаление любой сущности в веб-интерфейсе. Тост-успех или тост-ошибка для текущего пользователя.
  • Запуск, пауза, завершение задания. Реалтайм-обновление экрана у мастера; для помощников — push при подтверждении и освобождении.
  • Запуск и завершение простоя. Реалтайм-обновление в карточке задания; локальное уведомление оператору при автоматическом завершении.
  • Запуск автоматического обращения от простоя (см. модуль 20). Заявка появляется у назначенного исполнителя без отдельного звонка.
  • Изменение состава смены, перенос задания, корректировка выработки. Реалтайм-обновление у пользователей, которые сейчас смотрят затронутые экраны.
  • Закрытие смены, расчёт зарплаты, классификация брака. Тосты-успехи в веб-интерфейсе у того, кто запустил.

Управление уведомлениями

  • Отключение категорий push в текущей версии не реализовано — пользователь получает все push, для которых существует подписка.
  • Глобальное отключение push возможно через стандартные настройки устройства (запретить уведомления приложению OCULUS на уровне операционной системы).
  • Подписка инициализируется автоматически при первом входе в приложение; пользователь даёт системное разрешение, и устройство регистрируется как получатель push.
  • «Мёртвая» подписка (пользователь сменил устройство, удалил приложение) автоматически очищается на стороне сервера при первой же неудачной доставке — push не накапливаются впустую.

История и журнал аудита

  • В веб-интерфейсе раздел «Безопасность → Журнал аудита» содержит хронологический список критичных событий: создание/изменение пользователей, перевод периодов зарплаты в «закрыт», подписки и отписки на push-уведомления, изменение шаблонов расчёта.
  • Журнал — для администратора и мастера: фильтры по дате, пользователю, типу действия, сущности.
  • Для каждой записи видны старое и новое значения — разбор спорных ситуаций становится прозрачным.
  • Записи журнала экспортируются в табличный файл.

Отдельной «ленты непрочитанных уведомлений» в продукте нет. Каждое уведомление по сути одноразовое: либо сразу обработано (push), либо имеет след в истории сущности (изменения видны в карточке), либо в журнале аудита (для критичных операций).

Микро-фичи и детали интерфейса

  • Тосты ставятся в нижнем правом углу — самой малозаметной зоне экрана. Это подсказка, не блокирующее окно.
  • Цвет иконки тоста дублирует цвет рамки — двойная сигнализация типа уведомления для пользователей с особенностями восприятия цвета.
  • Тост можно закрыть до автоисчезновения, нажав крестик. Несколько тостов закрываются по одному, самый новый сверху.
  • Push-уведомления намеренно используют обобщённую формулировку («Новое уведомление, откройте OCULUS») — критичная информация не остаётся на экране блокировки, где её могут увидеть посторонние.
  • Push не дублирует Socket-обновления, если приложение открыто, — на одно событие приходит только один сигнал.
  • Реалтайм-обновления экрана работают автоматически: если мастер в одной вкладке закрыл задание, а коллега в другой смотрит то же задание — у коллеги статус обновится без перезагрузки.
  • Системные настройки устройства имеют приоритет: если пользователь отключил уведомления для приложения OCULUS на уровне системы, push не будут приходить, и приложение не пытается «обходить» это ограничение.
  • Подписка на push автоматически очищается, если устройство потеряно или приложение удалено — сервер не накапливает «мёртвых» получателей.
  • Журнал аудита разделяет критичные финансовые операции (закрытие зарплатного периода, изменение ставок) и обычные действия — финансовые помечены отдельным маркером для удобства проверки.
  • Звук и вибрация push определяются системными настройками устройства — приложение OCULUS не «звенит громче», если общий звук отключён.
  • Подавление дубликатов на уровне push: одинаковые события не сыплются стопкой — приходит один сигнал на одно действие.
  • Аудит фиксирует подписку и отписку на push отдельным событием — администратор видит, кто и когда подключал свои устройства.

Связи с другими модулями

  • Задания (06). Запрос помощи, подтверждение, отказ, освобождение помощника — все эти события генерируют push в OCULUS. Завершение задания закрывает связку «исполнитель + помощники».
  • Простои (08). Завершение простоя приводит к локальному уведомлению оператору. Старт простоя автоматически создаёт обращение (см. ниже) с собственным потоком уведомлений.
  • Обращения (20). Каждое автоматическое обращение, рождённое из простоя, оповещает назначенного исполнителя — ремонтник видит заявку без звонка.
  • Зарплата (11). Перевод периода в «закрыт» и переоткрытие фиксируются в журнале аудита как финансовые операции.
  • Пользователи (03). Подписка устройства на push привязана к пользователю — при удалении пользователя подписка остаётся в архиве для аудита.
  • Аутентификация (01). Сброс пароля администратором аннулирует все активные сессии пользователя — при следующем действии он увидит просьбу войти заново.

Состояния и пограничные случаи

  • Нет связи на устройстве оператора. Push-уведомления догонят при восстановлении сети. Реалтайм-обновления возобновятся автоматически, без действия пользователя.
  • Push не доставлен. Сервер пытается отправить, при ошибке записывает в журнал, но не блокирует основное действие. Если устройство больше не отвечает — подписка очищается.
  • Пользователь отключил уведомления на уровне устройства. Приложение фиксирует это и не пытается обойти ограничение. Тосты внутри открытого приложения продолжают работать, потому что они не зависят от системных разрешений.
  • Несколько устройств у одного пользователя. Каждое устройство имеет свою подписку — push приходят на все одновременно. Пользователь сам решает, какое из них держать активным.
  • Удалённое приложение. Подписка остаётся в системе до первой неудачной доставки, после чего автоматически очищается.
  • Тост перекрылся другим тостом. Стек ставит более новый сверху; пользователь видит оба и закрывает по очереди.
  • Спам (теоретический случай). Подавление дубликатов работает на уровне событий: одна и та же операция не порождает двух одинаковых push.
  • Удалённый пользователь. Получит ли он push? Нет — его сессии аннулированы, и устройства не получают новых сигналов.

Операторский интерфейс OCULUS

  • Push в OCULUS — основной канал связи мастера с оператором между сменами и при критичных событиях.
  • При активном приложении приоритет получают реалтайм-обновления через постоянное соединение: экран меняется сам, без видимых уведомлений.
  • При свёрнутом приложении или закрытом устройстве push приходит на системный уровень с обобщённым текстом — детали оператор увидит после открытия.
  • Локальные уведомления внутри приложения сообщают о собственных событиях оператора (его простой завершён, его задание изменилось) — это короткие подсказки, не блокирующие действия.
  • Звук, вибрация и поведение на экране блокировки задаются системными настройками устройства — оператор сам контролирует громкость и тишину.
  • Нет «отдельного экрана уведомлений» внутри OCULUS — приложение спроектировано вокруг текущей задачи. История событий оператора видна в его профиле и в карточках связанных заданий и обращений.

На этой странице