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

133 lines
13 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.
# Карта: Файлы
Источники (метод mail/078): **живой мобильный web** forbion (сессия Browser 1, аккаунт
`cloude`, iframe ~390px, read-only — mail/073/075/079) для внешнего вида/порядка +
**апстрим `nextcloud/server apps/files/src`** для состава кнопок/меню (сверено: `filters/`,
`actions/`) + тема `forbion-theme/.../_mobile-files.css` (селекторы элементов окна).
Приватность: реальные ФИО/почты сотрудников, права доступа и инвентарь бизнес-папок не
фиксируются — только структура UI и дерево переходов.
## Вход
Приложение «Файлы» — стартовое (нижняя панель / шторка приложений «Файлы»). URL `/apps/files/files`.
Оболочку (нижняя панель, шторка, бургер) описывает `shell.md` (зона лида) — здесь только
специфика приложения.
## Экран: Все файлы (главный / список папки)
**Шапка (сверху вниз):**
- Пилюля «Поиск» (Объединённый поиск) → экран поиска (см. ниже).
- Иконка-сетка справа → «Переключиться на режим просмотра сеткой» (тумблер список⇄сетка).
- Кнопка «Открыть навигацию [n]» → шторка навигации файлов (см. «Навигация файлов»).
- Кнопка «Новый» → меню создания/загрузки (см. «Меню Новый»).
- Хлебные крошки: 🏠 (корень) → сегменты пути; каждый сегмент кликабелен → переход к папке.
- Чипы-фильтры: «Тип файла», «Изменён», «Участники» (в корне — три; внутри папки «Участники»
пропадает, остаются «Тип файла»/«Изменён»).
**Тело:**
- Блок недавних/предложенных файлов (горизонтальная лента карточек: иконка типа + имя +
«Последнее обновление: …»); тап по карточке → открытие файла.
- Список папок/файлов (строки): чекбокс выделения · иконка типа (звёздочка = избранное) ·
имя · инлайн-кнопка «Скачать» (для файлов) · кнопка «Действия» (⋮).
- Тап по строке-папке → открыть папку (крошки наращиваются, URL `?dir=/Путь`).
- Тап по строке-файлу → открыть файл (по типу, см. «Открытие файла»).
- Чекбокс → режим выделения (см. «Режим выделения»).
- «Действия» (⋮) → контекстное меню файла/папки (см. ниже).
**Пустое состояние (папка без файлов):** иконка + «Здесь нет файлов» + подзаголовок
«Загрузите что-нибудь или синхронизируйте со своими устройствами!».
## Меню «Новый» (создание/загрузка)
Открывается кнопкой «Новый». Два раздела:
- **Загрузить с устройства:** «Загрузить файлы», «Загрузить папки».
- **Создать новое:** «Новая папка», «Запрос на создание файла», «Новая диаграмма»,
«Новая доска», «Новая презентация», «Новая таблица», «Новый документ»,
«Новый текстовый файл», «Создать папку шаблонов».
- (read-only: пункты только просмотрены, ничего не создавалось.)
## Навигация файлов (шторка «Открыть навигацию»)
Список представлений + дерево:
- «Все файлы», «Личные файлы», «Недавно изменённые», «Избранные»,
«Опубликованные ресурсы», «Командные папки», «Метки», «Внешнее хранилище»,
«Дерево папок», «Корзина».
- Внизу — индикатор квоты («Использовано N GB»).
- Каждый пункт → соответствующее представление списка файлов.
## Фильтры
- **«Тип файла»** → мультивыбор типов: Документы, Таблицы, Презентации, PDFs, Папки, Звук,
Изображения, Видео (`TypeFilter.ts`).
- **«Изменён»** → пресеты по дате (`ModifiedFilter.ts`): Сегодня, Последние 7 дней,
Последние 30 дней, В этом году, В прошлом году.
- **«Участники»** → фильтр по людям с доступом (даёт `files_sharing`, не ядро files) — чип есть
в корне «Все файлы», внутри папки пропадает.
## Контекстное меню (⋮) — Папка
«Добавить в избранное», «Подробно», «Варианты обмена», «Управление метками»,
«Переименовать», «Переместить или копировать», «Установить напоминание» ›,
«Открыть локально», «Скачать», «Архивировать в...» ›, «Удалить папку».
(Сверено с `apps/files/src/actions/`: favorite, sidebar=Подробно, moveOrCopy, rename,
editLocally=«Открыть локально», download, delete, openFolder; метки/обмен/напоминание/архив —
из соответствующих приложений тенанта.)
## Контекстное меню (⋮) — Файл
«Добавить/Удалить из избранных», «Подробно», строка-статус общего доступа (если расшарен),
«Управление метками», «Переименовать», «Переместить или копировать»,
«Установить напоминание» ›, «Сохранить как…» › (для офисных — форматы),
«Открыть локально», «Скачать», «Архивировать в...» ›, «Удалить файл».
## Режим выделения (bulk)
Отметка чекбокса → шапка списка меняется на: «Выбран N» (слева) + кнопка «Действия» (справа).
Меню «Действия» (групповое): «Добавить в избранное», «Управление метками»,
«Переместить или копировать», «Скачать», «Архивировать в...» ›, «Удалить папку/файлы».
## Экран: Подробно (панель сведений о файле)
Открывается пунктом «Подробно» в ⋮. Шапка: имя файла · × закрыть · владелец/аватар ·
«<дата изменения> / <размер>». Четыре вкладки-иконки:
- **Общий доступ** (людской значок): подсекции «Внутренние ссылки» (поле «Введите имена или
команды», список получателей с выпадающим правом «Можно редактировать/…», «Другие
пользователи, имеющие доступ», «Внутренняя ссылка / Для тех, у кого уже есть доступ» +
копировать), «Внешние ссылки» (поле e-mail, «Создать общедоступную ссылку» +),
«Дополнительные ссылки». Внизу — ряд быстрых иконок связанных приложений.
- **Версии** — история версий файла.
- **Чат** — комментарии к файлу.
- **События** — активность/лента событий по файлу.
- (read-only: панель только просмотрена; персональные данные получателей не фиксируются.)
## Открытие файла (по типу)
Тап по файлу открывает вьюер/редактор по типу (наблюдалось частично; часть — (?) по иконкам/
категориям типов):
- Офисные (Таблицы/Документы/Презентации) → редактор Collabora/Richdocuments в WebView.
- `.md` / текст → редактор текста/markdown.
- Изображения → просмотрщик изображений.
- `.whiteboard` / «доска» → редактор доски (WebView).
- PDF → просмотрщик PDF. *(точный переход для PDF/аудио/видео — (?), не открывал.)*
## Экран: Поиск
Пилюля «Поиск» → объединённый поиск (Nextcloud unified search) по файлам и приложениям.
*(детальное дерево поиска не раскрывал — (?).)*
## Расхождения с нативным клиентом (сверено по коду `feature/files`, 2026-07-12)
Сверка **состава/функций** по коду (не попиксельная — та ждёт сборки на устройстве, задача №1
mail/068). Итог: **4 подтверждённых расхождения, 1 снято.**
- ✅ снято — меню «Новый»: нативный `FilesCreateMenu.kt` содержит весь веб-список (загрузка +
10 пунктов «Создать новое») и даже больше («Добавить описание папки»). Соответствует.
- `расхождение:` **панель «Подробно» — 2 вкладки вместо 4.** `FileDetailsTab` (FilesModels.kt:67)
= {Sharing, Events}; в вебе 4 (Общий доступ / **Версии** / **Чат** / События). Нет вкладок
«Версии» и «Чат/комментарии».
- `расхождение:` **фильтры-чипы — заглушки.** `FilesFilterChips` рисует «Тип файла/Участники/
Изменен», но обработчики (FilesScreen.kt:224-226): «Тип файла»→сортировка по типу,
«Изменен»→сортировка по дате, «Участники»→пустой `{}`. В вебе это фильтры: Тип файла
(мультивыбор 8 типов), Изменён (5 пресетов дат), Участники (по людям). Функционал фильтрации
отсутствует.
- `расхождение:` **групповые действия — 3 из 6.** `FilesBulkAction` (FilesComponents.kt:1064)
= {Favorite, Download, Delete}, причём Download → `showWebOnlyMessage("Массовое скачивание")`
(заглушка). В вебе 6: Добавить в избранное, Управление метками, Переместить или копировать,
Скачать, Архивировать в…, Удалить. Нет меток/перемещения-копирования/архива; массовое
скачивание не реализовано.
- `расхождение:` **шэры — только публичная ссылка.** `createPublicShareLink` (FilesApiRepository.kt:174)
создаёт лишь `shareType=3`. `fetchShares` (:199) читает и отображает существующие шэры любого
типа, но СОЗДАНИЕ внутренних шэров (пользователь=0/группа=1) отсутствует. В вебе панель
«Внутренние ссылки» это умеет. = план п.3 mail/068.
Осталось (нужна сборка на устройстве, попиксельно): вёрстка по CSS-теме, переходы PDF/аудио/видео,
дерево поиска.