133 lines
13 KiB
Markdown
133 lines
13 KiB
Markdown
# Карта: Файлы
|
||
|
||
Источники (метод 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/аудио/видео,
|
||
дерево поиска.
|