You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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:
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.
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.
Every app in this organisation that calls
OCA.Viewerhas an issue open, since the global goesaway 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:
openWith(), public sharescanComparelist/enableSidebaroff the globalopen()from its file actionsopenWith('pdf')openWith(), andsetRootElement()which has no replacementLoadViewerlistenerLoadViewerlistenerOpens the viewer, or asks whether a file can be viewed:
open()from nine viewsavailableHandlers,open(),compare()mimetypes,open()availableHandlers,open()mimetypes,open()open()with a hand-built listopen({ path, list })from three componentsopen()from two media fieldsmimetypes,open()open()mimetypes,open()Only dispatches the PHP event, guarded, so nothing breaks and it is dead code to remove:
Needs more than a port:
componentout of the registry andrenders it itself. Handlers expose a
tagnamefor a custom element now, so there is nocomponent to take.
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 sharelayout. 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:
src/viewer.jssrc/viewer.jssrc/viewer.jssrc/viewer-main.js,src/files/pad-opener.jssrc/main.jssrc/main.jssrc/main.jssrc/main.js,src/loaders/types/viewer-api.jssrc/main.tssrc/main.jssrc/files.jssrc/viewer/registerVrmFileAction.tslib/Listener/LoadViewerListener.phplib/AppInfo/Application.phplib/Listener/LoadViewerListener.phplib/AppInfo/Application.phpdrawio/controller/viewercontroller.phpOpens the viewer or tests mime support:
src/utils/viewer.jssrc/personal.jssrc/tools/utils.jssrc/views/ScriptSelect.vuesrc/components/src/components/ContractForm.vue,ContractListItem.vuesrc/App.vuesrc/App.vuelib/Controller/ApiController.phpsrc/actionUtils.tsNote
Two searches were needed to find all of this: one for
OCA.Viewerin javascript, one forOCA\Viewer\Event\LoadViewerin PHP. They return different sets, and four repositories inthis 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.