1. Отсутствует соединение с сервером и при этом открывается приложение.
Приложение сразу загружается в автономном режиме, авторизация происходит по сохраненным на устройстве данным (из менеджера аккаунтов).
2. Приложение открыто и работает в режиме онлайн, соединение с сервером пропало.
После обрыва соединения с сервером (обрыв соединения / отказ сервера) выполнение любого следующего действия (обновление списка, открытие дочерних элементов / навигатора / информации о работе либо документе / вызов меню / нажатие на любую кнопку) приводит к тому, что приложение должно переключиться в автономный режим и должны загрузиться данные синхронизации. При этом на 10 секунд под верхней панелью любого экрана (за исключением экрана авторизации) на всю ширину экрана должна отобразиться полоска с иконкой ![](resources/img/offline/icon_offline.png) и сообщением: `Включен автономный режим` ![Сообщение о переходе в автономный режим](resources/img/offline/offline_message.png) ![Сообщение о переходе в автономный режим](resources/img/offline/offline_message_ios.png)
3. Приложение открыто и работает в режиме оффлайн, установилось соединение с сервером.
Аналогично предыдущему пункту: после установления соединения с сервером выполнение любого следующего действия (обновление списка, открытие дочерних элементов / навигатора / информации о работе либо документе / вызов меню / нажатие на любую кнопку) приводит к тому, что приложение должно переключиться в режим онлайн и должны сначала отправиться измененные в автономном режиме данные на сервер, затем загрузиться актуальные данные с сервера. При этом на 10 секунд под верхней панелью любого экрана (за исключением экрана авторизации) на всю ширину экрана должна отобразиться полоска с иконкой ![](resources/img/offline/icon_online.png) и сообщением: `Связь восстановлена` ![Сообщение о переходе в режим онлайн](resources/img/offline/online_message.png) ![Сообщение о переходе в режим онлайн](resources/img/offline/online_message_ios.png)
Примечание
Размер, шрифт и цвет текста для оффлайна - 7pt, HelveticaNeueCyr Light, #e7eafa.
Размер, шрифт и цвет текста для онлайна - 7pt, HelveticaNeueCyr Light, #8fdd94.
Цвет фона сообщения - #05091f с прозрачностью 50 %, высота - 42px.
Цвет линии после фона - #121927, размер - 1px.
Работа приложения в автономном режиме подразумевает:
В модуле «Работы»:
отображение и выбор любого из фильтров навигатора модуля;
отображение списка работ согласно выбранного фильтра;
отображение информации о работе;
отображение всех комментариев любой из трех категорий, возможность добавления / изменения / удаления комментариев;
отображение списка и, опционально, содержимого всех вложений к работе, возможность добавления / удаления вложений;
изменение прогресса работы;
завершение работы (в т.ч. с формой завершения).
В модуле «Документы»:
отображение и выбор любого из фильтров навигатора модуля;
отображение списка документов согласно выбранного фильтра (как в неполном виде, так и в полном);
отображение информации о документе, в т.ч. о работах по документу;
отображение всех комментариев любой из трех категорий, возможность добавления / изменения / удаления комментариев;
отображение списка и, опционально, содержимого всех вложений к документу, возможность добавления / удаления вложений;
изменение прогресса работы по документу;
завершение работы по документу (в т.ч. с формой завершения).
В модуле «Файлы»:
отображение и выбор любой ноды дерева хранилища;
отображение списка (но не содержимого) файлов выбранной папки;
добавление файла в хранилище;
создание папки хранилища;
переименование элемента хранилища;
перемещение элемента хранилища;
удаление элемента хранилища.
По нажатию на незагруженные при синхронизации файлы хранилища / вложения работы или документа ничего происходить не должно (ни скачивания, ни ошибок).
При этом по нажатию на файлы и вложения, загруженные в режиме оффлайн, должно происходить их открытие.
Аналогично для всех прочих неописанных кнопок и пунктов меню: по их нажатию ничего происходить не должно (ни выполнение действия, ни ошибок).
Выполнение любого из пунктов, в результате действия которого должно изменяться состояние соответствующего объекта, должно изменять эти атрибуты и в автономном режиме также, как это происходит в режиме онлайн.
Например, изменение прогресса работы в экране информации о работе должно изменить прогресс и на плашке соответствующей работы.
Исходное поведение здесь.
В режиме оффлайн ползунок прогресса работы, при его наличии, доступен для редактирования. Необходимо фиксировать время последнего изменения прогресса на устройстве. Применение измененного в оффлайне значения прогресса должно происходить по следующему алгоритму.
Если на стороне сервера данная работа уже завершена (хоть статусом, хоть прогрессом), то действие не выполнять. В журнал синхронизации при этом должна произойти запись в формате:
условно успешная синхронизация:
Изменение прогресса работы "название_работы" не синхронизировано: Действие не может быть выполнено, так как процесс завершен
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Изменение прогресса работы "название_работы": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Если на стороне сервера данная работа не завершена, то:
необходимо фиксировать время применения действия на сервере;
значение измененного прогресса должно примениться, даже если значение прогресса на сервере не совпадает с исходным значением прогресса в оффлайне;
в качестве времени изменения прогресса считать время применения действия на сервере;
в журнал синхронизации при применении должна произойти запись в формате:
успешная синхронизация:
Изменение прогресса работы "название_работы" синхронизировано, новое значение - NN%
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Изменение прогресса работы "название_работы": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Исходное поведение здесь и здесь.
В режиме оффлайн доступны, при наличии, кнопки «Завершить» (идентификаторы операции PROGRESS, POINT_RESULT, RESOLUTION_ACTION), «Ответить» (идентификатор операции PROCESS), «Результат» (идентификатор действия RESULT) и ползунок прогресса работы для выставления 100%. Необходимо фиксировать время завершения на устройстве. Применение статуса завершенности работы должно происходить по следующему алгоритму.
Для работ без формы завершения: если на стороне сервера данная работа была завершена (хоть статусом, хоть прогрессом), то действие не выполнять. В журнал синхронизации при этом должна произойти запись в формате:
условно успешная синхронизация:
Завершение работы "название_работы" не синхронизировано: Действие не может быть выполнено, так как процесс завершен
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Завершение работы "название_работы": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Для работ с формой завершения «файл»: если на стороне сервера данная работа была завершена (хоть статусом, хоть прогрессом), то действие выполнять частично: этот файл или форму необходимо добавить в «Прочие». В журнал синхронизации при этом должна произойти запись в формате:
условно успешная синхронизация:
Завершение работы "название_работы" не синхронизировано: Действие не может быть выполнено, так как процесс завершен (в "Прочие" добавлен файл формы завершения)
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Завершение работы "название_работы": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Замечание
Файл в «Прочие» должен добавляться в любом случае. Если файл с таким же названием существует в «Приложениях», то он должен просто добавиться в «Прочие». Если же в «Прочих» существует файл с таким названием, то он все равно должен добавиться как отдельный файл с обновленным названием «исходное-имя-файла_ГГГГ-ММ-ДД ЧЧ_ММ.расширение».
Для работ с формой завершения «комментарий»: если на стороне сервера данная работа была завершена (хоть статусом, хоть прогрессом), то действие выполнять частично: этот комментарий необходимо добавить к работе как «обычный» комментарий. В журнал синхронизации при этом должна произойти запись в формате:
условно успешная синхронизация:
Завершение работы "название_работы" не синхронизировано: Действие не может быть выполнено, так как процесс завершен (комментарий добавлен к работе как обычный)
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Завершение работы "название_работы": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Для работ без формы завершения: если на стороне сервера данная работа была удалена, то действие не выполнять. В журнал синхронизации при этом должна произойти запись в формате:
условно успешная синхронизация:
Завершение работы "название_работы" не синхронизировано: Действие не может быть выполнено, так как процесс завершен
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Завершение работы "название_работы": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Для работ с формой завершения «файл»: если на стороне сервера данная работа была удалена, то действие выполнять частично: этот файл или форму необходимо добавить в «Прочие». В журнал синхронизации при этом должна произойти запись в формате:
условно успешная синхронизация:
Завершение работы "название_работы" не синхронизировано: Действие не может быть выполнено, так как процесс завершен (в "Прочие" добавлен файл формы завершения)
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Завершение работы "название_работы": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Замечание
Файл в «Прочие» должен добавляться в любом случае. Если файл с таким же названием существует в «Приложениях», то он должен просто добавиться в «Прочие». Если же в «Прочих» существует файл с таким названием, то он все равно должен добавиться как отдельный файл с обновленным названием «исходное-имя-файла_ГГГГ-ММ-ДД ЧЧ_ММ.расширение».
Для работ с формой завершения «комментарий»: если на стороне сервера данная работа была удалена, то действие не выполнять. В журнал синхронизации при этом должна произойти запись в формате:
условно успешная синхронизация:
Завершение работы "название_работы" не синхронизировано: Действие не может быть выполнено, так как процесс завершен (комментарий не добавлен к работе)
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Завершение работы "название_работы": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Работы с формой завершения «форма» в режиме оффлайн завершить никак нельзя, т.к. содержимое файлов по форме никогда не синхронизируется.
Для всех остальных случаев:
необходимо фиксировать время применения действия на сервере;
должен примениться статус завершенности со всеми сопутствующими параметрами завершения:
идентификаторы операции PROGRESS / RESOLUTION_ACTION: результат операции (завершено);
идентификаторы операции POINT_RESULT: форма завершения комментарий, файл (в т.ч. выбранный из работы, добавленный с устройства или с камеры);
Примечание: в список завершения работы «Из работы» (для формы завершения - файла) попадают как синхронизированные данные, так и файлы, добавленные в режиме оффлайна (пункт «Перепорученные» при этом недоступен, нельзя выбрать результат перепорученных работ).
идентификаторы операции PROCESS: добавлены ли подпись и комментарий и результат операции (ознакомился, согласен/не согласен, утвердил/не утвердил);
идентификатор действия RESULT: результат действия подтверждено или отклонено (включая измененные сроки и прогресс, комментарий-причина);
в качестве времени изменения прогресса считать время применения действия на сервере;
в журнал синхронизации при применении должна произойти запись в формате:
успешная синхронизация:
Завершение работы "название_работы" синхронизировано
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Завершение работы "название_работы": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Исходное поведение здесь.
В режиме оффлайн доступен пункт меню «Комментарий» для добавления нового комментария как на экране информации о работе, так и на экране всех комментариев. Необходимо фиксировать время добавления нового комментария на устройстве и использовать его в качестве отображаемого времени на плашке комментария в формате «ДД месяца ЧЧ:ММ». Добавление на сервер должно происходить по следующему алгоритму.
Если комментарий добавляется к удаленной работе, то действие не выполнять. В журнал синхронизации при этом должна произойти запись в формате:
условно успешная синхронизация:
Новый комментарий "текст_комментария" к работе "название_работы" не добавлен: Вы не можете создавать комментарии для удаленной работы
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Новый комментарий "текст_комментария" к работе "название_работы": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Если комментарий добавляется не к удаленной работе, то действие выполнять:
необходимо фиксировать время добавления на сервере;
в качестве времени добавления комментария считать время применения действия на сервере;
в журнал синхронизации при применении должна произойти запись в формате:
успешная синхронизация:
Новый комментарий "текст_комментария" к работе "название_работы" добавлен
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Новый комментарий "текст_комментария" к работе "название_работы": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Исходное поведение здесь.
В режиме оффлайн доступен пункт меню «Изменить» комментария, при его наличии, как на экране информации о работе, так и на экране всех комментариев. Необходимо фиксировать время изменения комментария на устройстве и использовать его в качестве отображаемого времени последнего изменения на плашке комментария в формате «ДД месяца ЧЧ:ММ». Применение изменений на сервер должно происходить по следующему алгоритму.
Если на стороне сервера данный комментарий был удален, то действие не выполнять. В журнал синхронизации при этом должна произойти запись в формате:
условно успешная синхронизация:
Изменение комментария "текст_комментария" к работе "название_работы" не синхронизировано: Комментарий невозможно изменить, так как он удален
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Изменение комментария "текст_комментария" к работе "название_работы": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Если на стороне сервера комментарий не был удален, то:
необходимо фиксировать время применения действия на сервере;
измененный комментарий должен примениться, даже если комментарий на сервере не совпадает с исходным комментарием в оффлайне;
в качестве времени изменения комментария считать время применения действия на сервере;
в журнал синхронизации при применении должна произойти запись в формате:
успешная синхронизация:
Изменение комментария к работе "название_работы" синхронизировано, новое значение: "текст_комментария"
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Изменение комментария "текст_комментария" к работе "название_работы": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Исходное поведение здесь.
В режиме оффлайн доступен пункт меню «Удалить» комментария, при его наличии, как на экране информации о работе, так и на экране всех комментариев. Необходимо фиксировать время удаления комментария на устройстве. Удаление с сервера должно происходить по следующему алгоритму.
Если на стороне сервера данный комментарий был удален, то действие не выполнять. В журнал синхронизации при этом должна произойти запись в формате:
условно успешная синхронизация:
Удаление комментария "текст_комментария" к работе "название_работы" не синхронизировано: Комментарий невозможно удалить, так как он уже удален
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Удаление комментария "текст_комментария" к работе "название_работы": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Если на стороне сервера комментарий не был удален, то:
необходимо фиксировать время удаления на сервере;
удаленный комментарий должен удалиться и на сервере;
в качестве времени удаления комментария считать время удаления на сервере;
в журнал синхронизации при применении должна произойти запись в формате:
успешная синхронизация:
Удаление комментария "текст_комментария" к работе "название_работы" синхронизировано
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Удаление комментария "текст_комментария" к работе "название_работы": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Исходное поведение здесь.
В режиме оффлайн доступны пункты меню добавления нового файла «Файл с устройства» и «Фото» (но не «Файл с хранилища») как на экране информации о работе, так и на экране всех вложений. Необходимо фиксировать время добавления нового файла на устройстве. Добавление на сервер должно происходить по следующему алгоритму.
Если на стороне сервера доступ к добавлению файла в папку «Приложения» был закрыт, то действие выполнять частично: этот файл необходимо добавить, но в папку «Прочие». В журнал синхронизации при этом должна произойти запись в формате:
условно успешная синхронизация:
Новый файл "название_файла.расширение" к работе "название_работы" добавлен в папку "Прочие": Отсутствует доступ к папке "Приложения"
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Новый файл "название_файла.расширение" к работе "название_работы": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Во всех остальных случаях действие добавления нового файла должно всегда выполняться:
необходимо фиксировать время добавления на сервере;
в качестве времени добавления файла считать время применения действия на сервере;
в журнал синхронизации при применении должна произойти запись в формате:
успешная синхронизация:
Новый файл "название_файла.расширение" к работе "название_работы" добавлен
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Новый файл "название_файла.расширение" к работе "название_работы": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Исходное поведение здесь.
В режиме оффлайн доступен пункт меню «Удалить» вложения, при его наличии, как на экране информации о работе, так и на экране всех вложений. Необходимо фиксировать время удаления вложения на устройстве. Удаление с сервера должно происходить по следующему алгоритму.
Если на стороне сервера данный файл был удален, то действие не выполнять. В журнал синхронизации при этом должна произойти запись в формате:
условно успешная синхронизация:
Удаление файла "название_файла.расширение" работы "название_работы" не синхронизировано: Файл удален
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Удаление файла "название_файла.расширение" работы "название_работы": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Если на стороне сервера доступ к удалению файла в папке «Приложения» был закрыт, то действие не выполнять. В журнал синхронизации при этом должна произойти запись в формате:
условно успешная синхронизация:
Удаление файла "название_файла.расширение" работы "название_работы" не синхронизировано: Отсутствует доступ к папке "Приложения"
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Удаление файла "название_файла.расширение" работы "название_работы": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Если на стороне сервера файл не был удален и есть доступ на его удаление, то:
необходимо фиксировать время удаления на сервере;
удаленный файл должен удалиться и на сервере;
в качестве времени удаления файла считать время удаления на сервере;
в журнал синхронизации при применении должна произойти запись в формате:
успешная синхронизация:
Удаление файла "название_файла.расширение" работы "название_работы" синхронизировано
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Удаление файла "название_файла.расширение" работы "название_работы": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Исходное поведение здесь.
В режиме оффлайн ползунок прогресса работы, при его наличии, доступен для редактирования. Необходимо фиксировать время последнего изменения прогресса на устройстве. Применение измененного в оффлайне значения прогресса должно происходить по следующему алгоритму.
Если на стороне сервера данная работа уже завершена (хоть статусом, хоть прогрессом), то действие не выполнять. В журнал синхронизации при этом должна произойти запись в формате:
условно успешная синхронизация:
Изменение прогресса работы "название_работы" не синхронизировано: Действие не может быть выполнено, так как процесс завершен
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Изменение прогресса работы "название_работы": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Если на стороне сервера данная работа не завершена, то:
необходимо фиксировать время применения действия на сервере;
значение измененного прогресса должно примениться, даже если значение прогресса на сервере не совпадает с исходным значением прогресса в оффлайне;
в качестве времени изменения прогресса считать время применения действия на сервере;
в журнал синхронизации при применении должна произойти запись в формате:
успешная синхронизация:
Изменение прогресса работы "название_работы" синхронизировано, новое значение - NN%
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Изменение прогресса работы "название_работы": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Исходное поведение здесь.
В режиме оффлайн доступны, при наличии, кнопки «Завершить» (идентификаторы операции PROGRESS, POINT_RESULT, RESOLUTION_ACTION), «Ответить» (идентификатор операции PROCESS), «Результат» (идентификатор действия RESULT) и ползунок прогресса работы для выставления 100%. Необходимо фиксировать время завершения на устройстве. Применение статуса завершенности работы должно происходить по следующему алгоритму.
Для работ без формы завершения, а также с формой завершения «форма»: если на стороне сервера данная работа была завершена (хоть статусом, хоть прогрессом), то действие не выполнять. В журнал синхронизации при этом должна произойти запись в формате:
условно успешная синхронизация:
Завершение работы "название_работы" не синхронизировано: Действие не может быть выполнено, так как процесс завершен
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Завершение работы "название_работы": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Для работ с формой завершения «файл»: если на стороне сервера данная работа была завершена (хоть статусом, хоть прогрессом), то действие выполнять частично: этот файл или форму необходимо добавить в «Прочие». В журнал синхронизации при этом должна произойти запись в формате:
условно успешная синхронизация:
Завершение работы "название_работы" не синхронизировано: Действие не может быть выполнено, так как процесс завершен (в "Прочие" добавлен файл формы завершения)
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Завершение работы "название_работы": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Замечание
Файл в «Прочие» должен добавляться в любом случае. Если файл с таким же названием существует в «Приложениях», то он должен просто добавиться в «Прочие». Если же в «Прочих» существует файл с таким названием, то он все равно должен добавиться как отдельный файл с обновленным названием «исходное-имя-файла_ГГГГ-ММ-ДД ЧЧ_ММ.расширение».
Для работ с формой завершения «комментарий»: если на стороне сервера данная работа была завершена (хоть статусом, хоть прогрессом), то действие выполнять частично: этот комментарий необходимо добавить к работе как «обычный» комментарий. В журнал синхронизации при этом должна произойти запись в формате:
условно успешная синхронизация:
Завершение работы "название_работы" не синхронизировано: Действие не может быть выполнено, так как процесс завершен (комментарий добавлен к работе как обычный)
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Завершение работы "название_работы": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Для работ без формы завершения, а также с формой завершения «форма»: если на стороне сервера данная работа была удалена, то действие не выполнять. В журнал синхронизации при этом должна произойти запись в формате:
условно успешная синхронизация:
Завершение работы "название_работы" не синхронизировано: Действие не может быть выполнено, так как процесс завершен
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Завершение работы "название_работы": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Для работ с формой завершения «файл»: если на стороне сервера данная работа была удалена, то действие выполнять частично: этот файл или форму необходимо добавить в «Прочие». В журнал синхронизации при этом должна произойти запись в формате:
условно успешная синхронизация:
Завершение работы "название_работы" не синхронизировано: Действие не может быть выполнено, так как процесс завершен (в "Прочие" добавлен файл формы завершения)
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Завершение работы "название_работы": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Замечание
Файл в «Прочие» должен добавляться в любом случае. Если файл с таким же названием существует в «Приложениях», то он должен просто добавиться в «Прочие». Если же в «Прочих» существует файл с таким названием, то он все равно должен добавиться как отдельный файл с обновленным названием «исходное-имя-файла_ГГГГ-ММ-ДД ЧЧ_ММ.расширение».
Для работ с формой завершения «комментарий»: если на стороне сервера данная работа была удалена, то действие не выполнять. В журнал синхронизации при этом должна произойти запись в формате:
условно успешная синхронизация:
Завершение работы "название_работы" не синхронизировано: Действие не может быть выполнено, так как процесс завершен (комментарий не добавлен к работе)
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Завершение работы "название_работы": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Для всех остальных случаев:
необходимо фиксировать время применения действия на сервере;
должен примениться статус завершенности со всеми сопутствующими параметрами завершения:
идентификаторы операции PROGRESS / RESOLUTION_ACTION: результат операции (завершено);
идентификаторы операции POINT_RESULT: форма завершения комментарий, файл (в т.ч. выбранный из работы, добавленный с устройства или с камеры), форма;
Примечание: в список завершения работы «Из работы» (для формы завершения - файла) попадают как синхронизированные данные, так и файлы, добавленные в режиме оффлайна (пункт «Перепорученные» при этом недоступен, нельзя выбрать результат перепорученных работ).
идентификаторы операции PROCESS: добавлены ли подпись и комментарий и результат операции (ознакомился, согласен/не согласен, утвердил/не утвердил);
идентификатор действия RESULT: результат действия подтверждено или отклонено (включая измененные сроки и прогресс, комментарий-причина);
в качестве времени изменения прогресса считать время применения действия на сервере;
в журнал синхронизации при применении должна произойти запись в формате:
успешная синхронизация:
Завершение работы "название_работы" синхронизировано
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Завершение работы "название_работы": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Исходное поведение здесь.
В режиме оффлайн доступен пункт меню «Комментарий» для добавления нового комментария как на экране информации о документе, так и на экране всех комментариев. Необходимо фиксировать время добавления нового комментария на устройстве и использовать его в качестве отображаемого времени на плашке комментария в формате «ДД месяца ЧЧ:ММ». Добавление на сервер должно происходить по следующему алгоритму.
Примечание: необходимо учитывать, что комментарий, добавленный к документу, добавляется и к открытой ветке работ. Но если работа была удалена, комментарий все равно добавится (но только во вкладку «Документ»). Ошибки синхронизации при этому будут отсутствовать, и это не является ошибкой мобильного приложения.
Действие добавления комментария к документу выполнять всегда:
необходимо фиксировать время добавления на сервере;
в качестве времени добавления комментария считать время применения действия на сервере;
в журнал синхронизации при применении должна произойти запись в формате:
успешная синхронизация:
Новый комментарий "текст_комментария" к документу "название_документа" добавлен
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Новый комментарий "текст_комментария" к документу "название_документа": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Исходное поведение здесь.
В режиме оффлайн доступен пункт меню «Изменить» комментария, при его наличии, как на экране информации о документу, так и на экране всех комментариев. Необходимо фиксировать время изменения комментария на устройстве и использовать его в качестве отображаемого времени последнего изменения на плашке комментария в формате «ДД месяца ЧЧ:ММ». Применение изменений на сервер должно происходить по следующему алгоритму.
Если на стороне сервера данный комментарий был удален, то действие не выполнять. В журнал синхронизации при этом должна произойти запись в формате:
условно успешная синхронизация:
Изменение комментария "текст_комментария" к документу "название_документа" не синхронизировано: Комментарий невозможно изменить, так как он удален
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Изменение комментария "текст_комментария" к документу "название_документа": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Если на стороне сервера комментарий не был удален, то:
необходимо фиксировать время применения действия на сервере;
измененный комментарий должен примениться, даже если комментарий на сервере не совпадает с исходным комментарием в оффлайне;
в качестве времени изменения комментария считать время применения действия на сервере;
в журнал синхронизации при применении должна произойти запись в формате:
успешная синхронизация:
Изменение комментария к документу "название_документа" синхронизировано, новое значение: "текст_комментария"
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Изменение комментария "текст_комментария" к документу "название_документа": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Исходное поведение здесь.
В режиме оффлайн доступен пункт меню «Удалить» комментария, при его наличии, как на экране информации о документе, так и на экране всех комментариев. Необходимо фиксировать время удаления комментария на устройстве. Удаление с сервера должно происходить по следующему алгоритму.
Если на стороне сервера данный комментарий был удален, то действие не выполнять. В журнал синхронизации при этом должна произойти запись в формате:
условно успешная синхронизация:
Удаление комментария "текст_комментария" к документу "название_документа" не синхронизировано: Комментарий невозможно удалить, так как он уже удален
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Удаление комментария "текст_комментария" к документу "название_документа": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Если на стороне сервера комментарий не был удален, то:
необходимо фиксировать время удаления на сервере;
удаленный комментарий должен удалиться и на сервере;
в качестве времени удаления комментария считать время удаления на сервере;
в журнал синхронизации при применении должна произойти запись в формате:
успешная синхронизация:
Удаление комментария "текст_комментария" к документу "название_документа" синхронизировано
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Удаление комментария "текст_комментария" к документу "название_документа": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Исходное поведение здесь.
В режиме оффлайн доступны пункты меню добавления нового файла «Файл с устройства» и «Фото» (но не «Файл с хранилища») как на экране информации о документе, так и на экране всех вложений. Необходимо фиксировать время добавления нового файла на устройстве. Добавление на сервер должно происходить по следующему алгоритму.
Если на стороне сервера доступ к добавлению файла в папку «Приложения» был закрыт, то действие выполнять частично: этот файл необходимо добавить, но в папку «Прочие». В журнал синхронизации при этом должна произойти запись в формате:
условно успешная синхронизация:
Новый файл "название_файла.расширение" к документу "название_документа" добавлен в папку "Прочие": Отсутствует доступ к папке "Приложения"
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Новый файл "название_файла.расширение" к документу "название_документа": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Во всех остальных случаях действие добавления нового файла должно всегда выполняться:
необходимо фиксировать время добавления на сервере;
в качестве времени добавления файла считать время применения действия на сервере;
в журнал синхронизации при применении должна произойти запись в формате:
успешная синхронизация:
Новый файл "название_файла.расширение" к документу "название_документа" добавлен
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Новый файл "название_файла.расширение" к документу "название_документа": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Исходное поведение здесь.
В режиме оффлайн доступен пункт меню «Удалить» вложения, при его наличии, как на экране информации о документе, так и на экране всех вложений. Необходимо фиксировать время удаления вложения на устройстве. Удаление с сервера должно происходить по следующему алгоритму.
Если на стороне сервера данный файл был удален, то действие не выполнять. В журнал синхронизации при этом должна произойти запись в формате:
условно успешная синхронизация:
Удаление файла "название_файла.расширение" документа "название_документа" не синхронизировано: Файл удален
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Удаление файла "название_файла.расширение" документа "название_документа": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Если на стороне сервера доступ к удалению файла в папке «Приложения» был закрыт, то действие не выполнять. В журнал синхронизации при этом должна произойти запись в формате:
условно успешная синхронизация:
Удаление файла "название_файла.расширение" документа "название_документа" не синхронизировано: Отсутствует доступ к папке "Приложения"
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Удаление файла "название_файла.расширение" документа "название_документа": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Если на стороне сервера файл не был удален и есть доступ на его удаление, то:
необходимо фиксировать время удаления на сервере;
удаленный файл должен удалиться и на сервере;
в качестве времени удаления файла считать время удаления на сервере;
в журнал синхронизации при применении должна произойти запись в формате:
успешная синхронизация:
Удаление файла "название_файла.расширение" документа "название_документа" синхронизировано
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Удаление файла "название_файла.расширение" документа "название_документа": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Исходное поведение здесь.
В режиме оффлайн доступны пункты добавления нового файла
«С устройства» и «Сфотографировать»,
при их наличии, в меню создания
(upload_document
). Необходимо фиксировать
время добавления нового файла на устройстве. Добавление файла
на сервер должно происходить по следующему алгоритму.
Если на стороне сервера отсутствует доступ к добавлению
файла в указанную папку (отсутствует право «Добавление
нового элемента» / ADD
), то действие не
выполнять. В журнал синхронизации при этом должна
произойти запись в формате:
условно успешная синхронизация:
Новый файл "название_файла.расширение" в папку "название_папки" не добавлен: Недостаточно прав для выполнения действия
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Новый файл "название_файла.расширение" в папку "название_папки": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Если на стороне сервера имеется доступ, но в указанной папке существует файл с таким названием, то действие выполнять частично: файл должен добавиться с обновленным названием «исходное-имя-файла_ГГГГ-ММ-ДД ЧЧ_ММ.расширение». В журнал синхронизации при этом должна произойти запись в формате:
условно успешная синхронизация:
Новый файл "итоговое_название_файла.расширение" в папку "название_папки" добавлен
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Новый файл "итоговое_название_файла.расширение" в папку "название_папки": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Во всех остальных случаях действие добавления нового файла должно всегда выполняться:
необходимо фиксировать время добавления на сервере;
в качестве времени добавления файла считать время применения действия на сервере;
в журнал синхронизации при применении должна произойти запись в формате:
успешная синхронизация:
Новый файл "название_файла.расширение" в папку "название_папки" добавлен
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Новый файл "название_файла.расширение" в папку "название_папки": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Исходное поведение здесь.
В режиме оффлайн доступен пункт создания новой папки
хранилища, при наличии, в меню создания
(new_folder
). Валидация на пустое,
некорректное либо совпадающее название папки должно
производиться в момент выполнения действия (а не
синхронизации). Необходимо фиксировать время создания папки на
устройстве. Создание папки на сервере должно происходить по
следующему алгоритму.
Если на стороне сервера отсутствует доступ к добавлению
папки в указанную папку (отсутствует право «Добавление
нового элемента» / ADD
), то действие не
выполнять. В журнал синхронизации при этом должна
произойти запись в формате:
условно успешная синхронизация:
Новая папка "название_папки" в папку "название_папки" не добавлена: Недостаточно прав для выполнения действия
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Новая папка "название_папки" в папку "название_папки": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Если на стороне сервера имеется доступ, но в указанной папке существует дочерняя папка с таким названием, то действие выполнять частично: папка должна создаться с обновленным названием «исходное-имя-папки_ГГГГ-ММ-ДД ЧЧ_ММ». В журнал синхронизации при этом должна произойти запись в формате:
условно успешная синхронизация:
Новая папка "итоговое_название_папки" в папку "название_папки" добавлена
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Новая папка "итоговое_название_папки" в папку "название_папки": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Во всех остальных случаях действие создания новой папки должно всегда выполняться:
необходимо фиксировать время создания на сервере;
в качестве времени создания папки считать время применения действия на сервере;
в журнал синхронизации при применении должна произойти запись в формате:
успешная синхронизация:
Новая папка "итоговое_название_папки" в папку "название_папки" добавлена
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Новая папка "итоговое_название_папки" в папку "название_папки": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Исходное поведение здесь.
В режиме оффлайн доступен пункт меню «Переименовать» папки / файла хранилища, в контекстном меню самого элемента. Валидация на пустое, некорректное либо совпадающее название элемента должно производиться в момент выполнения действия (а не синхронизации). Необходимо фиксировать время переименования на устройстве. Переименование элемента на сервере должно происходить по следующему алгоритму.
Для элемента - папки.
Если на стороне сервера отсутствует доступ для
переименования папки в указанной папке (отсутствует право
«Переименование / Перемещение элемента» /
MOVE
), то действие не выполнять. В
журнал синхронизации при этом должна произойти запись в
формате:
условно успешная синхронизация:
Переименование папки "итоговое_название_папки" не синхронизировано: Недостаточно прав для выполнения действия
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Переименование папки "итоговое_название_папки": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Если на стороне сервера имеется доступ, но при этом в родительской папке существует дочерняя с совпадающим названием переименованной папки, то действие выполнять частично: папка должна добавиться с обновленным названием «переименованное-имя-папки_ГГГГ-ММ-ДД ЧЧ_ММ». В журнал синхронизации при этом должна произойти запись в формате:
условно успешная синхронизация:
Переименование папки синхронизировано, новое значение: "итоговое_название_папки"
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Переименование папки "итоговое_название_папки": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Во всех остальных случаях действие переименование папки должно всегда выполняться:
необходимо фиксировать время переименования на сервере;
изменение названия папки хранилища должно примениться, даже если название на сервере не совпадает с исходным названием в оффлайне;
в качестве времени переименования папки считать время применения действия на сервере;
в журнал синхронизации при применении должна произойти запись в формате:
успешная синхронизация:
Переименование папки синхронизировано, новое значение: "итоговое_название_папки"
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Переименование папки "итоговое_название_папки": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Для элемента - файла.
Если на стороне сервера отсутствует доступ для
переименования файла в указанной папке (отсутствует право
«Переименование / Перемещение элемента» /
MOVE
), то действие не выполнять. В
журнал синхронизации при этом должна произойти запись в
формате:
условно успешная синхронизация:
Переименование файла "итоговое_название_файла.расширение" не синхронизировано: Недостаточно прав для выполнения действия
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Переименование файла "итоговое_название_файла.расширение": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Если на стороне сервера имеется доступ, но при этом в родительской папке существует файл с совпадающим названием переименованного файла, то действие выполнять частично: файл должен добавиться с обновленным названием «переименованное-имя-файла_ГГГГ-ММ-ДД ЧЧ_ММ.расширение». В журнал синхронизации при этом должна произойти запись в формате:
условно успешная синхронизация:
Переименование файла синхронизировано, новое значение: "итоговое_название_файла.расширение"
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Переименование файла "итоговое_название_файла.расширение": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Во всех остальных случаях действие переименование файла должно всегда выполняться:
необходимо фиксировать время переименования на сервере;
изменение названия файла хранилища должно примениться, даже если название на сервере не совпадает с исходным названием в оффлайне;
в качестве времени переименования файла считать время применения действия на сервере;
в журнал синхронизации при применении должна произойти запись в формате:
успешная синхронизация:
Переименование файла синхронизировано, новое значение: "итоговое_название_файла.расширение"
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Переименование файла "итоговое_название_файла.расширение": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Исходное поведение здесь.
В режиме оффлайн доступен пункт меню «Переместить» папки / файла хранилища, в контекстном меню самого элемента. Валидация на совпадающий элемент в папке месторасположения должно производиться в момент выполнения действия (а не синхронизации). Необходимо фиксировать время перемещения на устройстве. Перемещение элемента на сервере должно происходить по следующему алгоритму.
Для элемента - папки.
Если на стороне сервера отсутствует доступ для перемещения
папки в исходной папке (отсутствует право «Переименование
/ Перемещение элемента» / MOVE
), и/или
доступ для добавления новой папки в папку
месторасположения (отсутствует право «Добавление нового
элемента» / ADD
), то действие не
выполнять. В журнал синхронизации при этом должна
произойти запись в формате:
условно успешная синхронизация:
Перемещение папки "название_папки" не синхронизировано: Недостаточно прав для выполнения действия
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Перемещение папки "итоговое_название_папки": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Если на стороне сервера имеется доступ, но при этом в папке месторасположения существует дочерняя с совпадающим названием перемещаемой папки, то действие выполнять частично: папка должна добавиться с обновленным названием «переименованное-имя-папки_ГГГГ-ММ-ДД ЧЧ_ММ». В журнал синхронизации при этом должна произойти запись в формате:
условно успешная синхронизация:
Папка "итоговое_название_папки" перемещена в "папка_месторасположения"
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Перемещение папки "итоговое_название_папки": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Во всех остальных случаях действие перемещения папки должно всегда выполняться:
необходимо фиксировать время перемещения на сервере;
в качестве времени перемещения папки считать время применения действия на сервере;
в журнал синхронизации при применении должна произойти запись в формате:
успешная синхронизация:
Папка "название_папки" перемещена в "папка_месторасположения"
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Перемещение папки "название_папки": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Для элемента - файла.
Если на стороне сервера отсутствует доступ для перемещения
файла в исходной папке (отсутствует право «Переименование
/ Перемещение элемента» / MOVE
), и/или
доступ для добавления нового файла в папку
месторасположения (отсутствует право «Добавление нового
элемента» / ADD
), то действие не
выполнять. В журнал синхронизации при этом должна
произойти запись в формате:
условно успешная синхронизация:
Перемещение файла "название_файла.расширение" не синхронизировано: Недостаточно прав для выполнения действия
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Перемещение файла "название_файла.расширение": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Если на стороне сервера имеется доступ, но при этом в папке месторасположения существует файл с совпадающим названием перемещаемого файла, то действие выполнять частично: файл должен добавиться с обновленным названием «переименованное-имя-файла_ГГГГ-ММ-ДД ЧЧ_ММ.расширение». В журнал синхронизации при этом должна произойти запись в формате:
условно успешная синхронизация:
Файл "итоговое_название_файла.расширение" перемещен в "папка_месторасположения"
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Перемещение файла "итоговое_название_файла.расширение": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Во всех остальных случаях действие перемещения файла должно всегда выполняться:
необходимо фиксировать время перемещения на сервере;
в качестве времени перемещения файла считать время применения действия на сервере;
в журнал синхронизации при применении должна произойти запись в формате:
успешная синхронизация:
Файл "название_файла.расширение" перемещен в "папка_месторасположения"
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Перемещение файла "итоговое_название_файла.расширение": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Исходное поведение здесь.
В режиме оффлайн доступен пункт удаления папки / файла хранилища, в контекстном меню самого элемента. Необходимо фиксировать время удаления элемента на устройстве. Удаление на сервере должно происходить по следующему алгоритму.
Для элемента - папки.
Если на стороне сервера отсутствует доступ на удаление
папки в указанной папке (отсутствует право «Удаление
элемента» / DELETE
), то действие не
выполнять. В журнал синхронизации при этом должна
произойти запись в формате:
условно успешная синхронизация:
Папка "название_папки" не удалена: Недостаточно прав для выполнения действия
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Удаление папки "название_папки": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Во всех остальных случаях действие удаления папки должно всегда выполняться:
необходимо фиксировать время удаления на сервере;
в качестве времени удаления папки считать время применения действия на сервере;
в журнал синхронизации при применении должна произойти запись в формате:
успешная синхронизация:
Удаление папки "название_папки" синхронизировано
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Удаление папки "название_папки": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Для элемента - файла.
Если на стороне сервера отсутствует доступ на удаление
файла в указанной папке (отсутствует право «Удаление
элемента» / DELETE
), то действие не
выполнять. В журнал синхронизации при этом должна
произойти запись в формате:
условно успешная синхронизация:
Файл "название_файла.расширение" не удален: Недостаточно прав для выполнения действия
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Удаление файла "название_файла.расширение": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ
Во всех остальных случаях действие удаления файла должно всегда выполняться:
необходимо фиксировать время удаления на сервере;
в качестве времени удаления файла считать время применения действия на сервере;
в журнал синхронизации при применении должна произойти запись в формате:
успешная синхронизация:
Удаление файла "название_файла.расширение" синхронизировано
ГГГГ-ММ-ДД ЧЧ:ММ
неуспешная синхронизация:
Удаление файла "название_файла.расширение": ошибка синхронизации
ГГГГ-ММ-ДД ЧЧ:ММ