Вы можете просмотреть историю текстовых документов, электронных таблиц или презентаций с помощью редактора документов.
История документа хранится в сервисе хранения документов. Редактор документов отображает историю документа в виде списка версий на левой панели. При выборе версии документа из списка она будет отображаться для предварительного просмотра:
- Пользователь нажимает кнопку История версий при редактировании документа в редакторе документов.
- Редактор документов запрашивает список версий документа у службы хранения документов.
- Служба хранения документов отправляет список версий документа с номером версии для отображения.
- Редактор документов запрашивает информацию о выбранной версии документа у службы хранения документов.
- Сервис хранения документов отправляет ссылку на выбранную версию документа.
- Редактор документов отображает выбранную версию документа.
Когда пользователь щелкает другую версию в списке версий документа, редактор документа запрашивает, чтобы информация о версии отображалась заново.
Как это можно сделать на практике
- Создайте html-файл, чтобы открыть документ.
- Укажите обработчик события открытия списка истории версий в скрипте конфигурации для инициализации редактора документов. При вызове события onRequestHistory должен быть выполнен метод refreshHistory . Этот метод содержит историю документа для каждой версии документа, если параметр истории присутствовал для каждой версии:
var onRequestHistory = function() { docEditor.refreshHistory({ "currentVersion": 2, "history": [ { "created": "2010-07-06 10:13 AM", "key": "af86C7e71Ca8", "user": { "id": "F89d8069ba2b", "name": "Kate Cage" }, "version": 1 }, { "created": "2010-07-07 3:46 PM", "key": "Khirz6zTPdfd7", "user": { "id": "78e1e841", "name": "John Smith" }, "version": 2 }, ... ] }); }; var docEditor = new DocsAPI.DocEditor("placeholder", { "events": { "onRequestHistory": onRequestHistory, ... }, ... }); - В конфигурационном скрипте для инициализации редактора документов укажите обработчик события, который будет выбирать версию из файла. При вызове события onRequestHistoryData должен выполняться метод setHistoryData. Этот метод содержит абсолютный URL-адрес файла соответствующей версии:
var onRequestHistoryData = function(event) { var version = event.data; docEditor.setHistoryData({ "key": "Khirz6zTPdfd7", "url": "https://example.com/url-to-example-document.docx", "version": version }) }; var docEditor = new DocsAPI.DocEditor("placeholder", { "events": { "onRequestHistoryData": onRequestHistoryData, ... }, ... });
4. Откройте ваш html-файл в браузере.
5. Откройте пункт «История версий» в меню «Редактор документов».
Открытие истории документа с выделением изменений
Если версия документа была создана с помощью редактора документов, то изменения документа могут быть отображены при просмотре истории документа. Для этого дополнительные данные должны быть сохранены в службе хранения документов при сохранении сеанса редактирования рядом с самими версиями документа. После редактирования в редакторе документов информация об изменениях во время сеанса редактирования отправляется вместе с измененным документом:
- история — эта информация позволяет отображать время и автора для каждой версии документа при просмотре истории документа на боковой панели. Должен быть отправлен как изменение свойств объекта, передаваемого в качестве аргумента методу refreshHistorymethod:
docEditor.refreshHistory({
"currentVersion": 2,
"history": [
{
"changes": changes,
"created": "2010-07-06 10:13 AM",
"key": "af86C7e71Ca8",
"serverVersion": serverVersion,
"user": {
"id": "F89d8069ba2b",
"name": "Kate Cage"
},
"version": 1
},
{
"changes": changes,
"created": "2010-07-07 3:46 PM",
"key": "Khirz6zTPdfd7",
"serverVersion": serverVersion,
"user": {
"id": "78e1e841",
"name": "John Smith"
},
"version": 2
},
...
],
});
Где:
- изменения — это изменения из объекта истории возвращенные после сохранения документа;
- serverVersion — это serverVersion из объекта истории, возвращенного после сохранения документа.
Р7 Document Server выделяет изменения, сделанные с начала текущего сеанса работы с документом, а не с начала версии документа. И даже если за один сеанс создается несколько версий документа, все изменения из этого сеанса будут выделены. Таким образом, вы не можете видеть версии документов, созданные с опцией принудительного сохранения , в истории документов:
- changesurl — абсолютный URL-адрес файла с данными редактирования документа, используемый для отображения изменений, соответствующих конкретной версии документа. Файл необходимо сохранить, а его адрес передать в качестве параметра changesUrl с помощью метода setHistoryData. В объект необходимо добавить ссылку на предыдущую версию документа (previous.url):
docEditor.setHistoryData({
"changesUrl": "https://example.com/url-to-changes.zip",
"key": "Khirz6zTPdfd7",
"previous": {
"key": "af86C7e71Ca8",
"url": "https://example.com/url-to-the-previous-version-of-the-document.docx"
},
"url": "https://example.com/url-to-example-document.docx",
"version": 2
});
Запрос changesurl делается в браузере из добавленного iframe с доменом documentserver, где documentserver — это имя сервера, на котором установлен Сервер документов Р7. Для его корректной работы должны быть разрешены кросс-оригинальные HTTP-запросы (CORS). Этого можно добиться с помощью заголовка Access-Control-Allow-Origin.








