Repository navigation
Conversation
A grid view opens as a page of widgets. In edit mode widgets are added, configured, moved and removed, and the whole grid is saved at once. A dialog creates a grid view or edits its title, description and technical name. - grid views are kept out of the table view lists in the navigation - views without a table survive a reload of the tables in the store Co-authored-by: Ruben van der Linde <ruben@conduction.nl> Assisted-by: ClaudeCode:claude-opus-5-5 Signed-off-by: Remko <remko@conduction.nl>
…om the navigation - the grid view dialog no longer sends a technical name, which the server refuses for a view without a table, and only sends the fields the create endpoint takes; its fields are labelled and Submit is disabled while saving - grid views get their own list in the navigation, with an action to create one, so the create flow has an entry point - leaving a grid page with unsaved changes asks first, and the browser warns before closing the tab - loading the tables keeps shared views and grid views but drops views of tables that are gone again - the grid page imports the layout helpers from gridLayout.js, disables move steps that cannot apply and hides them on a narrow canvas - a Playwright spec covers creating, editing, configuring and saving a page Assisted-by: ClaudeCode:claude-opus-5-5 Signed-off-by: Remko <remko@conduction.nl>
…instance The draft, the stored grid, the unsaved-changes check and the discard confirmation live in setup(), so the route guards use them directly and the options API reads the same state, without getCurrentInstance(). Assisted-by: ClaudeCode:claude-opus-5-5 Signed-off-by: Remko <remko@conduction.nl>
387d9c3 to
6237e08
Compare
Signed-off-by: Remko <remko@conduction.nl>
…type select in the e2e test - the grid views list now follows the applications, which the Cypress helper for creating an application addresses as the second list - the Playwright spec opens the widget type select from its indicator, like the other specs do, instead of clicking the component root Assisted-by: ClaudeCode:claude-opus-5-5 Signed-off-by: Remko <remko@conduction.nl>
…test Escape only reaches the type select, which keeps the focus after a pick, so the dialog stayed open. Assisted-by: ClaudeCode:claude-opus-5-5 Signed-off-by: Remko <remko@conduction.nl>
3667d54 to
3e165a0
Compare
|
Hello there, 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.) |
|
Closing this in favour of the new stack that starts at #3131. After the review on #3075, @enjeck's design in #3099 and #3100 replaced the model these PRs were built on, so they can't be updated in place. The backend of grid pages and application menus is now in #3131 to #3138. The frontend follows in separate PRs. @remko48 is co-author on the menu commits there. Thanks to everyone who reviewed these. |
A grid view now opens as a page: its widgets on the grid, with an edit mode to add, configure, move, resize and remove widgets.
What changes
GridViewpage: "Edit page" works on a copy of the grid; "Save" sends the whole grid in one update and "Cancel" throws the copy away. The server validates the grid on save (see the earlier backend PR). Leaving the page or switching views with unsaved changes asks first, and the browser warns before the tab is closed or reloaded.GridViewSettingsdialog: create a grid view (title, emoji, description) or edit those fields on an existing one. It takes no technical name, since a grid view is named by its id. Editing a grid view from its menu opens this dialog instead of the table view settings./view/{id}shows the grid page for a grid view; only users who can manage the view see the edit button.insertStandaloneViewcreates a view throughPOST /api/2/views. Reloading the tables no longer drops shared views and grid views from the store.🖼️ Screenshots
🏁 Checklist
/backport to stableX.X🤖 AI (if applicable)