Skip to content

feat(applications): overview page to manage pages and menu - #40

Open
rubenvdlinde wants to merge 4 commits into
stack/n1-application-shellfrom
stack/n2-application-overview
Open

rubenvdlinde wants to merge 4 commits into
stack/n1-application-shellfrom
stack/n2-application-overview

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Collaborator

Rebuild of #26 on application pages (nextcloud#3075, see #13). Stacked on #39.

What changes

Inside Tables an application now opens on an overview to manage it: its name, address, settings, pages and menu.

  • Header: icon, name, description and the application's address, with a copy button and "Open application". The owner gets a menu to edit name, icon and members, import a scheme, transfer ownership or delete the application.
  • Pages: a table of the application's pages, the start page first (its title, or "Dashboard"), with the type (Dashboard or page with widgets) and the number of widgets. Managers get a "Design" link that opens the page in edit mode, others "Open".
  • Add page (owner): "Page with widgets" creates a grid page (title and technical name), adds it to the menu straight away and opens it in edit mode. "Table or view" and "Link" open the menu editor with a new entry of that kind.
  • Menu (owner): a numbered preview (1, 1.1, 2, ...) with what each entry opens, and "Edit menu" to change it in place with the editor of the create dialog. The editor now offers the pages of the application as targets. Saving replaces the menu through the context update and reloads the application.
  • Pages inside Tables open at /application/{id}/page/{pageId} (the start page too), below the breadcrumb of feat(applications): standalone application shell with its own menu #39 and the page bar of feat(pages): show every application page on the grid #38. The "Arrange the dashboard" link of the edit dialog opens the start page there.
  • Behaviour change: opening an application no longer collapses the Tables navigation.

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

  • Header, actions, menu preview and in-place editor, toEditableMenuItems, updateContextMenuItems: carried over. The overview moved out of Context.vue into ApplicationOverview.vue.
  • The pages table lists pages from the page API instead of menu items; the menu has its own preview below it.
  • "Page with widgets" creates a grid page through the page API instead of a grid view (GridViewSettings and the tables:view:grid-created event are gone with grid views).
  • The tables and views no longer render in the application opened on its own as a list: they are data widgets on the start page. The existing specs that checked them now open the application on its own, as in feat(applications): overview page to manage pages and menu #26, where the dashboard shows them.

Tests

Nextcloud 34 container (PostgreSQL 16), Playwright at 1600 x 1000, --timeout=120000 (the CI value; the instance is slow locally):

  • application.spec.ts: the 4 tests of feat(applications): standalone application shell with its own menu #39 plus: a page added on the overview gets a menu entry and opens in edit mode; menu entries reordered and nested with buttons keep their place after a reload; a menu entry pointed at a page of the application opens it. 7 passed.
  • context.spec.ts (7), context-grid-pages.spec.ts (4, now opening the start page route), context-menu.spec.ts (1), context-navigation.spec.ts (1), column-relation.spec.ts (2): 21 passed. column-relation.spec.ts "Relation labels render inside an application context" sets its own 60 s limit and timed out locally in the parallel run and alone; with that limit raised locally to 180 s it passes in 46 s (not committed).
  • npx cypress run --component --spec cypress/component/menuItems.cy.js: 16 passing (adds toEditableMenuItems and pageTitle).
  • 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.

Inside Tables an application now opens on an overview to manage it: its
name, address, settings, pages and menu.

The header shows the icon, name, description and the application's
address with a copy button and "Open application"; the owner gets a menu
to edit name, icon and members, import a scheme, transfer ownership or
delete the application. The pages table lists the application's pages,
the start page first and named "Dashboard" while untitled, with what
each shows and a "Design" button for managers. "Add page" creates a grid
page, adds it to the menu straight away and opens it in edit mode;
"Table or view" and "Link" open the menu editor with a new entry. The
menu is previewed and edited in place; the editor offers the pages of
the application as targets.

Every page opens at /application/{id}/page/{pageId}, below a breadcrumb
back to the overview. Opening an application no longer collapses the
Tables navigation.

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