Навигатор хранилища {#sec.files_navigator}
------------------

По нажатию на кнопку "Навигатор", а также проведя пальцем от левой 
стороны экрана со списком документов к правой, раскрывается левая 
панель навигатора хранилища (илл. «Навигатор хранилища»).

![Навигатор хранилища](resources/img/files/navigator.png)

Верхняя панель содержит кнопку ["Настройки"](#sec.settings) и 
надпись "Навигатор". Нижняя панель отображается только для 
включенного флажка "Синхронизировать данные для оффлайн-работы" и 
содержит кнопку синхронизации.

Кнопка синхронизации содержит иконку и один из вариантов подписи 
к ней:

-   "Синхронизация не производилась" - для варианта, когда на 
    устройстве отсутствуют данные синхронизации;

-   "Идёт синхронизация" - для активного 
    [процесса синхронизации](#sec.offline);

-   "Последняя синхронизация: ДД месяц ЧЧ:ММ" - во всех 
    остальных случаях (указывается дата и время последней 
    успешной синхронизации).

Навигатор состоит из двух основных частей:

*   избранные папки пользователя;
*   сплит;
*   основное дерево хранилища.

*Избранная папка хранилища* - это закладка на папку из основного 
дерева. По нажатию на закладку в основном дереве необходимо 
автоматически выделять указанную папку с раскрытием соответствующих 
ей веток. Таким образом, в навигаторе могут являться выделенными 
одновременно 2 ноды дерева, и это не будет являться ошибкой.

После выделения папки в навигаторе необходимо автоматически 
переходить в список содержимого этой папки.

Ветка избранных папок, по умолчанию, всегда раскрыта. По нажатию 
на ноду "Избранное" ничего происходить не должно.

> *Примечание:*
> 
> Если закладка ссылается на недоступную данному пользователю 
> папку необходимо не выполнять действие и выдавать ошибку: 
> 
> `Элемент был удален либо у вас нет прав на просмотр`
> 
> Если закладка ссылается на несуществующую (удаленную) папку в 
> основном дереве необходимо удалять данную закладку с ошибкой: 
> 
> `Элемент был удален либо у вас нет прав на просмотр`
> 
> Если удаленная закладка являлась единственной, то отображать 
> всю ветку избранных папок хранилища более не нужно.

Для построения *основного дерева* используются только параметры 
`is_folder` со значением «true» и `name` в качестве их названия.

При каждом новом запуске приложения, а также после переключения 
модулей все папки основного дерева, кроме личной («Мои документы»), 
должны быть свернуты, а выделенной являться первая папка 
навигатора. В остальных случаях развернутость дерева и последняя 
выделенная папка должны сохранять свои значения.

Кроме того, ввиду возможности навигации по папкам также из списка 
и компонента "Путь", при каждом открытии навигатора необходимо 
учитывать текущую открытую папку и выделять её.

Если папка содержит вложенные папки, то в правой части 
отображается иконка 
![](resources/img/workflow/elements/filters_undetailed.png) для 
свернутой папки и 
![](resources/img/workflow/elements/filters_detailed.png) для 
развернутой. По нажатию на квадратную область (кликабельная 
область аналогична фильтрам в работах) вокруг иконки свернутой 
папки он разворачивается, и наоборот. Одновременно может быть 
раскрыто несколько деревьев папок.

> **Примечание**
> 
> По умолчанию, каждая папка всегда отображается с иконкой 
> «Развернуть», даже если вложенные папки у неё отсутствуют 
> (особенность поведения в платформе). Таким образом, только 
> после разворачивания папки без вложенных папок иконка 
> «Свернуть» / «Развернуть» исчезнет, и это не является 
> ошибкой мобильного приложения.
> 
> Сворачивание папки в навигаторе сопровождается одновременным 
> обновлением списка файлов без автоматического перехода 
> непосредственно к списку.

Если название папки полностью не помещается на строке, с правого 
края оно должно быть затемнено градиентом из прозрачного в цвет 
фона.

По нажатию на название папки левая панель скрывается и 
пользователю отображается список вложенных папок и файлов 
согласно выбранной папки хранилища.

**Переходы на другие экраны.**

С панели навигатора можно перейти в 
[настройки приложения](#sec.settings), нажав на кнопку 
"Настройки" либо вернуться к [списку файлов](#sec.files_list). 
Левую панель можно скрыть тремя способами:

1.  проведя пальцем от правой стороны экрана к левой;

2.  нажав по любому месту правой стороны экрана (там, где 
    отображается часть экрана списка файлов);

3.  нажав на кнопку "Назад" (для ОС Android).

> **Примечание**
> 
> Метод для построения избранных папок хранилища описан в 
> javadoc:
> 
> kz.arta.synergy.server.api.rest.stotage#listFavoriteFolders.
> 
> http://tdd.lan.arta.kz/docs/synergy/trunk/sdk-doc/javadoc/kz/arta/synergy/server/api/rest/storage/StorageService.html#listFavoriteFolders%28%29
> 
> Метод для построения основного дерева хранилища описан в 
> javadoc:
> 
> kz.arta.synergy.server.api.rest.stotage#listFiles.
> 
> http://tdd.lan.arta.kz/docs/synergy/trunk/sdk-doc/javadoc/kz/arta/synergy/server/api/rest/storage/StorageService.html#listFiles%28java.lang.String,%20boolean,%20java.lang.String%29

