This PR adds end-to-end support of saving to, and reading from, the ui_metadata field in the indexed workflow:
refactors and updates processNodes() to use the newly-implemented formikToComponentData() to update the underlying data field with the form values
removes the filter in processNodes() which was limiting the fields that were saved. Defaulting to all fields now, so other metadata like position, positionAbsolute, extent, parentNode, etc. are saved. This allows proper functionality for the parent/child nodes that we have (e.g., nodes inside Ingest block), and nice-to-haves, like the exact node positioning within the viewport staying static such that reloads will still show the view exactly how the user last left it
adds ui_metadata parsing in server-side when fetching workflows via searchWorkflows()
improves the hook on props.workflow in ResizableWorkspace to only parse the state when there is a valid workflow. This is to prevent weird intermediate states where it may render a default/invalid template immediately before the target workflow is fetched and rendered on top. instead, we leave it empty and don't populate any nodes/edges until that the workflow is available
Misc changes:
data model change in IComponentField from name -> id for consistency
removes codecov and pre-commit hooks until project is more stable. added tracking in the existing issue to re-enable later on: see #109
Demo video:
workflow state & node positioning persisted
values persisted in workflow nodes and internally as initial values in the Formik<Form>
[x] Commits are signed per the DCO using --signoff
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.
Description
This PR adds end-to-end support of saving to, and reading from, the
ui_metadata
field in the indexed workflow:processNodes()
to use the newly-implementedformikToComponentData()
to update the underlyingdata
field with the form valuesprocessNodes()
which was limiting the fields that were saved. Defaulting to all fields now, so other metadata likeposition
,positionAbsolute
,extent
,parentNode
, etc. are saved. This allows proper functionality for the parent/child nodes that we have (e.g., nodes insideIngest
block), and nice-to-haves, like the exact node positioning within the viewport staying static such that reloads will still show the view exactly how the user last left itui_metadata
parsing in server-side when fetching workflows viasearchWorkflows()
props.workflow
inResizableWorkspace
to only parse the state when there is a valid workflow. This is to prevent weird intermediate states where it may render a default/invalid template immediately before the target workflow is fetched and rendered on top. instead, we leave it empty and don't populate any nodes/edges until that the workflow is availableMisc changes:
IComponentField
fromname
->id
for consistencyDemo video:
Formik
<Form>
screen-capture (26).webm
Issues Resolved
Makes progress on #75
Check List
--signoff
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license. For more information on following Developer Certificate of Origin and signing off your commits, please check here.