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
{{ message }}
Repository navigation
ui/script registered with type=files is never loaded on the Files page #1193
So only ExApp top-menu pages get their scripts injected. LoadFilesPluginListener (the Files-page listener) only publishes ex_files_actions_menu and loads AppAPI's own app_api-filesplugin.js; it never calls applyExAppScripts.
Why it matters
An ExApp that registers a Files action via ui/files-actions-menu has no supported way to show progress or a result for it. The action is executed by AppAPI's plugin, which returns true/false and (optionally) honours redirect_handler, so a long-running action can only report success/failure — no progress, no link to its output. The natural approach (ui/script with type=files) silently does nothing.
Concretely: an OCR ExApp enqueues a job and returns 202. The user sees nothing until they refresh the folder, and there is no way to tell a queued job from a failed one.
Reproduction
ExApp registers a script: POST /api/v1/ui/script{"type": "files", "name": "files_action", "path": "js/foo"}
Load /apps/files/ → no <script> for proxy_js/* and no request to /apps/app_api/proxy/<appid>/js/foo.js
The same registration with type: top_menu works, because TopMenuController applies it.
Expected
ui/script (and ui/style) registered for type=files should be injected into the Files page, the same way top_menu entries are injected into their pages — e.g. a LoadAdditionalScriptsEvent listener that calls applyExAppScripts($appId, 'files', '').
Environment
Nextcloud 34.0.5.1
app_api 34.0.0 (checked against main — lib/Listener/ is unchanged there)
Deploy daemon: HaRP on a rootless podman socket (the script itself is served fine through the proxy: GET /index.php/apps/app_api/proxy/<appid>/js/files_action.js → 200 text/javascript; it is simply never referenced)
Hi @max-win-at , thank you for the detailed report and the clear use case!
This isn’t a bug: so far ui/script, ui/style and ui/initial-state are only implemented for type=top_menu, which is also the only type the documentation describes. We will try to see how properly this feature request can be implemented
Activity
oleksandr-nc commentedon Nov 13, 2026
Hi @max-win-at , thank you for the detailed report and the clear use case!
This isn’t a bug: so far
ui/script,ui/styleandui/initial-stateare only implemented fortype=top_menu, which is also the only type the documentation describes. We will try to see how properly this feature request can be implemented