Библиотека документов (Document Library)
Document Library (Библиотека документов) - иерархический интерфейс для работы с папками и документами.
В данном режиме можно просмотреть дерево иерархии папок и документов, произвести действия над документами и папками по аналогии действиям в проводнике Windows.
Проводник отображается в правом меню по нажатию на «Показать дерево папок». Сворачивается по кнопке «Скрыть дерево папок»:
Выбранная папка подсвечивается среди других папок (1).
При клике на иконку или название папки она раскрывается (1), и в левой части отражаются файлы, находящиеся в папке (2).
Для отображения документов и папок используются иконки, соответствующие формату файлов по аналогии с проводником Windows:
Microsoft Word (doc, docx);
Microsoft Excel (xls, xlsx);
Microsoft Powerpoint (ppt, pptx);
Adobe Acrobat (pdf);
Файлы изображений (jpg, bmp, png, gif, tif);
OpenOffice/ LibreOffice (odf);
Файл сообщения из электронной почты (.msg).
Загрузка файлов осуществляется по кнопке + и используя drag&drop. Файлы добавляться как по одному, так и группой.
Перемещение файлов из каталога в каталог осуществляется с использованием drag&drop. Файлы могут быть перемещены как по одному, так и группой.
Над журналом размещено название текущей раскрытой папки (4), чуть ниже - полный путь к открытой папке (3).
Выделение документов и папок работает аналогично выбору в файловых менеджерах с учетом кнопок Ctrl, Shift и ЛКМ:
левая кнопка мыши и Shift приводит к выделению диапазона файлов и папок;
левая кнопка мыши и Ctrl добавляет выделение, не сбрасывая уже выделенные файлы;
левая кнопка мыши без других клавиш сбрасывает предыдущее выделение и устанавливает новое на том файле или папке куда произошел клик.
Поиск документов внутри выбранной папки (5). Результат поиска отображается в виде списка.
При наведении курсора на файл или папку отображаются действия см. Действия с файлом (6).
Действия с файлом
Переход к просмотру карточки в новой вкладке. |
|
Переименование файла или папки: |
|
Редактировать документ в OnlyOffice. Доступно только для файлов форматов MS Office и OpenDocument. |
|
Скачать файл. |
|
Создание папки / Загрузка файла
Создание папки или загрузка файла осуществляется по кнопке +:
При загрузке файла необходимо ввести его название, которое будет отображаться, и выбрать или перетащить файл для прикрепления:
При создании папки укажите ее название:
Карточка файла
Карточка состоит из виджетов.
Для файла доступны следующие действия:
Редактировать свойства;
Редактировать документ (только для файлов форматов MS Office и OpenDocument)
Скачать;
Удалить.
Создание библиотеки документов
Создайте новый тип данных. На вкладке «Основное» укажите id, Имя, в качестве родителя выберите Файл библиотеки документов. В созданный тип будут автоматически добавлены действия.
Так же для создания библиотеки документов можно использовать аспект doclib.
[TBD]
API
to be updated
Для примеров взят тип emodel/type@TEST_TYPE
Корень для библиотеки документов всегда доступен по составному id: alfresco/doclib@TEST_TYPE$ (от id типа отбрасывается префикс emodel/type@, добавляется префикс alresco/doclib@ и постфикс $)
Получение дочерних элементов:
Records.get('alfresco/doclib@TEST_TYPE$').load('children[]{id:?id,displayName:?disp,nodeType,hasChildrenDirs:hasChildrenDirs?bool,typeRef:typeRef?id}');
Все получаемые id нужно проверять на наличие префикса alfresco/doclib@. Если возвращается просто doclib@…, то нужно добавить alfresco/ чтобы получилось alfresco/doclib@
Узнать поддерживает ли тип режим doclib:
Records.get('emodel/type@TEST_TYPE').load('resolvedDocLib.enabled?bool')
Получить список типов файлов, которые могут быть в данной библиотеке:
Records.get('emodel/type@TEST_TYPE').load('resolvedDocLib.fileTypeRefs[]?id')
Получить тип директории в библиотеке документов:
Records.get('emodel/type@TEST_TYPE').load('resolvedDocLib.dirTypeRef?id')
Создать новый файл или папку в библиотеке:
var record = Citeck.Records.get('alfresco/doclib@TEST_TYPE$'); record.att('_parent', 'alfresco/doclib@TEST_TYPE$workspace://SpacesStore/16fffdd9-c37a-4d4f-8e40-9e698c8f194f'); // для корня библиотеки следует использовать alfresco/doclib@TEST_TYPE$ record.att('cm:title', 'Папка #1000'); record.att('_type', 'emodel/type@file'); //здесь должен быть один из типов пункта 4 или пункта 5 (по этому типу определяется, что именно нужно создать - папку или файл) record.save();
Получить дочерние элементы по типу:
Records.query({ sourceId: 'alfresco/doclib', query: { parentRef: 'alfresco/doclib@TEST_TYPE$', nodeType: 'DIR' }, language: 'children' });
Поиск дочерних элементов с фильтрацией (для поиска через полосу поиска над таблицей флаг recursive должен быть true):
Records.query({ sourceId: 'alfresco/doclib', query: { parentRef: "alfresco/doclib@TEST_TYPE$", recursive: false, filter: { t: 'contains', att: 'ALL', val: '111' } }, language: 'children' })
Получение пути для документа (можно объединять с другими атрибутами):
Records.get('alfresco/doclib@nsd-attorney$workspace://SpacesStore/fab07cb3-cf5a-4c07-a17a-4e3f56e208d2').load('path[]{disp:?disp,id:?id}')