Skip to content

feat(applications): tables, members and stats on the overview - #42

Open
rubenvdlinde wants to merge 2 commits into
stack/n3-export-importfrom
stack/n4-overview-extras
Open

rubenvdlinde wants to merge 2 commits into
stack/n3-export-importfrom
stack/n4-overview-extras

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Collaborator

Rebuild of #28 on application pages (nextcloud#3075, see #13). Stacked on #41.

What changes

The application overview now shows which tables the application works on, who it is shared with, and a short summary.

  • Tables: every table the application uses, through its own nodes, a data widget on one of its pages, or a menu entry that opens a table or view. Each row shows the row count, the number of views and what uses the table: the page title, the menu entry label, or "Application" for a node no page or menu entry uses. A table the user cannot access is listed by id.
  • Members (owner only): the owner and everyone the application is shared with, with a button to change the shares. Only the owner gets the full list of shares, so others don't see this section.
  • Stats: a line counting the pages and tables, plus the members for the owner.
  • Page filter: a filter field appears once an application has more than six pages, matching title, type and what the page shows.

Carried over from #28, and what changed because of pages

  • Members, stats, the filter and the table list are carried over.
  • "Tables used" no longer reads grid views' widget targets: it derives usage from the application's nodes, the content of its pages (each content row's node_rel_id) and its menu targets, as asked in feat(views): allow views without a table聽#13. The page count is the number of pages, not of menu items.

Tests

Nextcloud 34 container (PostgreSQL 16), Playwright at 1600 x 1000, --timeout=120000:

  • application.spec.ts: new "The overview lists the tables the application uses, its members and its counts" (1 page, 1 table, 1 member, the table row names the menu entry that opens it) and "An application with many pages gets a filter for them" (8 pages, the filter leaves 1). Whole file: 12 passed (one run hit the 120 s limit on the filter test because the locator missed the input; fixed, then 2 passed for the two new tests).
  • npm run lint: 0 errors (1 inherited warning in store.js), npm run stylelint clean, npm run build OK.

Prepared in the Conduction fork for porting upstream by @remko48. Prepared with Claude Code.

The application overview now shows which tables the application works
on, who it is shared with, and a short summary.

- Tables: every table the application uses, through its own nodes, a
  data widget on one of its pages, or a menu entry that opens a table or
  view. Each row shows the row count, the number of views and what uses
  the table. A table the user cannot access is listed by id.
- Members (owner only): the owner and everyone the application is shared
  with, with a button to change the shares.
- Stats: a line counting the pages and tables, plus the members for the
  owner.
- Page filter: a filter field appears once an application has more than
  six pages, matching title, type and what the page shows.

Assisted-by: ClaudeCode:claude-opus-5-5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant