-
Notifications
You must be signed in to change notification settings - Fork 903
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
feat(core): add one click details information popover for failed pipeline stage #8325
feat(core): add one click details information popover for failed pipeline stage #8325
Conversation
New feature can be enabled/disabled via executionMarkerInformationPopover in the settings.js spinnakerSettings:feature section ExecutionMarker.tsx now loads the new component and for a stage with status 'terminal', type 'pipeline' and will add an font-awesome information circle icon to the stage When information icon is clicked popover will load and traverse through the execution => terminal stage(pipeline) until the last instance is found then report that actual error stage and execution allowing for quick access and viewing popover is not using jquery or bootstrap but does use the react-bootstrap css classes ExecutionMarkerInformationPopover component adds/removes listeners for the window.resize and '.all-execution-groups' scroll events to allow for updating it's position and 'nubbin' position, scrolling the clicked stage as it hit the stop container will close ExecutionMarkerInformationPopoverState caches and validates api calls returning cached versions for quicker access since there can be many calls made to the same execution/pipelineConfigs etc Lists the execution history in reverse order as clickable rows Has secondary area for showing history again in reverse order using the spinnaker PipelineGraph component
The following commits need their title changed:
Please format your commit title into the form:
This allows us to easily generate changelogs & determine semantic version numbers when cutting releases. You can read more about commit conventions 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.
🎉 I built your branch locally and played around with this a bit, and it looks 💯! Thanks for the excellent work!
Besides several questions and codestyle nits I've left inline, my biggest concern is around the fragile logic in ExecutionMarkerInformationPopover
for adjusting the modal based on resize/scroll events. Given that other modals in Spinnaker are not responsive in this way, I'm hesitant to add a lot of complexity to this one particular component that seems likely to unexpectedly break if someone were to, for example, refactor its CSS. Do we feel this would be usable without such resize/scroll responsiveness?
Thanks again for the great contribution!
app/scripts/modules/core/src/pipeline/config/graph/pipelineGraph.service.ts
Outdated
Show resolved
Hide resolved
app/scripts/modules/core/src/pipeline/executions/execution/ExecutionMarker.tsx
Outdated
Show resolved
Hide resolved
app/scripts/modules/core/src/pipeline/executions/execution/ExecutionMarker.tsx
Outdated
Show resolved
Hide resolved
...scripts/modules/core/src/pipeline/executions/execution/ExecutionMarkerInformationPopover.tsx
Outdated
Show resolved
Hide resolved
...scripts/modules/core/src/pipeline/executions/execution/ExecutionMarkerInformationPopover.tsx
Outdated
Show resolved
Hide resolved
...scripts/modules/core/src/pipeline/executions/execution/ExecutionMarkerInformationPopover.tsx
Outdated
Show resolved
Hide resolved
...scripts/modules/core/src/pipeline/executions/execution/ExecutionMarkerInformationPopover.tsx
Outdated
Show resolved
Hide resolved
...scripts/modules/core/src/pipeline/executions/execution/ExecutionMarkerInformationPopover.tsx
Outdated
Show resolved
Hide resolved
Address some minor PR review comments
…popover_for_failed_pipeline_stage
@maggieneterval I fixed up issues in commit f508b64 and added some inline comments to help with the "why's" of some of the code let me now what you think. |
Thanks so much, @sseale and @RodEsp! Apologies for not thinking of this right away, but how would you feel about removing the custom resize/scroll handling and instead placing this component inside Deck's existing Modal component? I think it would be preferable in terms of visual consistency as well. The other pre-existing component Deck has for opening content in the foreground above the main view is the HoverablePopover. This also handles placement in relation to the anchor element, but automatically opens/closes on hover start/end, so likely would be less than ideal for a large component like this from which you expect users to need to click into other elements. Let me know what you think! |
And one final minor issue I just discovered while running the latest version of your branch is the following warning about non-unique keys:
|
Heya @maggieneterval, will definitely take care of that unique key warning. I was playing around last week with re-implementing this not with the Thanks for the |
@maggieneterval @RodEsp we can try to play around with the modal and just have it open and not worry about all the event handlers. Each stage is already a Tooltip component so not sure how well wrapping a tooltip with a tooltip/popover works. Sorry i thought i added the new key in to fix that but realized i added it to our custom version in 1.19. We will get that fixed as well. |
…popover_for_failed_pipeline_stage
…lick_details_information_popover_for_failed_pipeline_stage
@maggieneterval this is now using the Modal |
app/scripts/modules/core/src/pipeline/executions/execution/executionMarker.less
Outdated
Show resolved
Hide resolved
...scripts/modules/core/src/pipeline/executions/execution/ExecutionMarkerInformationPopover.tsx
Outdated
Show resolved
Hide resolved
...scripts/modules/core/src/pipeline/executions/execution/ExecutionMarkerInformationPopover.tsx
Outdated
Show resolved
Hide resolved
renamed files to modal from popover renamed state file to service added service spec skipped tests for now, not sure what i'm doing fixed a few issue in pr
…popover_for_failed_pipeline_stage
@maggieneterval i have made some changes but have not figure out anything with the ui router component wrapped around an tr as i mentioned above. i added in a service spec but skipping the two tests for now. |
…popover_for_failed_pipeline_stage
…popover_for_failed_pipeline_stage
runs fine locally doesn't in github => testing
…ailed_pipeline_stage' of github.com:sseale/deck into feature/add_one_click_details_information_popover_for_failed_pipeline_stage
each td now have a UISref component in it
@maggieneterval i believe i have all the issues addressed now |
…popover_for_failed_pipeline_stage
…popover_for_failed_pipeline_stage
app/scripts/modules/core/src/pipeline/executions/execution/ExecutionMarker.tsx
Outdated
Show resolved
Hide resolved
app/scripts/modules/core/src/pipeline/executions/execution/ExecutionMarker.tsx
Outdated
Show resolved
Hide resolved
app/scripts/modules/core/src/pipeline/executions/execution/ExecutionMarkerInformationModal.tsx
Outdated
Show resolved
Hide resolved
app/scripts/modules/core/src/pipeline/executions/execution/ExecutionMarkerInformationModal.tsx
Outdated
Show resolved
Hide resolved
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.
Pending resolution of a few remaining comments, would love to merge this by end of day Friday so it makes it in time for the 1.21 release.
If anyone else who saw this demo'd at the UI SIG (@caseyhebebrand @erikmunson @gcomstock) wants to take a pass as well before we merge, please feel free!
…popover_for_failed_pipeline_stage
Thank you so much with all your help on this Maggie! |
Thanks for the demo and all your work on this, @RodEsp ! I don't have any feedback that should bar this from being merged. I would be happy to pass along how users receive it over at netflix though, and once I see a lot of real data flow through it, I might pop back around with the design feedback if needed. Thanks again! |
Sounds great, thanks @gcomstock, although @sseale did the vast majority of the work here :) Would love to get feedback on what Netflix thinks! |
Copy of #8322, but rebased on and PR'ed against
master
.feat(execution/ExecutionMarkerInformationPopover) Adds 1-click access to the actual error at the last level pipeline