Skip to content

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

Open
rubenvdlinde wants to merge 1 commit into
stack/s1-application-shellfrom
stack/s2-application-overview
Open

rubenvdlinde wants to merge 1 commit into
stack/s1-application-shellfrom
stack/s2-application-overview

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Collaborator

Rebuild of #40 (originally #26) on the page model of nextcloud#3100 / nextcloud#3099, see #13. Stacked on #52.

What changes

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

  • Route /application/{id}/overview, opened with "Overview" in the application's title row.
  • 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 (Start page or Page with widgets) and what it shows (its widgets, and on the start page its tables and views). Managers get a "Design" link that opens the page in edit mode (?edit=1, new startInEditMode prop on GridPage), others "Open".
  • Add page (owner): "Page with widgets" opens the page form of feat(pages): grid pages in the application UI (#3099, step 4)聽#49 (title, emoji, description, technical name), adds the page 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; only the dashboard item of a new application keeps its target. Saving replaces the menu through the context update and reloads the application.

Carried over from #40, and what changed because of nextcloud#3100 / nextcloud#3099

Tests

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

  • application.spec.ts: the 4 tests of feat(applications): standalone application shell with its own menu聽#52 plus: the overview lists the start page ("Dashboard", "Start page", "0 widgets") and a page added there gets a menu entry (intake_home) 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. With context-menu.spec.ts: 9 passed (1.8m).
  • context-grid-pages.spec.ts, context.spec.ts, context-navigation.spec.ts: 15 passed (7.6m).
  • env -u ELECTRON_RUN_AS_NODE npx cypress run --component --spec cypress/component/menuItems.cy.js,cypress/component/gridLayout.cy.js,cypress/component/GridWidget.cy.js: All specs passed! 31 31 (adds toEditableMenuItems and pageTitle for context and page API pages).
  • npm run lint: 0 errors, 1 inherited warning (src/store/store.js:176); 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 gets an overview at /application/{id}/overview,
linked from its title row: its address, settings, pages and menu. The pages
come from the application (start page first), with their widgets and, on the
start page, its tables and views. "Add page" uses the page form, adds the page
to the menu and opens it in edit mode. The menu has a numbered preview and is
edited in place with the editor of the create dialog, which now offers the
pages of the application.

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