enable focus event in OnlyOffice

This commit is contained in:
Xuan Sang LE 2021-03-12 21:02:55 +01:00
parent 24719c93a4
commit b243751aa0
5 changed files with 24 additions and 4 deletions

View File

@ -10,6 +10,7 @@ way to work with multiple documents at the same time.
![https://github.com/lxsang/antosdk-apps/blob/master/OnlyOffice/screenshot.png?raw=true](https://github.com/lxsang/antosdk-apps/blob/master/OnlyOffice/screenshot.png?raw=true)
## Change log
- v 0.1.4a: If the iframe has the same origin with the parent, enable the focus event
- v 0.1.3a: Let backend generates document key, compatible with doc.iohub.dev/office
- v 0.1.2a: generate document key based on username, file path and modified time
- v 0.1.1a: generate document key based on username and file path

View File

@ -4,12 +4,23 @@ class OnlyOffice extends this.OS.application.BaseApplication
@eid = "id#{Math.random().toString(36).replace(".","")}"
main: () ->
@isActive = false
@currfile = undefined
@iframe = undefined
if @args and @args.length > 0
@currfile = @args[0].path.asFileHandle()
@placeholder = @find "editor-area"
@placeholder.id = @eid
@on "focus", (e) =>
@isActive = true
if @iframe
el = $("#id_viewer_overlay", @iframe)
el = $("#ws-canvas-graphic-overlay", @iframe) if el.length is 0
el.trigger("click") if el.length > 0
@on "blur", (e) => @isActive = false
@find("btn-open-file").onbtclick = (e) =>
@openFile()
@ -69,10 +80,15 @@ class OnlyOffice extends this.OS.application.BaseApplication
@open()
editorReady: () ->
console.log $('iframe[name="frameEditor"]', @scheme).contents()
@iframe = $('iframe[name="frameEditor"]', @scheme).contents()[0]
return unless @iframe
$(@iframe).on "mousedown, mouseup, click", (e) =>
return if @isActive
@trigger "focus"
open: () ->
return unless @currfile
@iframe = undefined
@exec("token", {file: @currfile.path})
.then (d) =>
console.log(d)
@ -196,4 +212,7 @@ OnlyOffice.dependencies = [
this.OS.register "OnlyOffice", OnlyOffice
this.extensionParams = {
url: "https://office.iohub.dev/web-apps/"
}
}
# dirty hack that allow subdomain iframes access each other
# FIXME: may be the domain should be defined by ATOS API
document.domain = "iohub.dev" if document.domain is "os.iohub.dev"

View File

@ -7,7 +7,7 @@
"author": "Xuan Sang LE",
"email": "mrsang@iohub.dev"
},
"version":"0.1.3-a",
"version":"0.1.4-a",
"category":"Other",
"icon":"icon.png",
"mimes":[

View File

@ -165,7 +165,7 @@
"description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/OnlyOffice/README.md",
"category": "Other",
"author": "Xuan Sang LE",
"version": "0.1.3-a",
"version": "0.1.4-a",
"dependencies": [],
"download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/OnlyOffice/build/release/OnlyOffice.zip"
},