Skip to content

feat!: require Nextcloud 36 and use its viewer only - #1375

Draft
skjnldsv wants to merge 3 commits into
mainfrom
feature/viewer-36-only
Draft

skjnldsv wants to merge 3 commits into
mainfrom
feature/viewer-36-only

Conversation

@skjnldsv

@skjnldsv skjnldsv commented Oct 7, 2026

Copy link
Copy Markdown
Member

Alternative to #1374, to compare: the same port to the viewer of Nextcloud 36, but main requires 36 and drops 31 to 35.

The first two commits are #1374. The last one is the difference: it removes the LoadViewer listeners, the Vue component registered with OCA.Viewer, the public share runtime and its styles, the comparison lookup through OCA.Viewer.compareFileInfo and the LoadViewer stub. That is 918 lines out and 35 in compared to #1374. main.ts keeps the recording and direct editing pages only.

Taking this means cutting stable2.0 for 31 to 35 first, since releases from main would then only install on 36.

On 36 the server opens a publicly shared board in the viewer itself, so the full-page public share layout goes away: the board shows in the viewer modal instead. I checked opening a board, an older version and a public share on a master instance, without console errors. Playwright now runs against master only.

👾 This pull request was assisted by Claude Code, commits carry an Assisted-by trailer.

The viewer is part of the server from 36: the setup installed the app anyway and then failed reading its checkout, so no end-to-end test ran against master.

Assisted-by: ClaudeCode:claude-opus-5-5
Signed-off-by: John Molakvoæ <14975046+skjnldsv@users.noreply.github.com>
The viewer moved into the server as @nextcloud/viewer, which takes handlers
as custom elements and no longer dispatches LoadViewer or offers
OCA.Viewer.registerHandler. On 36 and up, a small init script now registers
a <whiteboard-viewer> element on every page, defined the first time a
board opens. It renders the board as before: read-only outside the viewer
(the preview of a link to the file) and side by side with another version,
and an older version from its own source.

Servers up to 35 keep the viewer app's LoadViewer path. The main script
skips its legacy registration on 36, where it still runs as the board
shares chunks with it.

Assisted-by: ClaudeCode:claude-opus-5-5
Signed-off-by: John Molakvoæ <14975046+skjnldsv@users.noreply.github.com>
From Nextcloud 36 the viewer is part of the server, with its own handler
API, so supporting older servers meant carrying both registrations. This
drops 31 to 35: the LoadViewer listeners, the Vue component registered
with OCA.Viewer, the public share runtime and its styles (the server opens
a shared board in the viewer itself), the comparison lookup through
OCA.Viewer.compareFileInfo, and the LoadViewer stub.

The main script is left with the pages whiteboard renders itself:
recording and direct editing. Playwright runs against master only.

Assisted-by: ClaudeCode:claude-opus-5-5
Signed-off-by: John Molakvoæ <14975046+skjnldsv@users.noreply.github.com>
@skjnldsv skjnldsv added enhancement New feature or request 2. developing labels Oct 7, 2026
@skjnldsv skjnldsv self-assigned this Oct 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

2. developing enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant