Автономная работа {#sec.offline_work}
-----------------

*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.

Работа приложения в автономном режиме подразумевает:

*   В модуле «Работы»:

    *   отображение и выбор любого из фильтров навигатора модуля;
    *   отображение списка работ согласно выбранного фильтра;
    *   отображение информации о работе;
    *   отображение всех комментариев любой из трех категорий, 
        возможность добавления / изменения / удаления комментариев;
    *   отображение списка и, опционально, содержимого всех 
        вложений к работе, возможность добавления / удаления 
        вложений;
    *   изменение прогресса работы;
    *   завершение работы (в т.ч. с формой завершения).

*   В модуле «Документы»:

    *   отображение и выбор любого из фильтров навигатора модуля;
    *   отображение списка документов согласно выбранного фильтра 
        (как в неполном виде, так и в полном);
    *   отображение информации о документе, в т.ч. о работах по 
        документу;
    *   отображение всех комментариев любой из трех категорий, 
        возможность добавления / изменения / удаления комментариев;
    *   отображение списка и, опционально, содержимого всех 
        вложений к документу, возможность добавления / удаления 
        вложений;
    *   изменение прогресса работы по документу;
    *   завершение работы по документу (в т.ч. с формой 
        завершения).

*   В модуле «Файлы»:

    *   отображение и выбор любой ноды дерева хранилища;
    *   отображение списка (но не содержимого) файлов выбранной 
        папки;
    *   добавление файла в хранилище;
    *   создание папки хранилища;
    *   переименование элемента хранилища;
    *   перемещение элемента хранилища;
    *   удаление элемента хранилища.

По нажатию на незагруженные при синхронизации файлы хранилища / 
вложения работы или документа ничего происходить не должно (ни 
скачивания, ни ошибок).

При этом по нажатию на файлы и вложения, загруженные в режиме 
оффлайн, должно происходить их открытие.

Аналогично для всех прочих неописанных кнопок и пунктов меню: 
по их нажатию ничего происходить не должно (ни выполнение 
действия, ни ошибок).

Выполнение любого из пунктов, в результате действия которого 
должно изменяться состояние соответствующего объекта, должно 
изменять эти атрибуты и в автономном режиме также, как это 
происходит в режиме онлайн.

Например, изменение прогресса работы в экране информации о 
работе должно изменить прогресс и на плашке соответствующей 
работы.

<#include "offline/work/offline_work_index.md">
<#include "offline/documents/offline_document_index.md">
<#include "offline/files/offline_files_index.md">

