Document Manager ожидает URL для загрузки данных:
view:"docmanager", url:"remote/data"
Document Manager ожидает JSON данные, где каждый элемент массива (файл) содержит следующие поля:
Document Manager ожидает JSON данные, где каждый элемент массива (директория) содержит следующие поля:
В зависимости от типа файла сервер генерирует иконки и превью-изображения для них.
Document Manager наследует все публичные сервисы File Manager, а также имеет свои:
1. Local Data
// обновляет данные файла на стороне клиента
const data = {
value:"myadventures.txt",
date: new Date(),
size:1231,
id:"/myadventures.txt",
type:"code"
};
$$("docs").getService("local").updateFile(data.id, {
size: data.size, date: data.date
});
2. LocalUsers
$$("dm").getService("localusers")
.users()
.then(users => {/* Колекция данных */});
3. LocalTags
$$("dm").getService("localtags")
.tags() // доступ к коллекции данных с тэгами
.then(t => {
// "t" это DataCollection со всеми тэгами
const tags = t.serialize(); // массив с тэгами
});
4. Operations
// открывает файл в новой вкладке браузера
const file = {
value:"pixeljuice.pdf",
date: new Date(),
size:7231,
id:"/pixeljuice.pdf",
type:"document"
};
$$("docs").getService("operations").open(file);
5. Backend
const back = $$("dm").getService("backend");
back.folders(id).then((data) => console.log(data));
6. Users
Предоставляет методы для запросов к серверу:
const users = $$("dm").getService("users");
users.comments(commentID); // получаем комментарии файла
7. Tags
Предоставляет методы для запросов к серверу:
const tags = $$("dm").getService("tags");
tags.removeTag(id) // удаляет указанный тэг с сервера
8. Versions
Предоставляет методы для запросов к серверу:
const versions = $$("dm").getService("versions");
versions.versions(id); // получаем историю изменений указанного файла
Смотрите папку models исходного кода, чтобы познакомиться с сигнатурами методов.
Все операции с данными в File Manager применимы к Document Manager. Также у виджета есть дополнительные операции.
Содержимое групповых папок хранятся в коллекциях данных. Каждая коллекция доступна через свойство source. Чтобы получить текущий source, вызовите метод getState:
const source = $$("dm").getState().source;
Чтобы получить файлы из групповой папки, вызовите метод files() у сервиса LocalData. Метод принимает следующие параметры:
const source = $$("dm").getState().source;
const data = $$("dm").getService("local")
.files("/", true, source);
Если вы не уверены, загружена ли директория, можно запросить файлы асинхронно:
const data = $$("dm").getService("local")
.files("/", false, source)
.then(files => {
/* "files" это коллекция данных */
});
Все пользователя хранятся в коллекции данных. Чтобы получить коллекцию, вызовите метод users() у сервиса LocalUsers. Метод принимает следующий параметр:
$$("dm").getService("localusers")
.users()
.then(users => {/* Коллекция данных */});
Все тэги хранятся в коллекции данных. Чтобы получить коллекцию, вызовите метод tags() у сервиса LocalTags. Метод принимает следующий параметр:
$$("dm").getService("localtags")
.tags() // доступ к коллекции данных с тэгами
.then(t => {
const tags = t.serialize(); // массив с тэгами
});
Document Manager поддерживает все операции, доступные в File Manager.
Чтобы удалить все файлы текущей директории, вызовите метод clearAll() у её коллекции:
const data = $$("dm").getService("local");
const path = $$("dm").getState().source;
data.files("/", false, source).then(collection =>
collection.clearAll());
Вы можете очистить локальные коллекции пользователей и тэгов:
data.users().then(collection => collection.clearAll());
data.tags().then(collection => collection.clearAll());
Document Manager поддерживает все операции, доступные в File Manager.
Чтобы обновить содержимое групповой папки, вызовите метод refresh() у LocalData:
const data = $$("dm").getService("local");
const source = $$("dm").getState().source;
data.refresh("/", source);
Чтобы перезагрузить коллекции пользователей и тэгов, вызовите методы users() и tags() соответственно. В качестве аргумента передайте true:
const data = $$("dm").getService("local");
data.users(true);
data.tags(true);
Наверх