nextcloud / nextcloud/richdocuments
doxf/oform support
Open
Nobody has claimed this yet.
0. Needs triage
enhancement
- Dominant language
- JavaScript
- Stars
- 453
- Forks
- 147
- Avg merge
- 14h 54m
- Merged PRs (30d)
- 83
Description
- docxf/oform files should already open with Collabora
- tested and it works by renaming them to docx
- mimetype should be known to Nextcloud already https://github.com/nextcloud/server/pull/32481
- there is a bug on 28 preventing the upload
- otherwise it may be enough to extend richdocuments supported mimetypes
- full compatibility in collabora still needs verification
- Collabora does not announce the mimetype/extension in discovery
- Files are read only for now
- WIP branch https://github.com/nextcloud/richdocuments/compare/feat/oform-docxf?expand=1
Patch to add mimetypes for richdocuments and work around missing discovery entry of online:
diff --git a/lib/Capabilities.php b/lib/Capabilities.php
index 96e811dd..f3c795d6 100644
--- a/lib/Capabilities.php
+++ b/lib/Capabilities.php
@@ -70,6 +70,8 @@ class Capabilities implements ICapability {
'application/vnd.ms-powerpoint.presentation.macroEnabled.12',
'application/vnd.ms-powerpoint.template.macroEnabled.12',
'application/vnd.ms-powerpoint.slideshow.macroEnabled.12',
+ 'application/vnd.openxmlformats-officedocument.wordprocessingml.document.oform',
+ 'application/vnd.openxmlformats-officedocument.wordprocessingml.document.docxf',
'text/csv',
];
diff --git a/lib/WOPI/Parser.php b/lib/WOPI/Parser.php
index 8480bef8..cf231cd8 100644
--- a/lib/WOPI/Parser.php
+++ b/lib/WOPI/Parser.php
@@ -64,6 +64,14 @@ class Parser {
];
}
+ $result = $discoveryParsed->xpath(sprintf('/wopi-discovery/net-zone/app[@name=\'%s\']/action', 'application/vnd.oasis.opendocument.text'));
+ if ($result && count($result) > 0) {
+ return [
+ 'urlsrc' => (string)$result[0]['urlsrc'],
+ 'action' => (string)$result[0]['name'],
+ ];
+ }
+
$this->logger->error('Didn\'t find urlsrc for mimetype {mimetype} in this WOPI discovery response: {discovery}', ['mimetype' => $mimetype, 'discovery' => $discovery]);
throw new \Exception('Could not find urlsrc in WOPI');
}
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Review lib/Capabilities.php and lib/WOPI/Parser.php, then inspect the WIP branch and the linked Nextcloud PRs. Verify Collabora discovery and read-only behavior for the oform/docxf mimetypes, and confirm that supported files upload and open correctly once the related dependencies are resolved.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- php
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100