Вы можете просмотреть историю изменений документа используя редактор документов.

Примечание: История изменений на данный момент доступна лишь для текстовых документов.

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

  1. Пользователь нажимает на кнопку История версий, во время редактирования документа в редакторе документов.
  2. Редактор документов запрашивает список версий документа из сервиса хранения документов.
  3. Сервис хранения документов отправляет список версий документа с номером версии для отображения.
  4. Редактор документов запрашивает информацию о выбранной версии документа из сервиса хранения документов.
  5. Сервис хранения документов отправляет ссылку на выбранную версию документа.
  6. Редактор документов отображает выбранную версию документа.
  7. Когда пользователь нажимает на другую версию в списке версий документа, редактор документов запрашивает информацию о версии, чтобы снова отобразить её.
  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": "Елена Иванова"
                    },
                    "version": 1
                },
                {
                    "created": "07.07.2010 15:46 AM",
                    "key": "Khirz6zTPdfd7",
                    "user": {
                        "id": "78e1e841",
                        "name": "Иван Петров"
                    },
                    "version": 2
                },
                ...
            ]
        });
    };
    
    var docEditor = new DocsAPI.DocEditor("placeholder", {
        "events": {
            "onRequestHistory": onRequestHistory,
            ...
        },
        ...
    });
  3. Для инициализации Редактора документов, в скрипте конфигурации укажите обработчик событий, который будет выбирать версию из истории версий. Когда вызывается событие onRequestHistoryData, должен быть выполнен метод setHistoryData. Этот метод содержит абсолютную ссылку на файл, соответствующий выбранной версии.

    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. Откройте Историю версий в меню редактора документов.

Если версия документа была создана в редакторе документов, то изменения документа могут быть показаны при просмотре истории документа. Чтобы добиться этого, при сохранении текущей редактируемой версии документа отдельно от других, в сервисе хранения документов должна быть сохранена дополнительная информация. После работы в редакторе документов информация об изменениях, выполненных во время последней рабочей сессии, отправляется вместе с изменённым документом:

  • history - эта информация позволяет отображать время создания/редактирования и автора для каждой версии документа, когда вы просматриваете историю изменений документа в боковой панели. Должна быть отправлена как свойство изменений объекта, переданного методу refreshHistory в качестве аргумента.

    docEditor.refreshHistory({
        "currentVersion": 2,
        "history": [
            {
                "changes": changes, // changes от объекта истории возвращаются после сохранения документа
                "created": "2010-07-06 10:13 AM",
                "key": "af86C7e71Ca8",
                "serverVersion": serverVersion, // serverVersion возвращается объектом истории после сохранения документа
                "user": {
                    "id": "F89d8069ba2b",
                    "name": "Елена Иванова"
                },
                "version": 1
            },
            {
                "changes": changes,
                "created": "07.07.2010 15:46 AM",
                "key": "Khirz6zTPdfd7",
                "serverVersion": serverVersion,
                "user": {
                    "id": "78e1e841",
                    "name": "Иван Петров"
                },
                "version": 2
            },
            ...
        ],
    });
  • Changesurl - абсолютная ссылка на файл с данными о редактировании документа, используемый для показа изменений, относящихся к конкретной версии документа. Файл должен быть сохранён, а его адрес должен быть отправлен как параметр 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 - имя сервера, на котором установлен Сервер документов. Для его корректной работы должно быть разрешено совместное использование ресурсов между разными источниками (CORS). Этого можно добиться используя заголовок Access-Control-Allow-Origin.