WOPI integration
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 6
- Forks
- 1
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 10
Description
We want to get WOPI integration from the richdocuments/officeonline apps into this one and also cover support for eurooffice.
Required compatibility
- Collabora Online
- Euro-Office document server
- MS Office Online Server
Acceptance criteria
To be defined
- https://github.com/Microsoft/wopi-validator-core
- Write down full feature set of richdocuments
- Write down full feature set of eurooffice
Feature set that would be needed for richdocuments parity
1. Opening & Creating Documents
- Open existing files from the Files app (right-click or single click)
- Text documents: ODT, DOCX, DOC, DOTX, RTF
- Spreadsheets: ODS, XLSX, XLS, XLTX, CSV
- Presentations: ODP, PPTX, PPT, POTX
- Other: PDF, SVG, plain text, ODG, VSDX, Pages, Numbers, Keynote
- Create new files from the Files "+" menu
- Text document
- Spreadsheet
- Presentation
- Drawing
- Template picker when creating a new file
- Visual previews of available templates
- Custom filename entry with validation
- Templates from system, admin-configured, and personal folder
- Personal template folder — designate any Nextcloud folder as a personal template library (via Personal Settings)
2. Saving & Exporting
- Auto-save — changes saved automatically during editing
- Save As — save a copy with a new name and/or location using the Nextcloud file picker
- Export As — convert to a different format
- Examples: DOCX → PDF, ODS → XLSX, ODT → RTF
- Exported file appears in Nextcloud Files automatically
- Download — download the current document directly from the editor toolbar
3. Real-Time Collaboration
- Follow user — click a collaborator's avatar to follow their cursor and view
- @mentions — type
@in comments to notify users, with autocomplete suggestions - File locking — active editing sessions lock the file to prevent conflicting saves
4. Sharing
- Share panel shortcut — open Nextcloud's share dialog directly from the editor toolbar
- Public share links
- Edit or view-only depending on share permissions
- Password-protected shares — password prompt before opening
- Guest access on public shares
- Anonymous users can enter a display name (before or after joining)=
- Guest cursors and avatars shown to other collaborators
- Federated sharing — co-edit documents with users on other Nextcloud instances
- Remote users appear with their avatar and display name
5. Inserting Nextcloud Content
- Insert image — pick an image from Nextcloud Files and embed it inline
- Insert link — use the smart picker to link to Nextcloud files, folders, or resources
- Insert file attachment — embed a file from Nextcloud storage into the document
- AI content (requires Nextcloud Assistant)
- Insert AI-generated text
- Insert AI-generated images
6. Document Versions
- Open a previous version of a document (always read-only)
- Version history accessible from the Nextcloud Files version panel
7. Permission-Aware UI
Features shown or hidden automatically based on file and share permissions:
- Edit toolbar — hidden when user has view-only access; document opens in read-only mode
- Download button — hidden if download is disabled on the share
- Print option — disabled if download is blocked
- Export / Copy — disabled based on share settings
- Rename — hidden in read-only mode
- Share button — hidden if the user has no share permission
- Watermark — displayed on "secure view" shares to deter screenshots
8. Personal Settings
Located in Nextcloud → Settings → Personal → Nextcloud Office:
- Personal template folder — set a Nextcloud folder as the source for personal templates (could become a server feature)
- Document signing credentials (if enabled by admin) (can be skipped if collabora has this in the iframe these days)
- Upload signing certificate (PEM)
- Upload signing key
- Upload CA chain certificate
- Zotero API key — configure citation/bibliography management (can be skipped if collabora has this in the iframe)
- Collabora settings panel (embedded iframe) — user preferences managed by Collabora
- UI layout preferences
- Keyboard shortcuts
- Regional / locale settings
- Accessibility options
- Font preferences
9. Desktop & Mobile
- Open in Desktop Editor button (if enabled by admin)
- Hands off the file to the Nextcloud desktop client's local office app
- Shows a warning that the online session will close
10. Document Signing (if enabled by admin)
- Sign documents directly from the editor
- Integration with eID Easy electronic signature service
- Signing credentials managed in Personal Settings (see above)
11. Zotero / Citation Management (if enabled)
- Set a Zotero API key in Personal Settings
- Insert citations and bibliographies from your Zotero library inside documents
- Notification shown when API key is missing but citations are needed
12. Status & Notifications
- Loading indicator — spinner with status messages while Collabora initialises
- Modified indicator — shows unsaved/modified state, notify files app if save state changes
- Document type favicon — browser tab icon reflects file type (Writer, Calc, Impress, Draw)
- Session warnings — alert when switching to local editor or when a session is closed by the file owner
- Error messages — contextual errors if loading fails (e.g., connectivity issues)
- Zotero notification — prompt to set API key when needed
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
Start by reviewing the richdocuments/officeonline implementation and the linked WOPI validator and Collabora API documentation. Define concrete acceptance criteria for Collabora Online, Euro-Office, and MS Office Online, including which parts of the listed feature set are in scope; the work is done when those criteria and the required feature coverage are documented and implemented.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- api, web-dev
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100