From: Peter Amstutz Date: Wed, 21 Feb 2024 15:47:09 +0000 (-0500) Subject: 21441: List all counts in a single tooltip X-Git-Url: https://git.arvados.org/arvados.git/commitdiff_plain/8bcea9479f65602bff315bd0f636ff8d1f1a375d 21441: List all counts in a single tooltip Arvados-DCO-1.1-Signed-off-by: Peter Amstutz --- diff --git a/services/workbench2/src/components/subprocess-progress-bar/subprocess-progress-bar.tsx b/services/workbench2/src/components/subprocess-progress-bar/subprocess-progress-bar.tsx index b21d879185..bf932cdddc 100644 --- a/services/workbench2/src/components/subprocess-progress-bar/subprocess-progress-bar.tsx +++ b/services/workbench2/src/components/subprocess-progress-bar/subprocess-progress-bar.tsx @@ -12,7 +12,7 @@ import { Dispatch } from "redux"; import { fetchSubprocessProgress } from "store/subprocess-panel/subprocess-panel-actions"; import { ProcessStatusFilter } from "store/resource-type-filters/resource-type-filters"; -type CssRules = 'progressWrapper' | 'progressStacked' ; +type CssRules = 'progressWrapper' | 'progressStacked'; const styles: StyleRulesCallback = (theme) => ({ progressWrapper: { @@ -55,9 +55,9 @@ const mapDispatchToProps = (dispatch: Dispatch): ProgressBarActionProps => ({ }); export const SubprocessProgressBar = connect(null, mapDispatchToProps)(withStyles(styles)( - ({process, classes, fetchSubprocessProgress}: ProgressBarProps) => { + ({ process, classes, fetchSubprocessProgress }: ProgressBarProps) => { - const [progressData, setProgressData] = useState(undefined); + const [progressData, setProgressData] = useState(undefined); const requestingContainerUuid = process.containerRequest.containerUuid; const isRunning = isProcessRunning(process); @@ -72,25 +72,38 @@ export const SubprocessProgressBar = connect(null, mapDispatchToProps)(withStyle } }, [fetchSubprocessProgress, isRunning, requestingContainerUuid]); + let tooltip = ""; + if (progressData) { + let total = 0; + [ProcessStatusFilter.COMPLETED, + ProcessStatusFilter.RUNNING, + ProcessStatusFilter.FAILED, + ProcessStatusFilter.QUEUED].forEach(psf => { + if (progressData[psf] > 0) { + if (tooltip.length > 0) { tooltip += ", "; } + tooltip += `${progressData[psf]} ${psf}`; + total += progressData[psf]; + } + }); + if (total > 0) { + if (tooltip.length > 0) { tooltip += ", "; } + tooltip += `${total} Total`; + } + } + return progressData !== undefined && getStatusTotal(progressData) > 0 ?
- - + + - - - - - - - - + +
: <>; } ));