New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bug 1871108: usability bug: the ui selections are unclear #6433
Conversation
@glekner: This pull request references Bugzilla bug 1871108, which is valid. The bug has been moved to the POST state. The bug has been updated to refer to the pull request using the external bug tracker. 3 validation(s) were run on this bug
In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
@suomiy @matthewcarleton thoughts? |
I guess an alternative to this would be to scroll the user down so the whole dropdown is visible. |
28417fd
to
caf463c
Compare
@glekner Is there a reason why the selection titles don't align with the design? |
@@ -128,6 +114,34 @@ export const VMSettingsTabComponent: React.FC<VMSettingsTabComponentProps> = ({ | |||
onProvisionSourceStorageChange={updateStorage} | |||
provisionSourceStorage={provisionSourceStorage} | |||
/> | |||
<Flavor |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like that we have flavor+mem+cpu together 👍
userTemplates: any; | ||
commonTemplates: any; | ||
flavorField: any; | ||
operatinSystemField: any; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
you can pass just the value, not the whole field
@@ -42,7 +40,7 @@ import { | |||
NO_BASE_IMAGE_MESSAGE, | |||
} from '../../strings/strings'; | |||
|
|||
export const OSFlavor: React.FC<OSFlavorProps> = React.memo( | |||
export const OS: React.FC<OSProps> = React.memo( | |||
({ | |||
userTemplates, | |||
commonTemplates, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
same here with the flavorField
commonTemplates: any; | ||
flavorField: any; | ||
operatinSystemField: any; | ||
cloneBaseDiskImageField: any; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
no need for these
can you approve @suomiy |
@glekner One small comment: please enrich the PXE part by a mention that you need a network attachment definition available for you in this namespace or in the default one. So the message might be like: |
<FormSelectPlaceholderOption | ||
placeholder={getPlaceholder(VMSettingsField.PROVISION_SOURCE_TYPE)} | ||
isDisabled={!!provisionSourceValue} | ||
<Select |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can you please create a new type for FormField and use it here? This will allow to pass correct values and metadata from redux to this component.
/retest |
/> | ||
<Select | ||
isOpen={isSourceOpen} | ||
selections={provisionSourceValue} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we can pass this one in the FormField as well
<Select | ||
isOpen={isSourceOpen} | ||
selections={provisionSourceValue} | ||
onToggle={(isOpen) => setIsSourceOpen(isOpen)} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
maybe it would be beneficial to create a single select component that has all the defaults included and stores its own state.
This will come in handy once we include multiple of these in.
export const PROVISION_SOURCE_PXE_HELPTEXT = | ||
'Boot an operating system from a server on a network. This will show up as a NIC on the Networking step. In order to PXE boot, you need to have a Network Attachment Definition available for you either in this namespace, or in the default one'; | ||
export const PROVISION_SOURCE_CONTAINER_HELPTEXT = | ||
'Link to a bootable operating system container located in a registry accessible from the cluster. Example: kubevirt/cirrosregistry-disk-demo. This action will not create a persistent volume claim (PVC). This will show up as a disk in the Storage step'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the correct image name is:
kubevirt/cirros-registry-disk-demo
(e.g. you miss the "-" between cirros and registry :) )
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So, we need to highlight the limitations of this and reference fedora instead of cirros:
Link to a bootable operating system container located in a registry accessible from the cluster. Example: kubevirt/fedora-cloud-container-disk-demo. This action will not create a persistent volume claim (PVC). This will show up as a disk in the Storage step. The container disk is meant to be used only for read-only filesystems such
as CD-ROMs or for small short-lived throw-away VMs.';
And then, once picked, under it it needs to show the example kubevirt/fedora-cloud-container-disk-demo so the user can actually copy paste it to the text box.
export const PROVISION_SOURCE_CONTAINER_HELPTEXT = | ||
'Link to a bootable operating system container located in a registry accessible from the cluster. Example: kubevirt/cirrosregistry-disk-demo. This action will not create a persistent volume claim (PVC). This will show up as a disk in the Storage step'; | ||
export const PROVISION_SOURCE_URL_HELPTEXT = | ||
'Link to an operating system image via URL (HTTP or S3 endpoint). A new persistent volume claim (PVC) will be created to store this image. This will show up as a disk in the Storage step'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe would be good to add an example as well, something like:
"For example, for CentOS you can visit http://isoredirect.centos.org/centos/8/isos/x86_64/ and pick a URL for an ISO which will look like: http://mirror.hosting90.cz/centos/8.2.2004/isos/x86_64/CentOS-8.2.2004-x86_64-boot.iso"
@matthewcarleton WDYT? Would something like this be helpful?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK, that might be a bit too much and something which will be changing so we should not hardcode it here. But we could have something which will help. Something like:
"Link to an operating system image via URL (HTTP or S3 endpoint). An example might be a download link to an operating system iso you can copy from the downloads page of your favourite distribution. A new persistent volume claim (PVC) will be created to store this image. This will show up as a disk in the Storage step.".
@matthewcarleton WDYT? Would this be understandable?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe:
Link to an operating system source via URL (HTTP or S3). This will show up as a disk in the storage step (backed by a persistent volume claim). Example: A operating system ISO download link you can copy from your favorite distribution.
For brevity.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can we also specify the formats?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would explicitely add the download page there: Link to an operating system source via URL (HTTP or S3). This will show up as a disk in the storage step (backed by a persistent volume claim). Example: An operating system ISO download link you can copy from the download page of your favorite distribution.
|
/lgtm |
f4b6664
to
c6b8e95
Compare
/lgtm |
/retest Please review the full test history for this PR and help us cut down flakes. |
c6b8e95
to
03f3696
Compare
/lgtm |
03f3696
to
5ff2f3a
Compare
/lgtm |
@@ -34,6 +36,17 @@ export const URLSource: React.FC<URLSourceProps> = React.memo( | |||
} | |||
/> | |||
</FormField> | |||
<div className="pf-c-form__helper-text" aria-live="polite"> | |||
For example, you can obtain the download link for {isUpstream ? 'Fedora' : 'RHEL'} cloud |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can we change this to:
"Visit the Fedora cloud image[link] list and copy a url to paste into the url field here"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@glekner ^^
/retest Please review the full test history for this PR and help us cut down flakes. |
1 similar comment
/retest Please review the full test history for this PR and help us cut down flakes. |
5ff2f3a
to
33567bd
Compare
/lgtm |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: glekner, yaacov The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
@glekner: All pull requests linked via external trackers have merged: Bugzilla bug 1871108 has been moved to the MODIFIED state. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
As of now, I only updated the Provision Source dropdown so we can examine the differences.
Until now, we used a component which renders the browser's native select component
Example
For us to have a more robust UI with descriptions and other props, we need to convert to the new PF
Select
component, its a change that could break tests, and it could take time to change all the selects in the wizard.1 Key difference between the components is the new Select rendering the dropdown to the bottom or top is not automatic like the native select. causing it to get hidden by the wizard footer: (changing z-index didn't fix the issue)
The solution is to change the direction manually for some of the selects.