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
Improve Installed Operators list page #4830
Improve Installed Operators list page #4830
Conversation
92ae2a2
to
5e52578
Compare
123abe6
to
d328f68
Compare
e14c823
to
babf9a1
Compare
9e63720
to
a78f2b7
Compare
Hi @rebeccaalpert still taking a look at this, but at first glance we should add The Namespace where the Operator is installed to the Subscription page popover. |
All set @rachael-phillips! |
a1fc0bd
to
c4c7ce1
Compare
frontend/packages/operator-lifecycle-manager/src/components/clusterserviceversion.tsx
Outdated
Show resolved
Hide resolved
frontend/packages/operator-lifecycle-manager/src/components/clusterserviceversion.tsx
Outdated
Show resolved
Hide resolved
frontend/packages/operator-lifecycle-manager/src/components/clusterserviceversion.tsx
Outdated
Show resolved
Hide resolved
} | ||
|
||
componentDidMount() { | ||
const { columns } = this.state; | ||
const componentProps: any = _.pick(this.props, [ |
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 should avoid any
type.
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 didn't write this one and I'm honestly not sure how to better define the type given that it changes so much in action.
I don't think we should modify the popover. These descriptions come entirely from the API documentation today. I think it's a bad idea to diverge from our API doc and special case certain fields in console with special documentation. What you see in the popover should match |
let label = 'Namespace'; | ||
if (kind === 'Subscription') { | ||
label = 'Operator Namespace'; | ||
} | ||
if (kind === 'ClusterServiceVersion') { | ||
label = 'Managed Namespace'; | ||
} |
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 agree with @christianvogt that this component should be generic and not know about these kinds.
From a UX standpoint, I also think this change is confusing as well. Calling it something other than Namespace
makes me think the resource is in a different namespace and is just managing this namespace, which is not the case. It makes me think I can change the managed namespace, which I can't.
This component is here to ensure consistency across pages, and every other page calls this Namespace
. Namespace
also matches what the CLI and YAML show. It's hard to change this label because it should be hard to change this label. Changing it creates an inconsistency.
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.
@alimobrem @tlwu2013 @dmesser what are your thoughts on this? Curious to hear what you think, as well.
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 see the value in indicating to the user what the actual labels are so that they can map them to the CLI/YAML, and also pulling the contents of the popover from API descriptions to keep them current. I do think though, that doesn't leave much room in these details screens to inject any additional UX niceness (further describing a namespace as "operator" or "managed" for example.)
Perhaps we could have some common paradigm where these labels are allowed to be changed in the UI (some sort of 'display name') and if that is present, add the actual resource label name is added to the popover contents for reference.
"Appears as Namespace
in the ClusterServiceVersion
YAML."
Alternatively, maybe these popovers could be divided into two sections, an optional 'ui-specified' description that appears first, followed by the API description.
It would seem unfortunate to try to further describe these two kinds of namespaces in the list view's column headers and not have any indication of which are which in the resource details.
@rebeccaalpert I was wondering what view this screen was conveying? Is this when there is no subscription associated with the CSV? |
Hey @itsptk - Subscriptions show up in the Installed Operators view while the operator is installing or if it fails to install. (The row disappears once the operator is successfully installed and is replaced with the operator's details). This screen illustrates how subscriptions handle the new columns like "Managed Namespace." |
ed99ca9
to
cdfb045
Compare
cdfb045
to
2b13ecb
Compare
frontend/packages/operator-lifecycle-manager/src/components/clusterserviceversion.tsx
Outdated
Show resolved
Hide resolved
frontend/packages/operator-lifecycle-manager/src/components/clusterserviceversion.tsx
Outdated
Show resolved
Hide resolved
frontend/packages/operator-lifecycle-manager/src/components/clusterserviceversion.tsx
Outdated
Show resolved
Hide resolved
frontend/packages/operator-lifecycle-manager/src/components/clusterserviceversion.tsx
Outdated
Show resolved
Hide resolved
frontend/packages/operator-lifecycle-manager/src/components/clusterserviceversion.tsx
Outdated
Show resolved
Hide resolved
frontend/packages/operator-lifecycle-manager/src/components/clusterserviceversion.tsx
Outdated
Show resolved
Hide resolved
frontend/packages/operator-lifecycle-manager/src/components/clusterserviceversion.tsx
Outdated
Show resolved
Hide resolved
frontend/packages/operator-lifecycle-manager/src/components/clusterserviceversion.tsx
Outdated
Show resolved
Hide resolved
frontend/packages/operator-lifecycle-manager/src/components/clusterserviceversion.tsx
Outdated
Show resolved
Hide resolved
2b13ecb
to
d709227
Compare
I pushed the PR feedback I can implement right now. |
frontend/packages/operator-lifecycle-manager/src/components/clusterserviceversion.tsx
Outdated
Show resolved
Hide resolved
frontend/packages/operator-lifecycle-manager/src/components/clusterserviceversion.tsx
Outdated
Show resolved
Hide resolved
frontend/packages/operator-lifecycle-manager/src/components/clusterserviceversion.tsx
Outdated
Show resolved
Hide resolved
frontend/packages/operator-lifecycle-manager/src/components/clusterserviceversion.tsx
Outdated
Show resolved
Hide resolved
frontend/packages/operator-lifecycle-manager/src/components/clusterserviceversion.tsx
Outdated
Show resolved
Hide resolved
d709227
to
527f596
Compare
Addressed round of PR feedback (refactored into component, renamed column classes, etc.) |
/approve 👍 to the approach, getting closer, just a couple items left for the |
527f596
to
99212c9
Compare
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.
/lgtm
frontend/packages/operator-lifecycle-manager/src/components/clusterserviceversion.tsx
Outdated
Show resolved
Hide resolved
Removed deployment column and added columns for last updated, managed namespace,and operator namespace (present only on All Projects view). If operators are installed globally, we now only show one row. If operators are installed in more than one namespace, we now have a popover to list the namespaces. Fixes https://issues.redhat.com/browse/CONSOLE-2130
99212c9
to
c86e57f
Compare
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.
/lgtm
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: benjaminapetersen, rachael-phillips, rebeccaalpert, spadgett 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 |
/test frontend |
/hold |
/hold cancel |
Fixes 98% of https://issues.redhat.com/browse/CONSOLE-2130.
Changes
The PatternFly React table does not currently support popovers in sortable headers, so that will be done as a follow-on. (I created this issue to track this: https://issues.redhat.com/browse/CONSOLE-2168.)
Screenshots
Before:
After (all projects):
After (single project):
Multinamespace:
All namespaces:
Subscription:
CSV Details Page:
Subscription Details Page:
Heads up @openshift/team-ux-review.