Действия в хранилище

В модуле «Файлы» доступны следующие действия.

Добавление файла в хранилище

Функция добавления файла в хранилище доступна только в меню «Создать» и соответствует пункту upload_document параметра API files_items. В соответствии с этим параметром название группового пункта меню может быть произвольным. Названия двух подпунктов неизменяемы: «С устройства» и «Сфотографировать».

Кроме наличия параметра в методе API для добавления файла необходимо наличие права «Добавление нового элемента» (ADD) на папку, в которой он будет расположен.

  • При выборе подпункта добавления файла «С устройства» приложение выдает стандартное (системное) диалоговое окно выбора файла.

  • При выборе подпункта добавления файла «Сфотографировать» вызывается встроенный фотомодуль устройства. При таком добавлении файла приложение должно задавать имя файлу в следующем формате: Снимок dd MM yyyy HH:mm.

В случае успешного добавления сразу создается новая плашка файла в списке (по общепринятым правилам сортировки), иначе - отображается сообщение об ошибке:

  • Если введенное название файла совпадает с уже существующим в данной родительской папке файлом:

    Файл %название% уже существует. Действие не выполнено

По нажатию «Отмена» действие не выполняется.

Примечание

Метод для добавления файла в хранилище описан в javadoc:

kz.arta.synergy.server.api.rest.storage#add.

http://tdd.lan.arta.kz/docs/synergy/trunk/sdk-doc/javadoc/kz/arta/synergy/server/api/rest/storage/StorageService.html#add%28java.lang.String,%20java.lang.String,%20java.lang.String,%20java.lang.String%29

Создание папки хранилища

Функция создания новой папки доступна только в меню «Создать» и соответствует пункту new_folder параметра API files_items. В соответствии с этим параметром название пункта меню может быть произвольным.

Кроме наличия параметра в методе API для создания новой папки необходимо наличие права «Добавление нового элемента» (ADD) на папку, в которой она будет расположена.

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

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

  • Если не введено название папки:

    Введите название папки

  • Если введено некорректное название папки (например, с символами * [ ] { } | / :):

    Введите корректное название папки

  • Если введенное название папки совпадает с уже существующей в данной родительской папке:

    Папка с таким названием уже существует

По нажатию «Отмена» действие не выполняется.

Примечание

Метод для создания новой папки хранилища описан в javadoc:

kz.arta.synergy.server.api.rest.storage#create.

http://tdd.lan.arta.kz/docs/synergy/trunk/sdk-doc/javadoc/kz/arta/synergy/server/api/rest/storage/StorageService.html#create%28java.lang.String,%20java.lang.String,%20java.lang.String%29

Переименование элемента хранилища

Функция переименования доступна как для папок, так и для файлов, только в контекстном меню соответствующего элемента «Действия», пункт «Переименовать».

Для переименования элемента необходимо наличие права «Переименование / Перемещение элемента» (MOVE) на папку, в которой он расположен.

Пользователь нажимает на этот пункт меню и приложение выдает стандартное (системное) диалоговое окно «Переименование» для редактирования названия. В поле ввода должно содержаться текущее название элемента (для элемента-файла с его расширением).

По нажатию «ОК» пользователь подтверждает переименование, отправляется запрос на сервер. В случае успешного выполнения название в плашке сразу обновляется, иначе - диалог закрывается, действие не выполняется и отображается сообщение об ошибке:

  • Если не введено название элемента:

    Введите название элемента

  • Если введено некорректное название элемента (например, с символами * [ ] { } | / :):

    Введите корректное название элемента

  • Если введенное название папки / файла совпадает с уже существующим в данной родительской папке элементом:

    Элемент '%название%' уже существует. Выберите другое имя

    действие не осуществляется;

По нажатию «Отмена» действие не выполняется.

Примечание

Метод для переименования элемента хранилища описан в javadoc:

kz.arta.synergy.server.api.rest.storage#rename.

http://tdd.lan.arta.kz/docs/synergy/trunk/sdk-doc/javadoc/kz/arta/synergy/server/api/rest/storage/StorageService.html#rename%28java.lang.String,%20java.lang.String,%20java.lang.String%29

Перемещение элемента хранилища

Функция перемещения доступна как для папок, так и для файлов, только в контекстном меню соответствующего элемента «Действия», пункт «Переместить».

Для перемещения элемента необходимо наличие права «Переименование / Перемещение элемента» (MOVE) на папку, в которой он расположен, а также «Добавление нового элемента» (ADD) на папку месторасположения.

