Skip to content

Conversation

@atiratree
Copy link
Member

@atiratree atiratree commented Aug 22, 2019

depends on:

@mareklibra @rawagner please review

according to the new design
http://openshift.github.io/openshift-origin-design/web-console/knikubevirt/knikubevirt

pic

err

@matthewcarleton

@openshift-ci-robot openshift-ci-robot added component/kubevirt Related to kubevirt-plugin component/shared Related to console-shared size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. labels Aug 22, 2019
@atiratree
Copy link
Member Author

/hold
for 4.3

@openshift-ci-robot openshift-ci-robot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Aug 22, 2019
@atiratree
Copy link
Member Author

The wizard is not complete yet, but the features and steps will be added incrementally in the future

@matthewcarleton
Copy link
Contributor

matthewcarleton commented Aug 22, 2019

@rawagner this is looking great! Thank you for doing this :)
Here's a few design tweaks I think we could do to better align things with PatternFly:
There should be a next button on the first step.
Neither the Create and Review button or the Next button should be disabled as they should alert the user of the needed fields before they proceed.
The tooltip icon should be pf-icon-help and #72767B unless active then it should be #0066CC
We've dropped the tooltip from the Operating System (we only have it on Source, Flavor, and Workload profile)
We've renamed Provision source to just Source to align with the storage step.
The alert you are showing should be updated to use the inline variation see here
Is this alert shown after they have tried to proceed? If so does it scroll the user back to the top so they can see it?
If possible, I think we should use input help text(red) rather than larger inline ones if it's referring to a specific input.
Does the container image field need to be a text area? I've also wondered with the fields where they just paste in a path if we should provide helper text below to give some guidance.
Sorry this got so long :)

@atiratree atiratree force-pushed the kubevirt.createVMWizard branch from 22fe8bd to aaf0438 Compare August 23, 2019 14:23
@atiratree
Copy link
Member Author

@rawagner this is looking great! Thank you for doing this :)
Here's a few design tweaks I think we could do to better align things with PatternFly:
There should be a next button on the first step.

There will be in the future, but I put Review and Create just for now because this PR adds just the first step.

Neither the Create and Review button or the Next button should be disabled as they should alert the user of the needed fields before they proceed.

We are doing real-time validation of input, so the user doesn't have click on the button to see the error messages. This way it is more natural to keep in disabled until all required fields are valid.

The tooltip icon should be pf-icon-help and #72767B unless active then it should be #0066CC
We've dropped the tooltip from the Operating System (we only have it on Source, Flavor, and Workload profile)
We've renamed Provision source to just Source to align with the storage step.
The alert you are showing should be updated to use the inline variation see here

All done!

Is this alert shown after they have tried to proceed? If so does it scroll the user back to the top so they can see it?
If possible, I think we should use input help text(red) rather than larger inline ones if it's referring to a specific input.

User will see these alerts when they open the dialog. These are alerts for the resources which could not load correctly. And these might be used by multiple fields or none.

Does the container image field need to be a text area? I've also wondered with the fields where they just paste in a path if we should provide helper text below to give some guidance.

switched to text area

Sorry this got so long :)

np, thanks for the comments :)

current version:

tu

@matthewcarleton
Copy link
Contributor

@suomiy
+1 on your changes :)
disabled buttons:
Having fields dynamically validate is awesome but I still think these buttons shouldn't be disabled.
My reasoning is mostly because of accessibility. There's lots of scenarios where a user (keyboard only, screen reader, high zoom) will have problems and not understand why. They might miss the announcement of the error, they might be zoomed in and not see it or their vision could be poor and they don't notice it.
With a disabled button we don't have the opportunity to help them when these scenarios take place. We just assume they will figure it out on their own (which likely they will eventually, or just give up).
Having the button enabled helps them understand what's wrong with the form via an alert when they've tried to submit without success. This puts them in a place where they don't have to problem solve only act on the guidance they're given.
What if we did something like this:
Screen Shot 2019-08-23 at 1 02 06 PM

User will see these alerts when they open the dialog. These are alerts for the resources which could not load correctly. And these might be used by multiple fields or none.

Is this a real scenario or just a placeholder? I'm assuming in this scenario they've tried to create this VM and ran into this error and are now back in the wizard trying to correct it? If that's the case wouldn't they be on the results page? From there they would go to the storage step to correct the issue with the storage class so they could see this error on the page. What have I missed :) ?

@atiratree
Copy link
Member Author

atiratree commented Aug 26, 2019

...
What if we did something like this:

I agree, you have good points. I am not tackling the VMWizard navigation & logic much in this PR.
I will try to do address these issues in the next PR, if that's okay?

