yangzhang75 opened a new pull request, #8437:
URL: https://github.com/apache/texera/pull/8437

   ### Purpose
   
   Closes #8370. Part of the Form View stack (#8011), stacked on #8436 (PR9).
   
   The Form View page already has the title bar and the collapsible read-only 
workflow preview. This PR fills in the middle: it renders the inputs an author 
exposed and writes filled-in values straight back to their operators.
   
   ### Changes
   
   - Each exposed binding is turned into its operator's own ngx-formly field, 
built from the operator's JSON schema (not guessed from the value), so a file 
property gets the real file picker and an attribute property a column dropdown 
instead of degrading to a plain text box.
   - The widget is decided by the shared `customFormlyFieldType` (extracted in 
#8436). Two widgets that only work on the operator canvas, the code editor and 
the drag-reorder list, are collected in a new `CANVAS_ONLY_FORMLY_TYPES` and 
fall back to formly's default editable control, since they cannot function on a 
form.
   - A changed value writes straight back to its operator, the same edit the 
canvas makes, guarded so formly's build-time empty default never silently wipes 
a real value. Only a viewer with write access can edit; a read-only viewer sees 
the values disabled and the page never persists for them.
   - The inputs rebuild on the compilation stream (attribute boxes become 
dropdowns once upstream columns are known) and on `formBindingChanged$` 
(exposing or un-exposing a property, a co-editor's change included, is 
reflected at once), both skipped while the cursor is in a field so an 
in-progress edit is not thrown away.
   - Broken bindings (the operator was deleted, or the key no longer exists) 
are left out of what a reader sees.
   
   Nested and array sub-field overrides are added in the next PR (#8022); 
running the workflow and showing results follow after that.
   
   ### Tests
   
   - `workflow-form.component.spec.ts`: direct-construction unit tests for 
rendering, widget selection, the write-back guards, read-only locking, the 
compilation/binding rebuild triggers, and the typing guard, for both the 
single-user and the collaboration paths.
   - `workflow-form.rendered.spec.ts`: TestBed test standing up the real 
template so the inputs markup (section head, empty state, input card and form 
wrapper) is covered.
   - `custom-formly-type.spec.ts`: covers the new `CANVAS_ONLY_FORMLY_TYPES`.
   - 100% statement and function coverage on the changed source. `ng test` (71 
tests here), `ng build gui`, eslint and prettier all pass.
   
   ### Was AI used?
   
   Yes, co-authored with Claude (Claude Code).
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to