Skip to content

Commit 77fc451

Browse files
authored
Merge pull request #2270 from pedropintosilva/feat/handle-ui-insert-file
feat: handle UI_InsertFile postMessage from Collabora
2 parents d62af04 + 10e98fe commit 77fc451

2 files changed

Lines changed: 34 additions & 1 deletion

File tree

docker-compose.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ services:
191191
restart: unless-stopped
192192

193193
collabora:
194-
image: collabora/code:25.04.8.2.1
194+
image: collabora/code:25.04.9.4.1
195195
entrypoint: ['/bin/bash', '-c']
196196
command: ['coolconfig generate-proof-key && /start-collabora-online.sh']
197197
environment:

packages/web-app-external/src/App.vue

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -361,6 +361,39 @@ const handlePostMessagesCollabora = async (event: MessageEvent) => {
361361
}),
362362
focusTrapInitial: false
363363
})
364+
return
365+
}
366+
367+
if (message.MessageId === 'UI_InsertFile') {
368+
const callback = message.Values?.callback
369+
const mimeTypeFilter = message.Values?.mimeTypeFilter
370+
371+
dispatchModal({
372+
elementClass: 'file-picker-modal',
373+
title:
374+
callback === 'Action_CompareDocuments'
375+
? $gettext('Select document to compare')
376+
: $gettext('Insert file'),
377+
customComponent: FilePickerModal,
378+
hideActions: true,
379+
customComponentAttrs: () => ({
380+
parentFolderLink: getParentFolderLink(resource),
381+
allowedFileTypes: mimeTypeFilter || [],
382+
callbackFn: async ({ resource }: { resource: Resource }) => {
383+
const { downloadURL: url } = await webdav.getFileInfo(space, resource, {
384+
davProperties: [DavProperty.DownloadURL]
385+
})
386+
387+
const values: Record<string, unknown> = { url }
388+
if (callback === 'Action_CompareDocuments') {
389+
values.filename = resource.name
390+
}
391+
392+
postMessageToCollabora(callback, values)
393+
}
394+
}),
395+
focusTrapInitial: false
396+
})
364397
}
365398
} catch (e) {
366399
console.debug('Error parsing Collabora PostMessage', e)

0 commit comments

Comments
 (0)