Files
f7cloud_mobile/docs/app-map/contacts.md
T

144 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Карта: Контакты (forbion, мобильная веб-версия)
Снято 2026-07-12 наблюдением мобильной вёрстки forbion (вьюпорт 390px, аккаунт `cloude`,
строго read-only по mail/073). Пишущие элементы («Создать контакт», «Импорт», «+» у групп/команд,
«Сохранить», «Удалить», «⋯» адресных книг) НЕ нажимались — их наличие и подписи сняты с экрана/DOM.
## Вход
Нижняя панель шелла → кнопка навигации (стрелка `<`, подпись раздела «Контакты») открывает
шторку приложения; либо прямой URL `/apps/contacts/`. Приложение открывается сразу списком
«Все контакты» (первый контакт автовыбран на широком экране; в мобильной вёрстке — только список).
Нижняя панель шелла (общая, зона лида, для ориентира): `<`/`>` — открыть/закрыть шторку
навигации приложения · конверт → Почта · «карточки» → Задачи · камера → Конференции ·
`≡` → шторка приложений. Панель плавающая поверх контента.
## Экран: Список контактов («Все контакты»)
**Шапка:** только поле поиска (pill на всю ширину). Заголовка экрана и кнопки «создать» в шапке НЕТ
(создание — в шторке навигации).
**Тело:** плоский список: аватар (фото или инициалы на цветном круге) + имя (16, тёмный) +
email (второй строкой, серый). Разделители-линии. Сортировка — по отображаемому имени
(настраивается в «Параметрах контактов»).
**Действия:**
- Ввод в поиск → фильтрация списка на лету (имя/email); справа в поле появляется `×` — очистить.
- Тап по контакту → «Экран: Карточка контакта».
- Тап `<` на нижней панели → «Экран: Шторка навигации».
## Экран: Шторка навигации (drawer слева, поверх списка)
**Верх:**
- «Создать контакт» (зелёная, слева иконка) + отдельный сегмент `+` справа — (не нажималось,
read-only; по аналогии с десктопом `+` = быстрое создание).
- В контексте команды над ней появляется вторая зелёная кнопка «Импорт контактов» + `+`.
**Пункты:**
- «Все контакты» [бейдж: 105] → список всех.
- «Организационная структура» → «Экран: Организационная структура».
- «Без группы» [105] → список контактов без групп (у `cloude` все 105 без групп).
- Секция «Группы контакта» [`+`] — пусто (групп нет); `+` = создать группу (не нажималось).
- Секция «Команды» [`+`]: «Тест», «admin», «all», «Администраторы поддержки», «Маркетинг»,
«Показать все команды». У активной команды справа `⋯` (меню; не раскрывалось).
Тап по команде → «Экран: Команда».
- Кнопка «Параметры контактов» (внизу шторки) → «Экран: Параметры контактов».
**Закрытие:** тап по контенту правее шторки (или `>` на нижней панели — кнопка-стрелка меняет
направление). NB: кнопка панели при открытой шторке имеет aria «Закрыть навигацию».
## Экран: Карточка контакта (просмотр)
**Шапка:** `←` (назад к списку) слева сверху.
**Тело (по центру):** большой аватар; имя крупно; подпись — должность/организация
(например «ооо--форбион», «Ген.дир»); ряд круглых кнопок-действий; секции полей.
**Кнопки-действия (круглые, состав зависит от контакта):**
- видеокамера → звонок/беседа Talk с пользователем (у системных контактов-пользователей),
- силуэт → профиль пользователя на сервере,
- конверт → написать письмо.
У обычного (не системного) контакта была только кнопка-конверт.
**Секции полей (просмотр; показываются только заполненные):**
- «Эл. почта» (значение в рамке-поле),
- «Социальная сеть» (ссылка на профиль `…/index.php/u/<user>`),
- «Подробное имя» (Имя, Фамилия отдельными строками),
- «ID в объединении облачных хранилищ» (federated cloud ID `user@forbion.f7cloud.ru`),
- «Адрес» (подтип, напр. «Город»),
- «Личные даты» (день рождения),
- «Адресная книга» (какой книге принадлежит: «Учётные записи» / «Контакты»).
**Действия:**
- «✏️ Править» (рядом с именем; ЕСТЬ только у контактов из редактируемых книг, у системных
из «Учётных записей» отсутствует) → «Экран: Правка контакта».
- `⋯` (справа от имени) → меню:
- системный контакт («Учётные записи»): «Скачать», «Копировать контакт», «Создать QR-код»;
- обычный контакт: те же + «Исключить контакт из календаря Дней Рождений», «Удалить»
(не нажималось).
## Экран: Правка контакта (после «Править»)
Заголовок вверху — «Создание нового контакта» (похоже, баг вебки: открыт существующий контакт,
все данные на месте).
**Тело (форма):**
- Большой аватар + зелёная кнопка «Добавить фото»;
- Поле имени; два поля должности (placeholder «Должност…» + значение, напр. «Ген.дир»);
- Кнопки: «✓ Сохранить…», `⋯`;
- «Телефон»: строка типа (дропдаун «Домашний» с `×` и ``) + поле значения;
- «Эл. почта»: тип + значение (та же пара);
- «Адрес»: подтип «Город» + поле;
- «Личные даты»: поле с датой (дата-пикер);
- «О себе»: многострочное поле;
- «Часовой пояс»: дропдаун;
- «Группы контакта»: дропдаун «Добавить контакт в гру…».
**Выход:** `←` — назад без сохранения (проверено, изменений не делалось).
## Экран: Организационная структура
**Шапка:** «График:» + селектор.
**Тело:** вертикальное дерево-граф: карточки сотрудников (аватар-инициал, имя зелёным,
счётчики «Управляет: N» / «Наблюдает: N»), связи линиями, узлы сворачиваются бейджем `^N`
на ребре. Пример: admin → g.kuts@proorder.ru.
## Экран: Команда (например «Тест»)
**Тело:**
- Аватар-инициал команды, название, «Владелец» + чип с аватаром (`you`);
- Кнопки: «✏️ Править» (зелёная), «Копировать ссылку»;
- Секция «Создавать»: кнопки-пилюли «Папка», «Конференции», «Календарь» — создание общих
ресурсов команды (не нажималось);
- Секция «Члены»: «Добавить» (не нажималось) + список участников (аватар, имя, роль «Владелец»).
- «Показать все команды» в шторке ведёт на список команд (у `cloude` контент совпал с экраном
команды — все команды и так в шторке).
## Экран: Параметры контактов (модальный шит, `×` для закрытия)
- Секция «Общие»: «Сортировать контракты по» — дропдаун: Имя / Фамилия /
Имя (фонетическое написание) / Фамилия (фонетическое написание) / Отображаемое имя (текущее) /
Последнее изменение;
- Кнопка «Импорт контактов» (не нажималось);
- Секция «Адресные книги», у каждой `⋯` (не раскрывалось):
- «Контакты» — 1 контакт, 0 групп;
- «Недавние контакты» — 0 контактов, 0 групп;
- «Учётные записи» — «Системная адресная книга, в которой хранятся все учетные записи»,
104 контакта, 0 групп;
- Кнопка «Новая адресная книга» (не нажималось).
## Пустые состояния / ошибки
- Поиск без совпадений: список пустеет (отдельной заглушки на 390px не замечено).
- Секция «Группы контакта» без групп — просто пустая (без заглушки).
- Состояния ошибок сети не воспроизводились (read-only, боевой сервер).
## Расхождения с нативным клиентом (бэклог b-mob-contacts)
- расхождение: **редактирование/удаление контакта** — в вебе «Править» (полная форма: фото, имя,
должность, телефон/почта С ТИПАМИ, адрес, даты, о себе, часовой пояс, группы) и «Удалить» в `⋯`;
в нативе ничего этого нет (план mail/072 п.1).
- расхождение: **типы полей** (Домашний/…) у телефона/почты — натив не парсит TYPE.
- расхождение: **группы контакта** (секция в шторке, поле в форме) — в нативе нет (план п.2).
- расхождение: **шторка навигации** (Все контакты/Орг.структура/Без группы/Группы/Команды/
Параметры) — в нативе только плоский список с поиском.
- расхождение: **организационная структура** (граф) — в нативе нет.
- расхождение: **команды** (экран команды, создание ресурсов, члены) — в нативе нет.
- расхождение: **параметры** (сортировка, импорт, управление адресными книгами, новая книга) —
в нативе нет; создание пишет в первую книгу без выбора.
- расхождение: **карточка**: соц.сеть, federated cloud ID, «Исключить из календаря ДР», QR-код,
«Скачать», «Копировать контакт» — в нативе нет; зато в нативе есть прямые «Email»/«Позвонить»
(системные интенты) — в вебе звонок идёт через Talk-кнопку у системных контактов.
- расхождение: **меню `⋯` карточки различается по книге** (системная без «Удалить») — нативу
при реализации правки учесть read-only книги.
- наблюдение: заголовок формы правки в вебе — «Создание нового контакта» (баг вебки, в нативе
не повторять).
## Примечания к методике
Снималось через same-origin iframe 390px внутри Chrome (окно 2560px нельзя ужать) — media queries
отрабатывают по ширине iframe, тема отдаёт мобильную вёрстку (`header__mobile`,
`header__mobile-bottom`, `app-content-wrapper--no-split`). Артефакт: плавающая нижняя панель в
iframe не отрисовывается (visibility:hidden не снимается темой), состав панели снят из DOM;
на реальном телефоне панель видна.