Перейти к содержанию

Модуль «Активности» (4 экрана)


/p/:pid/activities — Activities List

Назначение: Табличный вид всех активностей проекта. Доступ: Member+.

Компоновка:
  ├── Header + Sidebar (пункт «Активности (3)» — счётчик просроченных)
  └── Main:
      ├── Заголовок: «Активности» | Toggle: [Список●] [Календарь] | [+ Активность] → Drawer
      ├── Панель фильтров:
      │   ├── 🔍 Поиск по названию
      │   ├── Тип: ☑ Задача ☑ Звонок ☑ Встреча ☑ Заметка
      │   ├── Статус: Запланирована / В работе / Завершена / Отменена
      │   ├── Просроченные: ☐ Только просроченные
      │   ├── Ответственный (multi-select)
      │   ├── Срок (date range)
      │   └── Привязка: Сделка / Контакт / Компания (поиск)
      │
      └── Таблица:
          | ☐ | Тип | Название ▼              | Срок       | Приоритет | Статус     | Ответст. | Привязка         |
          | ☐ | 📞  | Звонок: Банк Ромашка    | сегодня    | Средний   | Заплан.    | Петрова  | Сделка #42       |
          | ☐ | 📋  | Подготовить КП          | вчера ⚠    | Высокий   | В работе   | Козлов   | Сделка #38       |

          Просроченные: строка подсвечена красным, дата с ⚠.
          Пагинация: стандартная.

Empty state: «Нет активностей.» [+ Создать задачу]

Drawer «Создание активности»

  ├── Заголовок: «Новая активность»
  ├── Тип: ○ Задача ○ Звонок ○ Встреча ○ Заметка (toggle, по умолчанию — Задача)
  ├── Общие поля:
  │   ├── Название* (input)
  │   ├── Ответственный* (dropdown — участники проекта, по умолчанию — я)
  │   └── Привязка (dropdown: сделка / контакт / компания / продажа, опционально)
  │
  ├── Если Задача:
  │   ├── Описание (textarea)
  │   ├── Срок* (date picker)
  │   ├── Приоритет: Низкий / Средний● / Высокий / Срочный
  │   └── Напоминание: ○ Нет ○ За 15 мин ○ За 1 час ◉ За 1 день
  │
  ├── Если Звонок:
  │   ├── Направление: ○ Входящий ◉ Исходящий
  │   ├── Дата и время (datetime picker)
  │   └── Напоминание
  │
  ├── Если Встреча:
  │   ├── Дата начала (datetime picker)
  │   ├── Дата окончания (datetime picker)
  │   ├── Место / ссылка (input)
  │   ├── Участники (multi-select из участников проекта)
  │   └── Напоминание
  │
  ├── Если Заметка:
  │   └── Текст* (textarea)
  │
  └── Кнопки: [Создать] [Отмена]

/p/:pid/activities/calendar — Calendar View

Назначение: Календарный вид активностей. Доступ: Member+.

Компоновка:
  ├── Header + Sidebar
  └── Main:
      ├── Заголовок: «Активности» | Toggle: [Список] [Календарь●]
      ├── Навигация: [← Пред.] Февраль 2026 [След. →] | [День] [Неделя●] [Месяц]
      ├── Фильтры: Тип ▼ | Мой / Все ▼
      │
      └── Календарная сетка:

          Неделя (по умолчанию):
          ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┐
          │ Пн 16  │ Вт 17  │ Ср 18  │ Чт 19● │ Пт 20  │ Сб 21  │ Вс 22  │
          ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤
          │ 09:00  │        │        │        │        │        │        │
          │ 📞 Зво │        │ ━━━━━━━│━ Встреча с Альфа ━━│        │        │
          │ нок    │        │ 10:00  │        │        │        │        │
          │        │        │  -12:00│        │        │        │        │
          │        │        │        │        │        │        │        │
          │ 15:00  │        │        │        │        │        │        │
          │ 📋 КП  │        │        │ 14:00  │        │        │        │
          │        │        │        │ 📞 Банк│        │        │        │
          └────────┴────────┴────────┴────────┴────────┴────────┴────────┘

          Задачи без времени: отображаются в верхней строке дня (all-day).
          Клик на событие → popup с деталями + ссылка на карточку.
          Клик на пустую ячейку → Drawer создания с предзаполненной датой/временем.

/p/:pid/activities/:id — Activity Details

Назначение: Карточка активности. Доступ: Member+ (по политике).

Компоновка:
  ├── Header + Sidebar
  └── Main:
      ├── Шапка:
      │   ├── Иконка типа + «Задача: Подготовить КП»
      │   ├── Статус: [В работе ▼] (dropdown для смены)
      │   ├── Приоритет: 🔴 Высокий
      │   ├── Срок: 18 февраля 2026 (⚠ Просрочена — красный)
      │   ├── Ответственный: Козлов
      │   └── Действия: [Редактировать] [Завершить ✓] [Удалить]
      │
      ├── Описание:
      │   Текст задачи (markdown или plain text).
      │
      ├── Привязки:
      │   ├── Сделка: «Альфа — ЗП проект» (ссылка)
      │   ├── Контакт: Иванов И.И. (ссылка)
      │   └── [+ Добавить привязку]
      │
      ├── Для звонка/встречи дополнительно:
      │   ├── Результат: textarea (заполняется после звонка/встречи)
      │   ├── Длительность: 25 мин (для звонка)
      │   └── Участники: Петрова, Козлов (для встречи)
      │
      └── История: лог изменений

/p/:pid/activities/:id/edit — Edit Activity

Назначение: Редактирование активности. Доступ: Member+ (по политике: свои, расшаренные).

Компоновка: форма с полями в зависимости от типа (аналогично Drawer, но расширенная).
Дополнительно:
  ├── Результат (textarea — для звонков/встреч)
  ├── Смена статуса
  └── Смена типа: запрещено (тип фиксируется при создании)