В добавок к Backend Service у Document Manager есть сервисы Users и Tags для работы на сервере.
Document Manager это серверноориентированный компонент, который ожидает загрузку данных по URL. Вы можете передать ссылку на сервер через параметр url:
webix.ui({
view: "docmanager",
url:"http://localhost:3200/"
});
Вы также можете скачать готовый бэкенд для Document Manager.
Если у вас нет бэкенд сервера, вы можете переопределить методы сервиса Backend и возвращать промисы с клиентскими данными.
Иконки и превью-изображения для файлов генерируются сервисом Backend.
Document Manager не загружает все данные сразу. Что загружается сразу:
Содержимое остальных директорий подгружается по необходимости и кэшируется:
Сервис Backend это серверная модель, у которой есть методы для запросов на сервер.
Смотрите полный список методов ниже.
Принцип переопределения модели такой же, как и для File Manager:
1. Создать свой бэкенд сервис и наследовать его от сервиса по умолчанию.
2. Переопределить сервис с помощью свойства override.
class MyBackend extends docManager.services.Backend {
// новые методы
}
webix.ui({
view: "docmanager",
url: "https://docs.webix.com/docmanager-backend/",
override: new Map([[docManager.services.Backend, MyBackend]]),
});
Вы можете отправлять AJAX запросы своему серверу:
class MyBackend extends docManager.services.Backend {
files(id, source) {
return webix.ajax("//localhost:3200/files", { id, source })
.then((data) => data.json());
}
}
В случае необходимости вы можете вернуться клиентские данные промисом:
class MyBackend extends docManager.services.Backend {
getInfo() {
return Promise.resolve({
stats:{
free: 52 * 1000 * 1000,
total: 250 * 1000 * 1000,
used: 198.4 * 1000 * 1000,
}
});
}
}
Related sample: Document Manager: Data Source
Помимо базовых методов, как у сервиса Backend в File Manager, у Document Manager есть свои специфические методы. Ниже вы найдёте описания следующих из них:
Метод переопределяет аналогичный метод сервиса Backend в File Manager. Вызывается, когда пользователь открывает указанную директорию.
Parameters:
Returns: промис с массивом объектов файлов.
Request:
GET http://localhost:3200/files?id=%2F&source=shared
Response:
Сервер возвращает массив объектов файлов в директории.
[
{"value":"lalala.txt","id":"/lalala.txt","size":0,
"date":1587121183,"type":"code","users":[4,2,1,3]
},
{"value":"New file.txt","id":"/widgets/New file.txt","size":0,
"date":1587133267,"type":"code","star":true,"users":[1,2]
},
// другие объекты
]
Полностью удаляет файл или папку. Метод вызывается, когда пользователь удаляет файл или папку из корзины (Trash).
Parameters:
Returns: промис с ответом сервера ("success" или "error").
Request:
DELETE http://localhost:3200/delete?id=259
В случае ошибки, сервер возвращает объект со следующими данными:
{
invalid: true,
err: "Some error message here"
}
Восстанавливает удалённые файлы из корзины (Trash).
Parameters:
Returns: промис с объектом файла/папки.
Request:
PUT http://localhost:3200/delete
Form Data
id: 258
Response:
Сервер возвращает объект файла/папки.
{
"value":"New file.txt","id":"/123/New file.txt","size":0,
"date":1587128389,"type":"code"
}
В случае ошибки, сервер возвращает объект со следующими данными:
{
invalid: true,
err: "Some error message here"
}
Вызывается, когда пользователь добавляет новые файл/папку в избранное (Favorite).
Parameters:
Returns: промис с ответом сервера ("success" или "error").
Request:
POST http://localhost:3200/favorite
Form Data
id: /mycat.png
Вызывается, когда пользователь удаляет файл/папку из избранного (Favorite).
Parameters:
Returns: промис с ответом сервера ("success" или "error").
Request:
DELETE http://localhost:3200/favorite?id=%2Fmycat.png
Вызывается при сохранении бинарных файлов (в Document Manager используется для сохранения файлов Excel).
Parameters:
Returns: промис с объектом файла.
Request:
POST http://localhost:3200/direct?id=%2FSpread.xlsx
Form Data
upload: (binary)
Response:
Сервер возвращает объект файла.
{
"value":"Spread.xlsx","id":"/Spread.xlsx","size":129848,
"date":1587383690,"type":"file"
}
Сервис работает с операциями над пользователями.
Используется другими методами для подготовки URL к запросам.
Parameters:
Returns: абсолютный путь.
Вызывается, когда пользователь открывает превью файла.
Returns: промис с массивом объектов пользователей.
Request:
GET http://localhost:3200/users/all
Response:
Сервер возвращает массив объектов пользователей.
[
{"id":1,"name":"Alastor Moody","email":"alastor@ya.ru",
"avatar":"/users/1/avatar/1.jpg"},
{"id":2,"name":"Sirius Black","email":"sirius@gmail.com",
"avatar":"/users/3/avatar/3.jpg"}
]
Делится файлом/папкой с другими пользователями. Такие файлы/папки попадают в групповую папку Shared.
Parameters:
Returns: промис с ответом сервера ("success" или "error").
Request:
POST http://localhost:3200/share
Form Data
id: /mycat.png
user: 3
Удаляет пользователя из списка тех, у кого есть доступ к файлу или директории.
Parameters:
Returns: промис с ответом сервера ("success" или "error").
Request:
DELETE http://localhost:3200/share?id=%2Fmycat.png&user=3
Вызывается, когда пользователь открывает комментарии к файлу.
Parameters:
Returns: промис с массивом объектов комментариев (пустой массив, если комментариев нет).
Request:
GET http://localhost:3200/comments?id=%2Fmycat.png
Response:
Сервер возвращает массив объектов комментариев, если таковые есть.
[
{
"id":45,"text":"He's my patronus!!","date":"2020-04-20T07:56:49Z","user_id":1
}
]
Добавляет комментарий под указанным файлом.
Parameters:
Returns: промис с ответом сервера ("success" или "error").
Request:
POST http://localhost:3200/comments?id=%2Fmycat.png
Form Data
value: Accio!
Обновляет указанный комментарий.
Parameters:
Returns: промис с ответом сервера ("success" или "error").
Request:
PUT http://localhost:3200/comments/1
Form Data
value: Edited text
Удаляет указанный комментарий.
Parameters:
Returns: промис с ответом сервера ("success" или "error").
Request:
DELETE http://localhost:3200/comments/1
Сервис работает с операциями над тэгами.
Используется другими методами для подготовки URL к запросам.
Parameters:
Returns: абсолютный путь.
Вызывается, когда пользователь открывает превью файла.
Returns: промис с массивом объектов тэгов (пустым массивом, если тэгов нет).
Request:
GET http://localhost:3200/tags/all
Response:
Сервер возвращает промис с массивом объектов тэгов.
[
{"id":1,"name":"Review","value":"Review"},
{"id":2,"name":"Accepted","value":"Accepted"},
{"id":3,"name":"Denied","value":"Denied"},
{"id":4,"name":"Personal","value":"Personal"}
]
Создаёт новый тэг.
Parameters:
Returns: промис с ответом сервера ("success" или "error").
Request:
POST http://localhost:3200/tags
Form Data
name: New
color: #0bbed7
Response:
Сервер возвращает объект созданного тэга.
{
"id":13,
"name":"New",
"value":"New",
"color":"#0bbed7"
}
Обратите внимание, что длина названия тэга не может превышать 32-х символов. Если вам необходима произвольная допустимая длина, необходимо настроить соответствующую таблицу на бэкенде.
Обновляет указанный тэг.
Parameters:
Returns: промис с ответом сервера ("success" или "error").
Request:
PUT http://localhost:3200/tags/13
Form Data
name: University
color: #c87095
Response :
Сервер возвращает объект тэга.
{
"id":13,
"name":"University",
"value":"University",
"color":"#c87095" // цвет был изменён
}
Обратите внимание, что длина названия тэга не может превышать 32-х символов. Если вам необходима произвольная допустимая длина, необходимо настроить соответствующую таблицу на бэкенде.
Удаляет указанный тэг.
Parameters:
Returns: промис с ответом сервера ("success" или "error").
Request:
DELETE http://localhost:3200/tags/3
Вызывается, когда пользователь открывает превью указанного файла.
Parameters:
Returns: промис с массивом объектов тэгов (пустым массивом, если тэгов нет).
Request:
GET http://localhost:3200/tags?id=%2FNew%20file.txt
Response:
Сервер возвращает массив c ID тэгов.
[
4,2
]
Добавляет тэг указанному файлу.
Parameters:
Returns: промис с ответом сервера ("success" или "error").
Request:
PUT http://localhost:3200/tags
Form Data
id: /New file.txt
value: 0,1
Сервис для работы с историей редактирования текстовых файлов (тип "code") и таблиц Excel. У сервиса есть следующие методы:
Используется другими методами для подготовки URL к запросам.
Parameters:
Returns: абсолютный путь.
Вызывается, когда пользователь открывает историю изменений указанного файла.
Parameters:
Returns: промис с массивом всех версий (пустым массивом, если история версий пуста).
Request:
GET http://localhost:3200/versions?id=%2Fdocker-compose.yml
Response:
Сервер возвращает массив объектов версий.
[
{
"id":20,
"date":"2020-07-07T08:51:00Z",
"user":1,
"content":"",
"origin":null
}
]
Вызывается, когда пользователь выбирает версию файла из списка.
Parameters:
Returns: промис со сравнением версий файла.
Request:
GET http://localhost:3200/versions/20?mode=text&diff=true
Form Data
mode: text
Response:
Сервер возвращает HTML строку:
`
<span>version: "3"
services:
worker:
networks:
- app
- web
restart: always
</span><span class='webix_docmanager_diff_remove'>↲<br></span>
<span class='webix_docmanager_diff_insert'>someNewKey<br></span>
`
Вызывается, когда пользователь восстанавливает указанную версию.
Parameters:
Returns: промис с данными версии.
Request:
POST http://localhost:3200/versions
Form Data
id: /docker-compose.yml
version: 26
Response:
Сервер возвращает объект файла:
{
"value":"docker-compose.yml",
"id":"/docker-compose.yml",
"size":162,
"date":1594114235,
"type":"code"
}
Вызывается при открытии файла Excel.
Parameters:
Returns: URL для запроса к Excel файлу.
Наверх