chore(openspec): архивировать add-orphaned-preview-handling и синхронизировать спеки
Новое требование в phone-album-sync о потере/возврате серверной копии у разгруженного превью, требование в android-client о метке потерянного элемента и действии удаления с устройства.
This commit is contained in:
@@ -127,6 +127,11 @@ Android-клиент для self-hosted galo: настройка подключ
|
||||
- **WHEN** оригинал элемента разгружен на сервер в режиме переноса
|
||||
- **THEN** в сетке на элементе показывается значок облака
|
||||
|
||||
#### Scenario: Метка потерянного элемента
|
||||
|
||||
- **WHEN** серверной копии разгруженного элемента больше нет в целевом альбоме
|
||||
- **THEN** в сетке на элементе показывается перечёркнутый значок облака
|
||||
|
||||
### Requirement: Доступ к альбомам устройства
|
||||
|
||||
Приложение SHALL запрашивать доступ к медиа устройства, нужный для перечисления
|
||||
@@ -698,3 +703,13 @@ SHALL показывать значками расположение содер
|
||||
#### Scenario: Сохранение выбора
|
||||
- **WHEN** пользователь перезапускает приложение
|
||||
- **THEN** список открывается с сохранёнными вариантом и направлением
|
||||
|
||||
### Requirement: Действия потерявшего серверную копию превью
|
||||
|
||||
Шит потерявшего серверную копию элемента SHALL предлагать действие «Удалить с
|
||||
устройства» и SHALL NOT показывать серверные атрибуты и действия.
|
||||
|
||||
#### Scenario: Только удаление с устройства
|
||||
|
||||
- **WHEN** пользователь открывает атрибуты потерявшего серверную копию элемента
|
||||
- **THEN** доступно действие «Удалить с устройства», а серверные действия отсутствуют
|
||||
|
||||
@@ -240,3 +240,66 @@ API, а изменение содержимого SHALL трактовать к
|
||||
|
||||
- **WHEN** пользователь открывает элемент, чей оригинал разгружен на сервер
|
||||
- **THEN** приложение подгружает оригинал с сервера для полноэкранного просмотра
|
||||
|
||||
### Requirement: Обнаружение потери серверной копии превью
|
||||
|
||||
При проверке синхронизации приложение SHALL сопоставлять серверное фото каждого
|
||||
разгруженного превью с фото целевого альбома и при его отсутствии SHALL помечать
|
||||
элемент как потерявший серверную копию, сохраняя превью и провенанс.
|
||||
|
||||
#### Scenario: Копии больше нет
|
||||
|
||||
- **WHEN** серверное фото разгруженного превью отсутствует в целевом альбоме
|
||||
- **THEN** приложение помечает элемент как потерявший серверную копию
|
||||
|
||||
#### Scenario: Превью не трогается
|
||||
|
||||
- **WHEN** элемент помечен как потерявший серверную копию
|
||||
- **THEN** превью-файл на устройстве сохраняется и не загружается повторно как оригинал
|
||||
|
||||
### Requirement: Восстановление связи при возврате серверного фото
|
||||
|
||||
При проверке синхронизации приложение SHALL снимать пометку с элемента, если его
|
||||
серверное фото снова присутствует в целевом альбоме.
|
||||
|
||||
#### Scenario: Фото вернулось на сервер
|
||||
|
||||
- **WHEN** серверное фото помеченного элемента снова присутствует в целевом альбоме
|
||||
- **THEN** элемент возвращается к обычному разгруженному состоянию с серверной копией
|
||||
|
||||
### Requirement: Удаление потерянного превью с устройства
|
||||
|
||||
Приложение SHALL позволять удалить потерявшее серверную копию превью с устройства;
|
||||
удаление SHALL удалять превью-файл и запись локального индекса и SHALL NOT
|
||||
обращаться к серверу, поскольку копии там уже нет.
|
||||
|
||||
#### Scenario: Удаление с устройства
|
||||
|
||||
- **WHEN** пользователь удаляет потерявшее серверную копию превью с устройства
|
||||
- **THEN** превью-файл и запись локального индекса удаляются, а сервер не затрагивается
|
||||
|
||||
#### Scenario: Согласие системы
|
||||
|
||||
- **WHEN** превью-файл не принадлежит приложению
|
||||
- **THEN** удаление выполняется после системного согласия на удаление
|
||||
|
||||
### Requirement: Повторная заливка вернувшегося оригинала
|
||||
|
||||
Если содержимое с исходной контрольной суммой потерявшего копию элемента снова
|
||||
присутствует на устройстве, приложение SHALL загрузить его на сервер как новую
|
||||
загрузку этого элемента.
|
||||
|
||||
#### Scenario: Вернулся в тот же альбом
|
||||
|
||||
- **WHEN** оригинал с исходной контрольной суммой снова появился в альбоме устройства
|
||||
- **THEN** приложение загружает его в целевой серверный альбом
|
||||
|
||||
#### Scenario: Вернулся в другой альбом
|
||||
|
||||
- **WHEN** содержимое с исходной контрольной суммой присутствует в другом альбоме устройства
|
||||
- **THEN** приложение загружает его в целевой серверный альбом
|
||||
|
||||
#### Scenario: Режим переноса
|
||||
|
||||
- **WHEN** загрузка вернувшегося оригинала завершена в режиме переноса
|
||||
- **THEN** элемент снова проходит обычную разгрузку в превью
|
||||
|
||||
Reference in New Issue
Block a user