Skip to content
This repository was archived by the owner on May 30, 2025. It is now read-only.

Conversation

@jeff-phillips-18
Copy link
Member

Fixes

https://issues.redhat.com/browse/HAC-1943
https://issues.redhat.com/browse/HAC-1944

Description

Updates the application details view to use the application environment cards as drill downs into an application's environment details view.
Add an application environment details view showing components in the application. This view is switchable from a list view to a topology graph view with a side panel showing more details for the selected component.

Type of change

  • Feature

Screen shots / Gifs for design review

image

image

image

image

How to test or reproduce?

Navigate to the application details view.
Select the environment card you wish to view details for.
Select a component in the environment to view the side panel details.
Use the graph/list icons to switch between list and graph views.

Browser conformance:

  • Chrome
  • Firefox
  • Safari
  • Edge

@invincibleJai
Copy link
Member

/assign @rohitkrai03
/cc @sahil143 @rottencandy

@codecov
Copy link

codecov bot commented Aug 9, 2022

Codecov Report

Merging #175 (8c2b676) into main (af8638f) will increase coverage by 0.32%.
The diff coverage is 71.07%.

Impacted file tree graph

@@            Coverage Diff             @@
##             main     #175      +/-   ##
==========================================
+ Coverage   66.61%   66.94%   +0.32%     
==========================================
  Files         319      336      +17     
  Lines        6042     6492     +450     
  Branches     1437     1562     +125     
==========================================
+ Hits         4025     4346     +321     
- Misses       1911     2030     +119     
- Partials      106      116      +10     
Impacted Files Coverage Δ
...nents/ApplicationDetailsView/ComponentListView.tsx 100.00% <ø> (ø)
...ponents/ApplicationListView/ApplicationListRow.tsx 100.00% <ø> (ø)
src/pages/ApplicationDetailsPage.tsx 0.00% <0.00%> (ø)
src/pages/ApplicationEnvironmentDetailsPage.tsx 0.00% <0.00%> (ø)
src/pages/ApplicationsPage.tsx 0.00% <ø> (ø)
...hared/components/action-menu/ActionMenuContent.tsx 72.72% <ø> (ø)
...nvironment/topology/actions/contextMenuActions.tsx 37.50% <37.50%> (ø)
src/shared/utils/git-utils.tsx 38.46% <38.46%> (ø)
.../ApplicationDetailsView/ApplicationDetailsView.tsx 90.47% <50.00%> (-2.86%) ⬇️
...onents/Environment/ApplicationEnvironmentCards.tsx 57.57% <50.00%> (-4.33%) ⬇️
... and 20 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update af8638f...8c2b676. Read the comment docs.

Copy link
Contributor

@karthikjeeyar karthikjeeyar left a comment

Choose a reason for hiding this comment

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

I have tried locally Initial node position is not centered 🤔

image

</Bullseye>
);