Is this a real scenario or just a placeholder? I'm assuming in this scenario they've tried to create this VM and ran into this error and are now back in the wizard trying to correct it? If that's the case wouldn't they be on the results page? From there they would go to the storage step to correct the issue with the storage class so they could see this error on the page. What have I missed :) ?

Real scenario. No, they just opened the dialog without filling anything and are presented with these errors; usually permission issues which result in an inability of using the whole wizard.

@atiratree atiratree force-pushed the kubevirt.createVMWizard branch from aaf0438 to 02754a6 Compare August 26, 2019 13:01
@atiratree
Copy link
Member Author

rebased

@atiratree atiratree force-pushed the kubevirt.createVMWizard branch 2 times, most recently from fc310a1 to 5aa2118 Compare August 26, 2019 18:02
@matthewcarleton
Copy link
Contributor

I agree, you have good points. I am not tackling the VMWizard navigation & logic much in this PR.
I will try to do address these issues in the next PR, if that's okay?

that would be great, thanks!

Real scenario. No, they just opened the dialog without filling anything and are presented with these errors; usually permission issues which result in an inability of using the whole wizard.

Ah ok, I wonder then if we should just present them with this error and guidance on how to fix it. I suppose there isn't much value in providing all of the fields if they can't proceed until the resolve the issue. WDYT?
Screen Shot 2019-08-26 at 3 15 20 PM

@atiratree atiratree force-pushed the kubevirt.createVMWizard branch from 5aa2118 to 8ead321 Compare August 26, 2019 19:35
@atiratree
Copy link
Member Author

Ah ok, I wonder then if we should just present them with this error and guidance on how to fix it. I suppose there isn't much value in providing all of the fields if they can't proceed until the resolve the issue. WDYT?

Not sure, because there are some errors which will disable the dialog only partially (e.g. datavolumes). You can still create some configurations without them.

@atiratree
Copy link
Member Author

/retest

1 similar comment
@atiratree
Copy link
Member Author

/retest

@atiratree atiratree force-pushed the kubevirt.createVMWizard branch from 8ead321 to 1d32e73 Compare August 27, 2019 14:51
@atiratree
Copy link
Member Author

fixed issues mentioned in offline review

@openshift-ci-robot openshift-ci-robot added component/dev-console Related to dev-console component/metal3 Related to metal3-plugin component/monitoring Related to monitoring component/olm Related to OLM labels Sep 18, 2019
@atiratree atiratree changed the base branch from master to master-4.3 September 18, 2019 12:43
@atiratree atiratree force-pushed the kubevirt.createVMWizard branch 5 times, most recently from 41de66a to f590bfc Compare September 24, 2019 11:14
@openshift-ci-robot openshift-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Sep 24, 2019
@atiratree
Copy link
Member Author

/hold cancel

@openshift-ci-robot openshift-ci-robot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Sep 24, 2019
@atiratree
Copy link
Member Author

/retest

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed unnecessary prop

note: the full feature footer is implemented in the followup #2565

@mareklibra
Copy link
Contributor

lgtm
waiting for the branch to merge this to

@atiratree atiratree force-pushed the kubevirt.createVMWizard branch from f590bfc to b21cb13 Compare September 24, 2019 13:33
- adds form helpers like FormFieldRow
- uses immutables and memoization for performance
- adds EnhancedK8sMethods
- move wizard logic to actions
@atiratree atiratree force-pushed the kubevirt.createVMWizard branch from b21cb13 to d73e6c4 Compare September 26, 2019 09:11
@openshift-ci-robot openshift-ci-robot added component/ceph Related to ceph-storage-plugin component/dashboard Related to dashboard and removed approved Indicates a PR has been approved by an approver from all required OWNERS files. labels Sep 26, 2019
@atiratree atiratree changed the base branch from master-4.3 to master September 26, 2019 09:12
@rawagner
Copy link
Contributor

/lgtm

@openshift-ci-robot openshift-ci-robot added the lgtm Indicates that a PR is ready to be merged. label Sep 26, 2019
@openshift-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: rawagner, suomiy

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci-robot openshift-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Sep 26, 2019
@openshift-merge-robot openshift-merge-robot merged commit 015c95a into openshift:master Sep 26, 2019
@spadgett spadgett added this to the v4.3 milestone Oct 4, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. component/ceph Related to ceph-storage-plugin component/core Related to console core functionality component/dashboard Related to dashboard component/dev-console Related to dev-console component/kubevirt Related to kubevirt-plugin component/metal3 Related to metal3-plugin component/monitoring Related to monitoring component/olm Related to OLM component/shared Related to console-shared lgtm Indicates that a PR is ready to be merged. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants