Skip to content

Track apps migrating off the OCA.Viewer global #17

Description

@skjnldsv

Every app in this organisation that calls OCA.Viewer has an issue open, since the global goes
away with nextcloud/server#63954. This is the list to tick off, plus what a wider search across
GitHub turned up.

Issues open

Registers a handler, or loads the script that does, so the file type stops opening at all
rather than losing an action:

Opens the viewer, or asks whether a file can be viewed:

Only dispatches the PHP event, guarded, so nothing breaks and it is dead code to remove:

Needs more than a port:

Note

None of these gate nextcloud/server#63954. The 36 development cycle is just starting and
breaking changes land gradually, so this is a list to work through during the cycle rather
than a set of merge blockers.

The nine in the first group are still the ones worth doing first, since their file types stop
opening rather than losing an action, and two of them fail silently: whiteboard and
integration_excalidraw hang everything off a listener for OCA\Viewer\Event\LoadViewer,
which stops existing, so the listener never fires and nothing is logged.

Note

One thing surfaced while writing these up that the library has no answer for:
setRootElement(), which files_mindmap uses to mount the viewer inside the public share
layout. The viewer mounts its own container on the body and cannot be asked to mount
elsewhere.

Outside the organisation

Listed for the record, no issues opened there. Most are app store apps and several exist only to add a
file view, so the handler API change hits them hardest.

Registers a handler:

App Where
ONLYOFFICE/onlyoffice-nextcloud src/viewer.js
Euro-Office/eurooffice-nextcloud src/viewer.js
otetard/ownpad src/viewer.js
ether/etherpad-integration-for-nextcloud src/viewer-main.js, src/files/pad-opener.js
ayselafsar/dicomviewer src/main.js
elbandi/nextcloud-pannellum src/main.js
v1r0x/files_3d src/main.js
maz1987in/3Dviewer-Nextcloud src/main.js, src/loaders/types/viewer-api.js
ashcoft/nextcloud-cad-viewer src/main.ts
devnoname120/nextcloud-htmlviewer src/main.js
devnoname120/nextcloud-file-viewer tests assert handler order
reactivepad/nextcloud-text2 src/files.js
kinakomochi-0315/nextcloud-vrm-viewer src/viewer/registerVrmFileAction.ts
WARP-LAB/files_3dmodelviewer lib/Listener/LoadViewerListener.php
Yetangitu/files_reader lib/AppInfo/Application.php
devnoname120/epubviewer lib/Listener/LoadViewerListener.php
ariselseng/camerarawpreviews lib/AppInfo/Application.php
pawelrojek/nextcloud-drawio drawio/controller/viewercontroller.php

Opens the viewer or tests mime support:

App Where
LibreSign/libresign src/utils/viewer.js
matiasdelellis/facerecognition src/personal.js
eldertek/duplicatefinder src/tools/utils.js
Raudius/files_scripts src/views/ScriptSelect.vue
marcbenedi/mediadc three components under src/components/
cpcMomentum/contractmanager src/components/ContractForm.vue, ContractListItem.vue
37Rb/nextcloud-hledger src/App.vue
AndiMb/nc_vereinsbuchhaltung src/App.vue
jospoortvliet/reel lib/Controller/ApiController.php
skjnldsvOrg/office_switcher src/actionUtils.ts

Note

Two searches were needed to find all of this: one for OCA.Viewer in javascript, one for
OCA\Viewer\Event\LoadViewer in PHP. They return different sets, and four repositories in
this organisation only showed up in the second.

This is still a floor, not a census. GitHub code search caps each query at 100 results and only
indexes default branches of public repositories, so anything on a non-default branch, in a
private repository, or beyond the cap is missing. Forks of server and of the apps above,
personal sandboxes and demo images were filtered out; a handful of ambiguous ones may have
gone with them.

Getting the word out

Filing on twenty-odd third party trackers is not the way to do this. A release note and a
developer blog or forum post, pointing at the
migration table,
reaches them better and does not put an unsolicited issue on a one person project.

👾 This issue was written with the help of Claude Code.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions