Rewrite Geo Node Form in Vue
Why
The New/Edit form is the only thing left related to Geo Nodes that hasn't been moved to Vue. It would be nice to move it so we could add some async form validation (onBlur, onChange, etc).
This will allow for users to avoid having to click submit to find out what they did wrong on the form.
Location of HAML form currently: https://gitlab.com/gitlab-org/gitlab/-/tree/master/ee/app/views/admin/geo/nodes
MR Split-up
- Init Vue application behind a feature flag,
:enable_geo_node_form_js
=> !22815 (merged) - Add core functionality in UI => !23479 (merged)
- Add Selective Sync Shards to the UI => !24015 (merged)
- Add Selective Sync Namespaces to the UI => !25061 (merged)
- Add form validation and API POST/PUT => !25851 (merged)
- Remove feature flag, delete feature conditionals and legacy code => !27931 (merged)
-
https://gitlab.com/gitlab-org/gitlab/-/blob/master/app/helpers/application_settings_helper.rb (Delete
repository_storages_options_for_select
) - https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/app/assets/javascripts/pages/admin/geo/nodes/create/index.js (Delete File)
- https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/app/assets/javascripts/pages/admin/geo/nodes/shared/init_form.js (Delete File)
- https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/app/assets/javascripts/pages/admin/geo/nodes/update/index.js (Delete File)
-
https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/app/helpers/ee/geo_helper.rb (Delete
selective_sync_type_options_for_select
) - https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/app/views/admin/geo/nodes/_form.html.haml (Delete File)
-
https://gitlab.com/gitlab-org/gitlab/-/blob/master/app/helpers/application_settings_helper.rb (Delete
Backend Requirements
-
A way to create a node => #118843 (closed) -
A way to create/update a node with selective sync => !23729 (merged) and !22828 (merged) -
A way to edit a node => https://docs.gitlab.com/ee/api/geo_nodes.html#edit-a-geo-node -
A way to delete a node => https://docs.gitlab.com/ee/api/geo_nodes.html#delete-a-geo-node
What does success look like
We can create/edit/delete a Geo node from the UI via JavaScript. We also have async form validation via JavaScript
Edited by Zack Cuddy