import { cancelRunningWorkflow, resumeOnHoldWorkflow, startWorkflow } from "store/processes/processes-actions";
import { navigateToLogCollection, pollProcessLogs, setProcessLogsPanelFilter } from "store/process-logs-panel/process-logs-panel-actions";
import { snackbarActions, SnackbarKind } from "store/snackbar/snackbar-actions";
+import { getInlineFileUrl } from "views-components/context-menu/actions/helpers";
const mapStateToProps = ({ router, auth, resources, processPanel, processLogsPanel }: RootState): ProcessPanelRootDataProps => {
const uuid = getProcessPanelCurrentUuid(router) || "";
const subprocesses = getSubprocesses(uuid)(resources);
+ const process = getProcess(uuid)(resources);
return {
- process: getProcess(uuid)(resources),
+ process,
subprocesses: subprocesses.filter(subprocess => processPanel.filters[getProcessStatus(subprocess)]),
filters: getFilters(processPanel, subprocesses),
processLogsPanel: processLogsPanel,
outputDefinitions: processPanel.outputDefinitions,
outputParams: processPanel.outputParams,
nodeInfo: processPanel.nodeInfo,
- usageReport: processPanel.usageReport,
+ usageReport: (process || null) && processPanel.usageReport && getInlineFileUrl(
+ `${auth.config.keepWebServiceUrl}${processPanel.usageReport.url}?api_token=${auth.apiToken}`,
+ auth.config.keepWebServiceUrl,
+ auth.config.keepWebInlineServiceUrl
+ ),
};
};
Typography,
Grid,
Link,
+ Button
} from '@material-ui/core';
import { ArvadosTheme } from 'common/custom-theme';
import {
import { DetailsAttribute } from "components/details-attribute/details-attribute";
import { formatFileSize } from "common/formatters";
import { MountKind } from 'models/mount-types';
-import { CollectionFile } from 'models/collection-file';
interface ProcessResourceCardDataProps {
process: Process;
nodeInfo: NodeInstanceType | null;
- usageReport: CollectionFile | null;
+ usageReport: string | null;
}
type CssRules = "card" | "header" | "title" | "avatar" | "iconHeader" | "content" | "sectionH3";
}
action={
<div>
+ {usageReport && <Button href={usageReport} variant="contained" color="primary">Resource usage report</Button>}
{doUnMaximizePanel && panelMaximized &&
<Tooltip title={`Unmaximize ${panelName || 'panel'}`} disableFocusListener>
<IconButton onClick={doUnMaximizePanel}><UnMaximizeIcon /></IconButton>
</div>
} />
<CardContent className={classes.content}>
- {usageReport && <Link href={usageReport.url}>Resource usage report</Link>}
<Grid container>
<Grid item xs={4}>
<h3 className={classes.sectionH3}>Requested Resources</h3>