Skip to content

feat: Notion-style view tabs, chart views, and relation columns#2397

Open
ryanravn wants to merge 3 commits intonextcloud:mainfrom
ryanravn:feat/view-tabs-charts-relations
Open

feat: Notion-style view tabs, chart views, and relation columns#2397
ryanravn wants to merge 3 commits intonextcloud:mainfrom
ryanravn:feat/view-tabs-charts-relations

Conversation

@ryanravn
Copy link
Copy Markdown

Summary

  • Notion-style view tabs: Horizontal tab bar above table content for switching between views, with "+" button to create new views
  • Chart view type: Bar, line, and pie/donut charts with inline config bar (Chart.js)
  • Relation column type: Link rows between tables with proper join table, relation types (1:1, 1:N, M:N), bidirectional reverse columns, clickable chip display

Changes

Backend

  • DB migrations: view type column, relation columns, tables_row_relations join table
  • RelationService for managing row links with cascade cleanup
  • RelationBusiness, RowRelation entity/mapper, RelationColumnQB
  • Bidirectional column auto-creation in ColumnService
  • View type support in ViewService/ViewController

Frontend

  • ViewTabBar.vue — Notion-style tab strip
  • ChartView.vue + ChartConfigBar.vue — chart rendering
  • TableCellRelation.vue — chip-based relation cell display
  • RelationForm.vue — column config (table picker, relation type, display column) and row editor (search + link)
  • Updated navigation, modals, and table components

Test plan

  • Create a table, verify tab bar with "Table" tab and "+" button
  • Create a chart view, verify bar/line/pie render with config bar
  • Switch between view tabs
  • Create a relation column linking two tables
  • Verify reverse column auto-created on target table
  • Add/remove row links via chip UI
  • Test one-to-one constraint
  • Delete linked row, verify cleanup

@ryanravn ryanravn requested review from blizzz and enjeck as code owners March 14, 2026 22:43
View Tabs:
- Horizontal tab bar above table content for switching between views
- "+" button to create new views directly from tab bar
- Smart sidebar: parent table highlights when collapsed with active child view

Chart Views:
- New "chart" view type with bar, line, and pie/donut charts
- Inline config bar for chart type, X-axis, Y-axis column selection
- View type selector (Table/Chart) in view creation modal

Relation Columns:
- New "relation" column type for linking rows between tables
- Proper join table (tables_row_relations) instead of JSON blobs
- Relation types: one-to-one, one-to-many, many-to-many
- Bidirectional: auto-creates reverse column on target table
- Display column config to show meaningful values from linked rows
- TableCellRelation renders linked rows as clickable chips
- RelationService handles link CRUD with cascade cleanup

Signed-off-by: Erlend Ryan <erlendryan@pm.me>
@ryanravn ryanravn force-pushed the feat/view-tabs-charts-relations branch from ea26f57 to 5968e48 Compare March 14, 2026 22:44
- Don't drop tables_row_cells_relation — Row2Mapper queries all cell
  tables via UNION ALL. Create it if missing instead.
- Add TableCellRelation component for rendering relation cells as
  clickable chips in the table grid
- Register relation type in TableRow getTableCell switch
- Mark relation as non-inline-editable (opens edit modal on click)

Signed-off-by: Erlend Ryan <erlendryan@pm.me>
Signed-off-by: Erlend Ryan <erlendryan@pm.me>
@github-actions
Copy link
Copy Markdown
Contributor

Hello there,
Thank you so much for taking the time and effort to create a pull request to our Nextcloud project.

We hope that the review process is going smooth and is helpful for you. We want to ensure your pull request is reviewed to your satisfaction. If you have a moment, our community management team would very much appreciate your feedback on your experience with this PR review process.

Your feedback is valuable to us as we continuously strive to improve our community developer experience. Please take a moment to complete our short survey by clicking on the following link: https://cloud.nextcloud.com/apps/forms/s/i9Ago4EQRZ7TWxjfmeEpPkf6

Thank you for contributing to Nextcloud and we hope to hear from you soon!

(If you believe you should not receive this message, you can add yourself to the blocklist.)

@AndyScherzinger AndyScherzinger added the 3. to review Waiting for reviews label Apr 12, 2026
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.

Please add screenshots showing what these look like

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants