Use form error state instead of disabling submit button for vulnerability bulk status updates
The following discussion from !119476 (merged) should be addressed:
-
@lorenzvanherwaarden started a discussion: (+12 comments) @beckalippert can you do the UX review?
🙂
As we'll do this in a follow-up, is this MR okay to be approved from UX perspective
@lorenzvanherwaarden sure!
But that means that subtext descriptions of the state would not be visible anymore. Only the state name would appear in the select
To carry over to the follow-up issue...
I wonder if we can keep the formatting of the dropdown and use a secondary button with the danger variant and add an error message underneath?
Implementation steps
- Remove logic for disabling "Change status" button (in
selection_summary.vue
) & remove from spec too - When clicking "Change status", verify all required fields/selections are provided:
- if Dismiss status: need to provide dismissal reason & comment
- else if other status: comment is not required
- keep 3 booleans in data that indicate whether status, dismissal reason and comment should show error state
- if comment is not provided: show "Required field" message and error state of GlFormInput
- if dismissal reason is not provided:
- show "Required selection" message
- set
aria-invalid=true
- set
variant=danger
- set
category=secondary
- if status is not provided, do same as dismissal reason listbox
- Add tests in spec for this behavior
- Reset errors correctly
Verification steps
- Go to security-reports
- Select a couple of vulnerabilities
- Select Change status and validate that an error message appears underneath the status listbox
- Select the status "Dismiss" and validate that the error message disappears
- Select Change status and validate that error messages appear underneath the dismissal reason listbox and the comment input
- Select a dismissal reason and validate that the error message disappears
- Add a comment and validate that the error message disappears
- Select Change status and validate that it succeeds
- Select some vulnerabilities again and select any status except the "Dismiss" status
- Select Change status and validate that it succeeds (comment is not required)
Edited by Lorenz van Herwaarden