diff --git a/controller/editorcontroller.php b/controller/editorcontroller.php index bfd63ee7..e588f151 100644 --- a/controller/editorcontroller.php +++ b/controller/editorcontroller.php @@ -677,10 +677,7 @@ public function config($fileId, $filePath = NULL, $shareToken = NULL, $directTok } } - if ($folderLink !== NULL - && $inframe !== 2 - && empty($directToken) //todo: fix in ds 5.5 - ) { + if ($folderLink !== NULL && $inframe !== 2) { $params["editorConfig"]["customization"]["goback"] = [ "url" => $folderLink ]; @@ -688,7 +685,7 @@ public function config($fileId, $filePath = NULL, $shareToken = NULL, $directTok if (!$desktop) { if ($this->config->GetSameTab()) { $params["editorConfig"]["customization"]["goback"]["blank"] = false; - if ($inframe === 1) { + if ($inframe === 1 || !empty($directToken)) { $params["editorConfig"]["customization"]["goback"]["requestClose"] = true; } } diff --git a/js/directeditor.js b/js/directeditor.js index b3d3baab..e29dabd9 100644 --- a/js/directeditor.js +++ b/js/directeditor.js @@ -65,6 +65,9 @@ } OCA.Onlyoffice.directEditor = { + close: function() { + callMobileMessage("close"); + }, loaded: function() { callMobileMessage("loaded"); } diff --git a/js/editor.js b/js/editor.js index 4b54ccb6..2c0c4c4c 100644 --- a/js/editor.js +++ b/js/editor.js @@ -72,14 +72,12 @@ params.push("directToken=" + encodeURIComponent(directToken)); } - if (OCA.Onlyoffice.inframe) { - var dsVersion = DocsAPI.DocEditor.version(); - var versionArray = dsVersion.split("."); - if (versionArray[0] < 5 || versionArray[1] < 5) { - params.push("inframe=2"); - } else { - params.push("inframe=1"); - } + var dsVersion = DocsAPI.DocEditor.version(); + var versionArray = dsVersion.split("."); + if (versionArray[0] < 5 || versionArray[1] < 5) { + params.push("inframe=2"); + } else if (OCA.Onlyoffice.inframe) { + params.push("inframe=1"); } if (OCA.Onlyoffice.Desktop) { @@ -138,11 +136,12 @@ config.events.onAppReady = OCA.Onlyoffice.directEditor.loaded; } - if (OCA.Onlyoffice.inframe) { + if (OCA.Onlyoffice.directEditor || OCA.Onlyoffice.inframe) { config.events.onRequestClose = OCA.Onlyoffice.onRequestClose; - if (config._files_sharing) { - config.events.onRequestSharingSettings = OCA.Onlyoffice.onRequestSharingSettings; - } + } + + if (OCA.Onlyoffice.inframe && config._files_sharing) { + config.events.onRequestSharingSettings = OCA.Onlyoffice.onRequestSharingSettings; } OCA.Onlyoffice.docEditor = new DocsAPI.DocEditor("iframeEditor", config); @@ -266,6 +265,11 @@ }; OCA.Onlyoffice.onRequestClose = function () { + if (OCA.Onlyoffice.directEditor) { + OCA.Onlyoffice.directEditor.close(); + return; + } + window.parent.postMessage({ method: "editorRequestClose" });