if (applicationError || !applicationLoaded || environmentError || !environmentLoaded) {
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
if (applicationError || !applicationLoaded || environmentError || !environmentLoaded) {
if (applicationError || !applicationLoaded || environmentError || !environmentLoaded || !componentsLoaded) {

</FlexItem>
<FlexItem>
<Tooltip content="Route">
<ExternalLink href={componentRouteWebURL} text={<ExternalLinkAltIcon />} />
Copy link
Contributor

Choose a reason for hiding this comment

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

Clicking on this link opens the sidebar.

@jeff-phillips-18
Copy link
Member Author

import imageUrl from '../imgs/getting-started-illustration.svg';
import { getQueryArgument } from '../shared/utils';

const GETTING_STARTED_MODAL_KEY = 'application-list-getting-started-modal';
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
const GETTING_STARTED_MODAL_KEY = 'application-list-getting-started-modal';
const GETTING_STARTED_MODAL_KEY = 'environment-details-getting-started-modal';

INVALID = '',
}

export const gitUrlRegex =
Copy link
Contributor

Choose a reason for hiding this comment

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

We have gitUrlRegex already in src/components/ImportForm/utils/validation-utils.ts

@jeff-phillips-18
Copy link
Member Author

@jeff-phillips-18
Copy link
Member Author

@karthikjeeyar @rottencandy Could you please take another look?

@beaumorley @Ranelim @serenamarie125 Any comments from UX/PM?

@karthikjeeyar
Copy link
Contributor

Hard coded values such as commit info and status & date in environment card will be addressed in separate ticket ?

@jeff-phillips-18
Copy link
Member Author

Hard coded values such as commit info and status & date in environment card will be addressed in separate ticket ?

Yes, unless those are now available. The hard coded values were there already.

Copy link
Contributor

@rohitkrai03 rohitkrai03 left a comment

Choose a reason for hiding this comment

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

When switching from list view to graph view with an item selected. I cannot select the node again once the sidebar is closed.

Screen.Recording.2022-08-17.at.7.27.45.PM.mov

Also, should we even show the revision details right now with dummy data or wait for the API to provide information and then add it? cc: @serenamarie125 @beaumorley

{
type: 'core.page/route',
properties: {
path: '/app-studio/application-environment-details',
Copy link
Contributor

Choose a reason for hiding this comment

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

HAC Core now support routes with params. So maybe we can use that instead of query params here -

Suggested change
path: '/app-studio/application-environment-details',
path: '/app-studio/applications/:appName/environments/:envName',

PS: We also need to update the current application route to support route param. Something like - /app-studio/applications/:appName

actions={actions}
>
<PageSection>
<Flex>
Copy link
Contributor

Choose a reason for hiding this comment

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

Do we need this flex anymore?

@jeff-phillips-18
Copy link
Member Author

Collapsed state form environments on Application page:
image

@openshift-merge-robot openshift-merge-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Aug 18, 2022
@openshift-merge-robot openshift-merge-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Aug 18, 2022
@serenamarie125
Copy link

@rohitkrai03 in my opinion, the more we can show the better. It helps us to get feedback.

@itsptk
Copy link

itsptk commented Aug 18, 2022

I created a doc of notes about the implementation of the application view, and have included the environment view specific notes in this comment, since those seem to be the focus of this PR.

  • “Application healthy” “Deployment strategy” should all have the second word lowercase
  • “Automated” should be “Automatic” deployment strategy
  • “Last deploy” label should be “Last deployment”
  • Route, Image, and Code repository links in the side panel should all seemingly include external link icons at the end
  • A kebab menu was shown in the topology side panel in the design to match the list view, whereas an Actions menu appears in the implementation

Note: This list doesn't capture any sort of adjustments based on the absence of the ‘Components’ card and the selection behavior that drives changing the detailed content below. My understanding is that this was an iteration for milestone 7 of this view's development and those interactions could still come in later milestones.

@jeff-phillips-18
Copy link
Member Author

  • “Application healthy” “Deployment strategy” should all have the second word lowercase

👍

  • “Automated” should be “Automatic” deployment strategy

This is in the application detail page, I have not updated that and I know there are changes being made. Not part of this PR.

  • “Last deploy” label should be “Last deployment”

👍

  • Route, Image, and Code repository links in the side panel should all seemingly include external link icons at the end

It looks bad to me to have 4 links in the side panel each with the external link icon. To me it is fairly obvious that they are links and therefore also expect them to open in a new tab. Seems extraneous and cluttering. If UX feels strongly I will add them, but against my better judgement.

  • A kebab menu was shown in the topology side panel in the design to match the list view, whereas an Actions menu appears in the implementation

The kebab menu looks bad next to the close (x) button. Openshift uses the Actions dropdown so I went with that. If UX feels strongly I will change to the kebab, but against my better judgement.

@jeff-phillips-18
Copy link
Member Author

image

@itsptk
Copy link

itsptk commented Aug 19, 2022

Note: This list doesn't capture any sort of adjustments based on the absence of the ‘Components’ card and the selection behavior that drives changing the detailed content below. My understanding is that this was an iteration for milestone 7 of this view's development and those interactions could still come in later milestones.

Regarding this interaction, @jeff-phillips-18 mentioned that he might be able to implement the switching interaction in M7 as a separate PR, just so we could try iterating on the view to see how it looks and where any issues lie. If that PR can't merge in time or we decide not to go that route for now, at least this existing PR will have already merged with the environment view functionality as a drill-in for M7 and we can revisit in M8.

I suspect when we implement the switching behavior, we will confirm that the space for the topology graph view and side panel is fairly constrained when the cards are expanded. My hope is that by iterating on that PR we can find an acceptable layout that offers the user sufficient space to interact with the environment’s components, and also still retains the card flow view of the components into the Development environment into subsequent environments, since I do think that is beneficial to orienting the user, and also very explicitly shows the user what environments’ details they are looking at (which seems to be important.)

cc @beaumorley @rohitkrai03 @serenamarie125

Copy link
Contributor

@rohitkrai03 rohitkrai03 left a comment

Choose a reason for hiding this comment

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

@jeff-phillips-18 I am still seeing the issue where I am not able to select the node if i switch from list view to graph view with a node selected. Also the search is not highlighting the nodes.

@jeff-phillips-18
Copy link
Member Author

@rohitkrai03 Every other view filters out the non-matches. Do we want this view to be different? Only the graph view or both the graph and list view?

@jeff-phillips-18 jeff-phillips-18 force-pushed the environment-details branch 2 times, most recently from aacf940 to 22eeeaa Compare August 24, 2022 13:53
@karthikjeeyar
Copy link
Contributor

/lgtm

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Aug 24, 2022
@jeff-phillips-18
Copy link
Member Author

@rohitkrai03 Any further thoughts?

@openshift-ci openshift-ci bot removed the lgtm Indicates that a PR is ready to be merged. label Aug 25, 2022
@openshift-merge-robot openshift-merge-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Aug 25, 2022
@openshift-merge-robot openshift-merge-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Aug 25, 2022
@karthikjeeyar
Copy link
Contributor

/retest

@karthikjeeyar
Copy link
Contributor

/lgtm

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Aug 25, 2022
@karthikjeeyar
Copy link
Contributor

karthikjeeyar commented Aug 26, 2022

There is a test failure due to new route in hacbs ImportForm submit handler.

@openshift-ci openshift-ci bot removed the lgtm Indicates that a PR is ready to be merged. label Aug 26, 2022
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Aug 26, 2022

@jeff-phillips-18: all tests passed!

Full PR test history. Your PR dashboard.

Details

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. I understand the commands that are listed here.

@karthikjeeyar
Copy link
Contributor

/lgtm

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Aug 26, 2022
Copy link
Contributor

@rohitkrai03 rohitkrai03 left a comment

Choose a reason for hiding this comment

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

/approve

@rohitkrai03 rohitkrai03 merged commit 516a64a into openshift:main Aug 26, 2022
@rohitkrai03 rohitkrai03 added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Aug 26, 2022
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Aug 26, 2022

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: jeff-phillips-18, rohitkrai03

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

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. lgtm Indicates that a PR is ready to be merged.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants