Repository navigation
Conversation
Two api/2 endpoints for grid views: one returns the widget types with the schemas of their configuration and content, the other creates a view without a table, owned by the user who creates it. Creating is rate limited like the other mutation endpoints. Co-authored-by: Ruben van der Linde <[email protected]> Assisted-by: ClaudeCode:claude-opus-5-5 Signed-off-by: Remko <[email protected]>
- the title and emoji of a new grid view are validated like on update, so an empty or too long title or an invalid emoji is a 400 instead of a 200 or a database error - the endpoint drops the technicalName and type parameters: a view without a table is named by its id and is always a grid view - widget property and widget types are typed as their known values - both routes are declared with #[ApiRoute] on the controller; the spec moves them, which reorders openapi.json Assisted-by: ClaudeCode:claude-opus-5-5 Signed-off-by: Remko <[email protected]>
Signed-off-by: Remko <[email protected]> Assisted-by: ClaudeCode:claude-opus-5-5
|
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. |
Two api/2 endpoints so a client can build grid views: one to fetch the widget types with their schemas (the frontend renders its forms from them), and one to create a grid view, a view without a table.
What changes
GET /api/2/views/widget-types: returns every widget type with its title, default size and two schemas:configuration(how the widget sits on the page) andproperties(what the widget shows, stored as itscontent).POST /api/2/views: creates a grid view without a table. The type is alwaysgrid. It takes atitleand optionally anemojiand adescription; an invalid title or emoji returns a 400. It takes no technical name, since a view without a table is named by its id. The view belongs to whoever creates it and is returned in the usual view shape.RequirePermissionis needed: there is no existing resource to check, and ownership is the creator's.🖼️ Screenshots
Backend only, no UI changes.
🏁 Checklist
/backport to stableX.X🤖 AI (if applicable)