Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ONLYOFFICE/onlyoffice-nextcloud.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorSergey Linnik <sergey.linnik@onlyoffice.com>2020-07-14 12:28:55 +0300
committerSergey Linnik <sergey.linnik@onlyoffice.com>2020-07-16 17:40:00 +0300
commit3bf531840f504e7fb9c9c3e1080b03594aca2df2 (patch)
treeea81ba24e6f0d8f23568cc3274a98bd45aefa7bb /js
parent11f9387a1b7129d7080833a076dad581c0deac39 (diff)
open history in editor from version side bar
Diffstat (limited to 'js')
-rw-r--r--js/editor.js19
-rw-r--r--js/listener.js10
-rw-r--r--js/main.js27
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);
diff --git a/js/main.js b/js/main.js
index 9280587..2e56bbb 100644
--- a/js/main.js
+++ b/js/main.js
@@ -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();