Skip to content
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

Merged
merged 1 commit into from Sep 14, 2020

Conversation

glekner
Copy link
Contributor

@glekner glekner commented Aug 25, 2020

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
Screen Shot 2020-08-25 at 17 18 10

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)
Screen Shot 2020-08-25 at 17 15 47

The solution is to change the direction manually for some of the selects.
Screen Shot 2020-08-25 at 17 12 29

@glekner glekner changed the title Fixes 1871108: usability bug: the ui selections are unclear Bug 1871108: usability bug: the ui selections are unclear Aug 25, 2020
@openshift-ci-robot openshift-ci-robot added the bugzilla/severity-high Referenced Bugzilla bug's severity is high for the branch this PR is targeting. label Aug 25, 2020
@openshift-ci-robot
Copy link
Contributor

@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
  • bug is open, matching expected state (open)
  • bug target release (4.6.0) matches configured target release for branch (4.6.0)
  • bug is in the state ASSIGNED, which is one of the valid states (NEW, ASSIGNED, ON_DEV, POST, POST)

In response to this:

Bug 1871108: usability bug: the ui selections are unclear

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.

@openshift-ci-robot openshift-ci-robot added bugzilla/valid-bug Indicates that a referenced Bugzilla bug is valid for the branch this PR is targeting. component/kubevirt Related to kubevirt-plugin labels Aug 25, 2020
@glekner
Copy link
Contributor Author

glekner commented Aug 25, 2020

@suomiy @matthewcarleton thoughts?

@matthewcarleton
Copy link
Contributor

I guess an alternative to this would be to scroll the user down so the whole dropdown is visible.

@glekner glekner force-pushed the fix-1871108 branch 2 times, most recently from 28417fd to caf463c Compare August 26, 2020 15:27
@glekner
Copy link
Contributor Author

glekner commented Aug 26, 2020

  • OS and Flavor components are now separated.
  • Source is now between them

Some of the dropdown's content is still hidden by the footer but at least the user will know to scroll.

@suomiy @yaacov @irosenzw can you review

@matthewcarleton
Copy link
Contributor

@glekner Is there a reason why the selection titles don't align with the design?
image

@@ -128,6 +114,34 @@ export const VMSettingsTabComponent: React.FC<VMSettingsTabComponentProps> = ({
onProvisionSourceStorageChange={updateStorage}
provisionSourceStorage={provisionSourceStorage}
/>
<Flavor
Copy link
Member

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;
Copy link
Member

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,
Copy link
Member

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;
Copy link
Member

Choose a reason for hiding this comment

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

no need for these

@glekner
Copy link
Contributor Author

glekner commented Aug 30, 2020

  • Source dropdown now overlaps the wizard footer
  • removed unused props

can you approve @suomiy

@jelkosz
Copy link

jelkosz commented Aug 31, 2020

@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:
"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."

<FormSelectPlaceholderOption
placeholder={getPlaceholder(VMSettingsField.PROVISION_SOURCE_TYPE)}
isDisabled={!!provisionSourceValue}
<Select
Copy link
Member

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.

@glekner
Copy link
Contributor Author

glekner commented Aug 31, 2020

@jelkosz updated PXE text
@suomiy added PF_SELECT field type. the only supported prop I can see is isDisabled

@glekner
Copy link
Contributor Author

glekner commented Aug 31, 2020

/retest

@openshift-ci-robot openshift-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Aug 31, 2020
/>
<Select
isOpen={isSourceOpen}
selections={provisionSourceValue}
Copy link
Member

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)}
Copy link
Member

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.

@openshift-ci-robot openshift-ci-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Sep 1, 2020
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';
Copy link

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 :) )

Copy link

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';
Copy link

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?

Copy link

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?

Copy link
Contributor

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.

Copy link
Member

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?

Copy link

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.

@glekner
Copy link
Contributor Author

glekner commented Sep 2, 2020

@suomiy

  • added labels to ProvisionSource
  • created FormPFSelect component

@yaacov
Copy link
Member

yaacov commented Sep 14, 2020

/lgtm
/retest

@openshift-ci-robot openshift-ci-robot added lgtm Indicates that a PR is ready to be merged. approved Indicates a PR has been approved by an approver from all required OWNERS files. labels Sep 14, 2020
@openshift-ci-robot openshift-ci-robot removed the lgtm Indicates that a PR is ready to be merged. label Sep 14, 2020
@yaacov
Copy link
Member

yaacov commented Sep 14, 2020

/lgtm

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

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-ci-robot openshift-ci-robot removed the lgtm Indicates that a PR is ready to be merged. label Sep 14, 2020
@yaacov
Copy link
Member

yaacov commented Sep 14, 2020

/lgtm

@openshift-ci-robot openshift-ci-robot added the lgtm Indicates that a PR is ready to be merged. label Sep 14, 2020
@openshift-ci-robot openshift-ci-robot removed the lgtm Indicates that a PR is ready to be merged. label Sep 14, 2020
@yaacov
Copy link
Member

yaacov commented Sep 14, 2020

/lgtm

@openshift-ci-robot openshift-ci-robot added the lgtm Indicates that a PR is ready to be merged. label Sep 14, 2020
@@ -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
Copy link
Contributor

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"

Copy link
Member

Choose a reason for hiding this comment

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

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

1 similar comment
@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-ci-robot openshift-ci-robot removed the lgtm Indicates that a PR is ready to be merged. label Sep 14, 2020
@yaacov
Copy link
Member

yaacov commented Sep 14, 2020

/lgtm

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

[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 /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-merge-robot openshift-merge-robot merged commit fcf5f21 into openshift:master Sep 14, 2020
@openshift-ci-robot
Copy link
Contributor

@glekner: All pull requests linked via external trackers have merged:

Bugzilla bug 1871108 has been moved to the MODIFIED state.

In response to this:

Bug 1871108: usability bug: the ui selections are unclear

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.

@glekner glekner deleted the fix-1871108 branch September 14, 2020 21:54
@spadgett spadgett added this to the v4.6 milestone Sep 15, 2020
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. bugzilla/severity-high Referenced Bugzilla bug's severity is high for the branch this PR is targeting. bugzilla/valid-bug Indicates that a referenced Bugzilla bug is valid for the branch this PR is targeting. component/kubevirt Related to kubevirt-plugin lgtm Indicates that a PR is ready to be merged.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

10 participants