--- /dev/null
+// Copyright (C) The Arvados Authors. All rights reserved.
+//
+// SPDX-License-Identifier: AGPL-3.0
+
+import * as React from 'react';
+import { MuiThemeProvider, createMuiTheme } from '@material-ui/core/styles';
+import { CodeSnippet, CodeSnippetDataProps } from '~/components/code-snippet/code-snippet';
+import grey from '@material-ui/core/colors/grey';
+
+const theme = createMuiTheme({
+ overrides: {
+ MuiTypography: {
+ body1: {
+ color: grey["200"]
+ },
+ root: {
+ backgroundColor: '#000'
+ }
+ }
+ },
+ typography: {
+ fontFamily: 'VT323'
+ }
+});
+
+type ProcessLogCodeSnippet = CodeSnippetDataProps;
+
+export const ProcessLogCodeSnippet = (props: ProcessLogCodeSnippet) =>
+ <MuiThemeProvider theme={theme}>
+ <CodeSnippet lines={props.lines} />
+ </MuiThemeProvider>;
\ No newline at end of file
CardHeader, IconButton, CardContent, Grid, Typography, Tooltip
} from '@material-ui/core';
import { Process } from '~/store/processes/process';
+import { ProcessLogCodeSnippet } from '~/views/process-log-panel/process-log-code-snippet';
import { ProcessLogForm, ProcessLogFormDataProps, ProcessLogFormActionProps } from '~/views/process-log-panel/process-log-form';
import { MoreOptionsIcon, ProcessIcon } from '~/components/icon/icon';
import { ArvadosTheme } from '~/common/custom-theme';
+import { CodeSnippetDataProps } from '~/components/code-snippet/code-snippet';
-type CssRules = 'root' | 'card' | 'iconHeader';
+type CssRules = 'card' | 'iconHeader' | 'link';
const styles: StyleRulesCallback<CssRules> = (theme: ArvadosTheme) => ({
- root: {
-
- },
card: {
width: '100%'
},
iconHeader: {
fontSize: '1.875rem',
color: theme.customs.colors.green700
+ },
+ link: {
+ alignSelf: 'flex-end',
+ textAlign: 'right'
}
});
process: Process;
}
-export type ProcessLogMainCardProps = ProcessLogMainCardDataProps & ProcessLogFormDataProps & ProcessLogFormActionProps;
+export type ProcessLogMainCardProps = ProcessLogMainCardDataProps & CodeSnippetDataProps & ProcessLogFormDataProps & ProcessLogFormActionProps;
export const ProcessLogMainCard = withStyles(styles)(
- ({ classes, process, selectedFilter, filters, onChange }: ProcessLogMainCardProps & WithStyles<CssRules>) =>
+ ({ classes, process, selectedFilter, filters, onChange, lines }: ProcessLogMainCardProps & WithStyles<CssRules>) =>
<Card className={classes.card}>
<CardHeader
avatar={<ProcessIcon className={classes.iconHeader} />}
<Grid item xs={6}>
<ProcessLogForm selectedFilter={selectedFilter} filters={filters} onChange={onChange} />
</Grid>
- <Grid item xs={6}>
- Container log for request ardev-xvhdp-q3uqbfxeb6w64pm
+ <Grid item xs={6} className={classes.link}>
+ <Typography component='div'>
+ Container log for request ardev-xvhdp-q3uqbfxeb6w64pm
+ </Typography>
</Grid>
<Grid item xs={12}>
- {/* add snippet */}
+ <ProcessLogCodeSnippet lines={lines}/>
</Grid>
</Grid>
</CardContent>
import { ProcessLogFormDataProps, ProcessLogFormActionProps } from '~/views/process-log-panel/process-log-form';
import { DefaultView } from '~/components/default-view/default-view';
import { ProcessIcon } from '~/components/icon/icon';
+import { CodeSnippetDataProps } from '~/components/code-snippet/code-snippet';
export type ProcessLogPanelRootDataProps = {
process?: Process;
-} & ProcessLogFormDataProps;
+} & ProcessLogFormDataProps & CodeSnippetDataProps;
export type ProcessLogPanelRootActionProps = {
onContextMenu: (event: React.MouseEvent<HTMLElement>) => void;
{ label: 'Stderr', value: 'stderr' }
];
+const lines = ['Lorem Ipsum', 'Lorem Ipsum', 'Lorem Ipsum', 'Lorem Ipsum', 'Lorem Ipsum', 'Lorem Ipsum', 'Lorem Ipsum', 'Lorem Ipsum'];
+
export interface Log {
object_uuid: string;
event_at: string;
return {
process: getProcess(uuid)(resources),
selectedFilter: SELECT_OPTIONS[0],
- filters: SELECT_OPTIONS
- // lines: string[]
+ filters: SELECT_OPTIONS,
+ lines
};
};