diff options
author | Sergey Linnik <sergey.linnik@onlyoffice.com> | 2020-07-14 12:28:55 +0300 |
---|---|---|
committer | Sergey Linnik <sergey.linnik@onlyoffice.com> | 2020-07-16 17:40:00 +0300 |
commit | 3bf531840f504e7fb9c9c3e1080b03594aca2df2 (patch) | |
tree | ea81ba24e6f0d8f23568cc3274a98bd45aefa7bb /js | |
parent | 11f9387a1b7129d7080833a076dad581c0deac39 (diff) |
open history in editor from version side bar
Diffstat (limited to 'js')
-rw-r--r-- | js/editor.js | 19 | ||||
-rw-r--r-- | js/listener.js | 10 | ||||
-rw-r--r-- | js/main.js | 27 |
3 files changed, 55 insertions, 1 deletions
diff --git a/js/editor.js b/js/editor.js index 07d5f94..61a2855 100644 --- a/js/editor.js +++ b/js/editor.js @@ -140,6 +140,10 @@ "onRequestHistoryClose": OCA.Onlyoffice.onRequestHistoryClose, }; + if (OCA.Onlyoffice.inframe) { + config.events.onDocumentReady = OCA.Onlyoffice.onDocumentReady; + } + if (config.editorConfig.tenant) { config.events.onAppReady = function () { OCA.Onlyoffice.docEditor.showMessage(t(OCA.Onlyoffice.AppName, "You are using public demo ONLYOFFICE Document Server. Please do not store private sensitive data.")); @@ -179,7 +183,7 @@ }); }; - OCA.Onlyoffice.onRequestHistory = function () { + OCA.Onlyoffice.onRequestHistory = function (version) { $.get(OC.generateUrl("apps/" + OCA.Onlyoffice.AppName + "/ajax/history?fileId={fileId}&shareToken={shareToken}", { fileId: OCA.Onlyoffice.fileId || 0, @@ -196,6 +200,10 @@ } }); + if (version) { + currentVersion = Math.min(currentVersion, version); + } + data = { currentVersion: currentVersion, history: response, @@ -229,6 +237,15 @@ location.reload(true); }; + OCA.Onlyoffice.onDocumentReady = function() { + if (OCA.Onlyoffice.inframe) { + window.parent.postMessage({ + method: "onDocumentReady" + }, + "*"); + } + }; + OCA.Onlyoffice.onRequestSaveAs = function (event) { var saveData = { name: event.data.title, diff --git a/js/listener.js b/js/listener.js index 3a25edb..f571010 100644 --- a/js/listener.js +++ b/js/listener.js @@ -36,6 +36,7 @@ OCA.Onlyoffice.onRequestClose = function () { $(OCA.Onlyoffice.frameSelector).remove(); + OCA.Onlyoffice.frameSelector = null; if (OCA.Viewer && OCA.Viewer.close) { OCA.Viewer.close(); @@ -77,6 +78,12 @@ revisedMimes); }; + OCA.Onlyoffice.onDocumentReady = function () { + if (OCA.Onlyoffice.bindVersionClick) { + OCA.Onlyoffice.bindVersionClick(); + } + }; + window.addEventListener("message", function (event) { if ($(OCA.Onlyoffice.frameSelector)[0].contentWindow !== event.source || !event.data["method"]) { @@ -108,6 +115,9 @@ case "editorRequestCompareFile": OCA.Onlyoffice.onRequestCompareFile(event.data.param); break; + case "onDocumentReady": + OCA.Onlyoffice.onDocumentReady(); + break; } }, false); @@ -143,6 +143,10 @@ $("body").removeClass("onlyoffice-inline"); $("#onlyofficeHeader").remove(); + if (OCA.Onlyoffice.unbindVersionClick) { + OCA.Onlyoffice.unbindVersionClick(); + } + OCA.Onlyoffice.context = null; var url = OCA.Onlyoffice.folderUrl; @@ -308,6 +312,29 @@ return extension; } + OCA.Onlyoffice.openVersion = function (version) { + if (OCA.Onlyoffice.frameSelector) { + $(OCA.Onlyoffice.frameSelector)[0].contentWindow.OCA.Onlyoffice.onRequestHistory(version); + } + }; + + OCA.Onlyoffice.bindVersionClick = function () { + OCA.Onlyoffice.unbindVersionClick(); + $(document).on("click.onlyoffice-version", "#versionsTabView .downloadVersion", function() { + var versionNodes = $("#versionsTabView ul.versions>li"); + var versionNode = $(this).closest("#versionsTabView ul.versions>li")[0]; + + var versionNum = versionNodes.length - $.inArray(versionNode, versionNodes); + OCA.Onlyoffice.openVersion(versionNum); + + return false; + }); + }; + + OCA.Onlyoffice.unbindVersionClick = function() { + $(document).off("click.onlyoffice-version", "#versionsTabView .downloadVersion"); + } + var initPage = function () { if ($("#isPublic").val() === "1" && !$("#filestable").length) { var fileName = $("#filename").val(); |