Repository navigation
Conversation
remko48
added this pull request to stack #15
October 12, 2026 08:33
remko48
force-pushed
the
stack/g5-widget-forms
branch
3 times, most recently
from
October 12, 2026 11:56
0e09883 to
a3dc6e7
Compare
remko48
commented
Oct 12, 2026
remko48
left a comment
Member
Author
There was a problem hiding this comment.
Review (Thorough, round 2)
Each finding is an inline comment on the line it is about, marked 🔴 Blocker / 🟡 Concern / 🟢 Minor. This round takes the updated base stack into account (#13, #14 and #16 fixes, including 2ebf8c7, 2da6fa5 and 777c1b0); the diff of this PR itself is unchanged since it was rebased.
What was verified
- Read the full diff against
stack/g4-grid-widgets, and confirmed it is byte-identical to round 1. - Checked the schemas, sanitising and the new
checkTargets/storedTargetslogic inGridWidgetTypes.php(2da6fa5). - Traced the watcher flush order against how
GridView(#19) mountsAddWidget. - Confirmed
clearableandadvancedFieldsexist onNcColorPickerin@nextcloud/vue9.13.1. - Checked the commit trailers.
Not run
eslint, stylelint, build, any tests, the app. The blocker is traced from the code, not reproduced in a browser.
This was referenced Oct 12, 2026
The form to add or configure a widget is rendered from the schema the server defines for its type, so a new widget type needs a schema and a renderer rather than its own dialog. The data widget shows the rows of a table or view inside a grid. Co-authored-by: Ruben van der Linde <ruben@conduction.nl> Assisted-by: ClaudeCode:claude-opus-5-5 Signed-off-by: Remko <remko@conduction.nl>
remko48
force-pushed
the
stack/g5-widget-forms
branch
from
October 12, 2026 13:09
a3dc6e7 to
ac7b3d3
Compare
…get is empty - configuring a widget no longer resets its content to the defaults of the type picked before; only a type the user picks starts from defaults, and a widget of an unknown type is neither configured nor converted - a data widget whose target the server marked broken says it no longer exists instead of loading it, a failed load has its own message, and the prompt to pick a target only shows while editing - an empty widget title stays empty, the card shows the type name in the viewer's language - the dialog loads the widget types itself and imports the helpers from gridLayout.js - integer fields refuse fractions, booleans render as a switch, the colour swatch is empty for the theme colour and the view label is translatable Assisted-by: ClaudeCode:claude-opus-5-5 Signed-off-by: Remko <remko@conduction.nl>
remko48
commented
Oct 12, 2026
remko48
commented
Oct 12, 2026
remko48
commented
Oct 12, 2026
remko48
commented
Oct 12, 2026
remko48
commented
Oct 12, 2026
remko48
commented
Oct 12, 2026
- an invalid number in the widget form now blocks saving instead of keeping the last valid value - the dialog fills the form before it renders when the widget types are already loaded - the view label in the target picker is no longer HTML-escaped - the theme colour swatch has a max-contrast border, field data-cy names are camelCase, and every method has JSDoc Assisted-by: ClaudeCode:claude-opus-5-5 Signed-off-by: Remko <remko@conduction.nl>
Assisted-by: ClaudeCode:claude-opus-5-5 Signed-off-by: Remko <remko@conduction.nl>
Signed-off-by: Remko <remko@conduction.nl>
3 of 5 tasks
Signed-off-by: Remko <remko@conduction.nl> Assisted-by: ClaudeCode:claude-opus-5-5
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The dialog to add or configure a widget, and the widget that shows a table or view inside a grid.
What changes
SchemaForm: renders the content form of a widget from the schema the server sends (text, long text, number, switch, choice, color, table/view picker). A new widget type needs a schema on the server and a component that renders it, not a new dialog.AddWidgetdialog: pick a type, set the title and whether it is shown, then fill in the content form. Required fields block saving.DataWidget: shows the rows of the chosen table or view with the existing table components, loading columns, rows and relations through the normal API. Views without a table (grid views) are not offered as a target.🖼️ Screenshots
No visible change yet, since the dialog opens from the grid view page in the next PR.
🏁 Checklist
/backport to stableX.X🤖 AI (if applicable)