Skip to content

🖼️ Add persistent per-view layout modes (table / tiles / gallery)#2407

Draft
Rello wants to merge 35 commits intomainfrom
codex/implement-persistent-layout-modes-in-nextcloud-tables
Draft

🖼️ Add persistent per-view layout modes (table / tiles / gallery)#2407
Rello wants to merge 35 commits intomainfrom
codex/implement-persistent-layout-modes-in-nextcloud-tables

Conversation

@Rello
Copy link
Copy Markdown
Contributor

@Rello Rello commented Mar 18, 2026

Motivation

  • Implement optional gallery and tile views, as available in SharePoint
  • Both views are using the first column to get the picture url for the preview
  • Tile is only showing the picture plus its title from the 2nd column. Use case: Index pages
  • Gallery view is showing all additional columns from the current view. Use case: Product catalogue or inventory
  • Provide persistent, per-view layout modes so users can choose between table, tiles and gallery and have that preference stored with the view.
  • Expose layout selection in the View settings modal and apply the persisted layout automatically when a view is opened, while keeping backward compatibility (missing/old values => table).

Implementation

Source data

Bildschirmfoto 2026-03-19 um 20 34 35

Tile View

Bildschirmfoto 2026-03-19 um 20 52 47

Gallery View

Bildschirmfoto 2026-03-19 um 20 53 05

Settings modal

Bildschirmfoto 2026-03-19 um 20 54 28

Sharepoint reference

565593259-fda68f2f-2a04-4ace-b1f9-fb2efbc6c77a-2

Signed-off-by: Rello <Rello@users.noreply.github.com>
Signed-off-by: Rello <Rello@users.noreply.github.com>
@Rello Rello linked an issue Mar 18, 2026 that may be closed by this pull request
@Rello
Copy link
Copy Markdown
Contributor Author

Rello commented Mar 18, 2026

@jancborchardt as new layouts will be relevant for your opinion

Copy link
Copy Markdown
Member

@jancborchardt jancborchardt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@marcoambrosini one for you, check it out. :)

@Rello do you have reference screenshots from Sharepoint as you mention?
List and Gallery view currently also look very similar (with Gallery in need of some design improvement).

@Rello Rello marked this pull request as draft March 19, 2026 15:16
Rello added 7 commits March 19, 2026 21:11
Signed-off-by: Rello <Rello@users.noreply.github.com>
Signed-off-by: Rello <Rello@users.noreply.github.com>
Signed-off-by: Rello <Rello@users.noreply.github.com>
Refactor layout handling and improve preview URL generation logic.

Signed-off-by: Rello <Rello@users.noreply.github.com>
Signed-off-by: Rello <Rello@users.noreply.github.com>
Signed-off-by: Rello <Rello@users.noreply.github.com>
@Rello
Copy link
Copy Markdown
Contributor Author

Rello commented Mar 19, 2026

@marcoambrosini can you please have a look now? the PR was now implemented and tested on the branch and I added the actual screenshots from the working app

@Rello Rello marked this pull request as ready for review March 19, 2026 20:37
@jancborchardt jancborchardt moved this to 🏗️ At engineering in 🖍 Design team Mar 30, 2026
@AndyScherzinger AndyScherzinger added enhancement New feature or request 3. to review Waiting for reviews labels Apr 12, 2026
Rello added 3 commits April 13, 2026 09:29
Signed-off-by: Rello <Rello@users.noreply.github.com>
Signed-off-by: Rello <Rello@users.noreply.github.com>
@Rello Rello changed the title Add persistent per-view layout modes (table / tiles / gallery) 🖼️ Add persistent per-view layout modes (table / tiles / gallery) Apr 13, 2026
Rello added 3 commits April 13, 2026 12:02
Signed-off-by: Rello <Rello@users.noreply.github.com>
Added 'layout' property with type and enum options.

Signed-off-by: Rello <Rello@users.noreply.github.com>
Signed-off-by: Rello <Rello@users.noreply.github.com>
Rello added 12 commits April 13, 2026 22:49
Signed-off-by: Rello <Rello@users.noreply.github.com>
Signed-off-by: Rello <Rello@users.noreply.github.com>
Signed-off-by: Rello <Rello@users.noreply.github.com>
Signed-off-by: Rello <Rello@users.noreply.github.com>
Signed-off-by: Rello <Rello@users.noreply.github.com>
Signed-off-by: Rello <Rello@users.noreply.github.com>
Signed-off-by: Rello <Rello@users.noreply.github.com>
Signed-off-by: Rello <Rello@users.noreply.github.com>
Signed-off-by: Rello <Rello@users.noreply.github.com>
Signed-off-by: Rello <Rello@users.noreply.github.com>
Signed-off-by: Rello <Rello@users.noreply.github.com>
Signed-off-by: Rello <Rello@users.noreply.github.com>
Comment thread lib/Migration/Version1000Date20260318000000.php
Copy link
Copy Markdown
Contributor

@enjeck enjeck left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just confirming that the state when there's no image is designer-approved? Here, for a tile view, I don't see why say "No image" instead of just text-based tiling like in https://media.geeksforgeeks.org/wp-content/uploads/20231218102144/Screenshot-2023-12-18-102058.png, for example.

Image

cc @marcoambrosini

Comment thread src/modules/modals/ViewSettings.vue
Comment thread src/modules/modals/ViewSettings.vue
@Rello Rello marked this pull request as draft April 28, 2026 08:37
@Rello
Copy link
Copy Markdown
Contributor Author

Rello commented Apr 28, 2026

@copilot resolve the merge conflicts in this pull request

Copilot AI and others added 2 commits April 28, 2026 08:53
Co-authored-by: Rello <13385119+Rello@users.noreply.github.com>
…lidation; resolve merge conflicts

Agent-Logs-Url: https://github.com/nextcloud/tables/sessions/2d7cf85c-3d14-45ec-bd91-dd9a7bcfc036

Co-authored-by: Rello <13385119+Rello@users.noreply.github.com>
Copy link
Copy Markdown

Copilot AI commented Apr 28, 2026

@copilot resolve the merge conflicts in this pull request

Merge conflicts resolved in commit 539a382 — brought in the pin-column feature from main alongside the card layout changes, with no conflicts remaining.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • download.cypress.io
    • Triggering command: /usr/local/bin/node node dist/index.js --exec install /home/REDACTED/.cache/node-gyp/20.20.2/deps/zlib -I /home/REDACTED/.cache/node-gyp/20.20.2/deps/v8/include -I ../../../../../nan --64 -o Release/obj.target/sshcrypto/src/binding.o --no�� rd (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

@Rello
Copy link
Copy Markdown
Contributor Author

Rello commented Apr 29, 2026

Just confirming that the state when there's no image is designer-approved? Here, for a tile view, I don't see why say "No image" instead of just text-based tiling like in https://media.geeksforgeeks.org/wp-content/uploads/20231218102144/Screenshot-2023-12-18-102058.png, for example.
2BK1ZfxUS9CBdrnTws71-prkJ5-t8t_fhbs">
cc @marcoambrosini

@enjeck what do you mean by this? I am not sure if I understand. what would you show instead of the "no image"?

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

Labels

3. to review Waiting for reviews codex enhancement New feature or request

Projects

Status: 🏗️ At engineering

Development

Successfully merging this pull request may close these issues.

Add view mode: Tiles

7 participants