Пользователь нажимает на этот пункт меню и приложение выдает экран «Переместить».

Рисунок 5.11. Перемещение элемента хранилища

Перемещение элемента хранилища

Рисунок 5.12. Перемещение элемента хранилища

Перемещение элемента хранилища

Панель со списком по центру и кнопка «Выбрать» внизу экрана имеют фиксированное положение, прокрутка списка скроллом осуществляется внутри панели. Внутри панели отображается все доступное данному пользователю хранилище системы. Каждая запись содержит полное название папки.

Панель со списком папок имеет следующие особенности:

  • С понижением уровня папки смещаются вправо (при этом уровни вложенности, начиная с 8-й, должны иметь отступ как для 7-го уровня).

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

    Примечание

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

  • В любой строке (за исключением области иконок свернуть / развернуть) папки присутствует выделение (действие tap).

После выделения папки пользователь нажимает на кнопку «Выбрать». Действие выполняется, только если выделена какая-либо папка, иначе необходимо выдавать сообщение:

Папка не выбрана

и не выполнять действие.

В случае успешного перемещения содержимое исходной папки обновляется - перемещенный элемент в списке более не отображается, иначе - выходит сообщение об ошибке:

  • Если на папку месторасположения отсутствует право добавления нового элемента:

    Недостаточно прав для выполнения действия

    действие не осуществляется, экран перемещения остается открытым;

  • Если название перемещаемого элемента (папки или файла) совпадает с уже существующим в папке месторасположения элементом:

    Объект уже существует

    действие не осуществляется, экран перемещения закрывается.

Примечание

Метод для перемещения элемента хранилища описан в javadoc:

kz.arta.synergy.server.api.rest.storage#move.

http://tdd.lan.arta.kz/docs/synergy/trunk/sdk-doc/javadoc/kz/arta/synergy/server/api/rest/storage/StorageService.html#move%28java.lang.String,%20java.lang.String,%20java.lang.String%29

Скачивание файла из хранилища

В мобильном приложении доступно 2 вида скачивания файлов: обычное и в версии PDF.

Обычное скачивание вызывается следующими действиями:

  • по нажатию (tap) на плашку файла;

  • при выборе пункта «Скачать» контекстного меню файла «Действия».

Скачивание в версии PDF доступно только в контекстном меню файла «Действия», пункт «Скачать как PDF».

Для скачивания файлов необходимо наличие права «Загрузка файла документа» (LOAD_DOCUMENT) на папку, в которой он расположен. Даже при наличии такого права пункт «Скачать как PDF» может отсутствовать, если файл не является текстовым.

В первом случае происходит скачивание файла в исходном формате, во втором - в формате PDF. Скачанный файл открывается системными средствами устройства.

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

Примечание

Метод для скачивания файла:

rest/api/storage/file/get?identifier=node_id

Метод для получения PDF-версии файла:

rest/api/storage/pdf/get?identifier=node_id

В обоих случаях node_id - идентификатор файла. Полная ссылка должна выглядеть следующим образом:

http(s)://user_login:user_pass@host:port/Synergy/rest/api/storage/file/get?identifier=node_id

или

http(s)://user_login:user_pass@host:port/Synergy/rest/api/storage/pdf/get?identifier=node_id

где user_login - логин авторизованного пользователя, user_pass - пароль авторизованного пользователя. Без авторизации доступ к файлам запрещен.

Удаление элемента хранилища

Функция удаления доступна как для папок, так и для файлов, только в контекстном меню соответствующего элемента «Действия», пункт «Удалить».

Для удаления элемента необходимо наличие права «Удаление элемента» (DELETE) на папку, в которой он расположен.

Пользователь нажимает на этот пункт меню и приложение запрашивает подверждение выполнения действия «Удаление элемента» с сообщением:

  • для элемента-папки: Вы действительно хотите удалить папку "%название_папки%"?

  • для элемента-файла: Вы действительно хотите удалить файл "%название_файла.расширение%"?

Если пользователь подтверждает удаление, отправляется запрос на сервер для удаления. В случае успешного выполнения плашка удаляется из списка, иначе - отображается сообщение об ошибке.

Примечание

Метод для удаления элемента хранилища описан в javadoc:

kz.arta.synergy.server.api.rest.storage#remove.

http://tdd.lan.arta.kz/docs/synergy/trunk/sdk-doc/javadoc/kz/arta/synergy/server/api/rest/storage/StorageService.html#remove%28java.lang.String,%20java.lang.String%29