nextcloud / nextcloud/tables

Feature Request: Location‑Based Row Visibility for Embedded Tables

Open
#1,340 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

0. Needs triage enhancement
Dominant language
JavaScript
Stars
214
Forks
52
Avg merge
1d 10h
Merged PRs (30d)
82

Description

Edit completely re-written with the help of AI to clarify the needs.


Feature Request: Location‑Based Row Visibility for Embedded Tables

Problem Description

Organizations often need to enforce procedures and rules across multiple teams while keeping certain data isolated. Nextcloud already provides strong file‑level permissions for reading and writing, but the Tables app lacks a way to dynamically filter table rows based on where the table is embedded.

Today, when a table is embedded into a file, the embedded view always uses the filter defined in the table’s settings. This forces administrators to create many separate filtered views—one per team, per file, or per folder—just to control which rows appear in each embedded instance.

This becomes unmanageable when the same table must be reused across many locations while showing different subsets of data.


Proposed Solution

1. Introduce a New Filter Type: “Location‑Based View”

Add a new type of filtered view that automatically filters rows based on the file or folder in which the table is embedded.

2. Add a New Column Type: “File/Folder Visibility”

Each row would include a new column type where users can assign one or more file or folder locations. These locations determine where the row is visible when the table is embedded.

  • If a folder is selected:
    The row becomes visible in any file inside that folder that embeds the table.

  • If a file is selected:
    The row becomes visible only in that specific file.

  • If no location is set:
    The row is visible only in the full table view inside the Tables app, not in any embedded instance.

3. Behavior When Embedding a Table

When a table is embedded into a file:

  • The embedded view automatically applies the “Location‑Based View”.
  • Only rows whose “File/Folder Visibility” column matches the file’s location are shown.
  • No additional filtered views need to be created manually.

This dramatically reduces the number of filtered views required.


Example Use Case

Context

To comply with GDPR, an organization wants to track contacts in a centralized table but ensure that each team only sees its own contacts.

Setup
  1. Create a single “Contacts” table in the Tables app.
  2. In /Collectives/, create four folders, each containing a file named File A:
    • /project nextcloud/File A
    • /project super top/File A
    • /huh/File A
    • /why not/File A
  3. Embed the Contacts table into each File A.
Row Creation

When a user adds a new row from within an embedded table:

  • The system automatically sets the “File/Folder Visibility” column to the file’s location.
  • Example:
    • Contact 1 created in /project nextcloud/File A
    • Contact 2 created in /project super top/File A
    • Contact 3 created in /huh/File A
    • Contact 4 created in /why not/File A

Each team sees only its own contacts, even though all data lives in one centralized table.

Additional Views
  • Create a new file E in /Collectives/ and embed the table.
    → All contacts become visible because the folder /Collectives/ contains all subfolders.

  • Create a new file J in /Collectives/ with an additional filter “folder name contains ‘project’”.
    → Only contacts 1 and 2 appear.


Benefits

  • Massively reduces the number of filtered views needed.
  • Allows a single table to serve many teams without exposing data across teams.
  • Enables dynamic, context‑aware filtering based on where the table is embedded.
  • Supports GDPR workflows by centralizing data while controlling visibility.
  • Makes embedded tables far more powerful and flexible.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue names no files, tests, or code entry points. Start by mapping the existing embedded-table behavior, filtered views, and column types against the proposed location rules. Done would require an agreed design for file and folder matching, row creation, and embedded visibility, followed by implementation and tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
full-stack
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.