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

История документа хранится в сервисе хранения документов. Редактор документов отображает историю документа в виде списка версий на левой панели. При выборе версии документа из списка она будет отображаться для предварительного просмотра.

  1. Пользователь нажимает кнопку История версий при редактировании документа в редакторе документов.
  2. Редактор документов запрашивает список версий документа у службы хранения документов.
  3. Служба хранения документов отправляет список версий документа с номером версии для отображения.
  4. Редактор документов запрашивает информацию о выбранной версии документа у службы хранения документов.
  5. Сервис хранения документов отправляет ссылку на выбранную версию документа.
  6. Редактор документов отображает выбранную версию документа.
    Когда пользователь щелкает другую версию в списке версий документа, редактор документа запрашивает, чтобы информация о версии отображалась заново.
  1. Создайте html-файл, чтобы открыть документ.
  2. Укажите обработчик события открытия списка истории версий в скрипте конфигурации для инициализации редактора документов. При вызове события 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,
            ...
        },
        ...
    });
    
  3. В конфигурационном скрипте для инициализации редактора документов укажите обработчик события, который будет выбирать версию из файла. При вызове события 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.