From: Lucas Di Pentima Date: Fri, 18 Mar 2022 20:51:17 +0000 (-0300) Subject: 16672: Adds toggable word-wrapping to the log panel. X-Git-Tag: 2.4.0~2^2~9 X-Git-Url: https://git.arvados.org/arvados-workbench2.git/commitdiff_plain/3dad010ab289e3409827221ee2a337b4417ee5df 16672: Adds toggable word-wrapping to the log panel. Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima --- diff --git a/src/components/icon/icon.tsx b/src/components/icon/icon.tsx index 54b7bee6..7fb74e81 100644 --- a/src/components/icon/icon.tsx +++ b/src/components/icon/icon.tsx @@ -65,6 +65,7 @@ import VpnKey from '@material-ui/icons/VpnKey'; import LinkOutlined from '@material-ui/icons/LinkOutlined'; import RemoveRedEye from '@material-ui/icons/RemoveRedEye'; import Computer from '@material-ui/icons/Computer'; +import WrapText from '@material-ui/icons/WrapText'; // Import FontAwesome icons import { library } from '@fortawesome/fontawesome-svg-core'; @@ -173,3 +174,4 @@ export const CanReadIcon: IconType = (props) => ; export const CanWriteIcon: IconType = (props) => ; export const CanManageIcon: IconType = (props) => ; export const AddUserIcon: IconType = (props) => ; +export const WordWrapIcon: IconType = (props) => ; diff --git a/src/views/process-panel/process-log-card.tsx b/src/views/process-panel/process-log-card.tsx index bd700bcd..bbb4ff9d 100644 --- a/src/views/process-panel/process-log-card.tsx +++ b/src/views/process-panel/process-log-card.tsx @@ -2,7 +2,7 @@ // // SPDX-License-Identifier: AGPL-3.0 -import React from 'react'; +import React, { useState } from 'react'; import { StyleRulesCallback, WithStyles, @@ -20,7 +20,8 @@ import { CloseIcon, CollectionIcon, LogIcon, - MaximizeIcon + MaximizeIcon, + WordWrapIcon } from 'components/icon/icon'; import { Process } from 'store/processes/process'; import { MPVPanelProps } from 'components/multi-panel-view/multi-panel-view'; @@ -84,8 +85,9 @@ type ProcessLogsCardProps = ProcessLogsCardDataProps export const ProcessLogsCard = withStyles(styles)( ({ classes, process, filters, selectedFilter, lines, onLogFilterChange, navigateToLog, - doHidePanel, doMaximizePanel, panelMaximized, panelName }: ProcessLogsCardProps) => - + doHidePanel, doMaximizePanel, panelMaximized, panelName }: ProcessLogsCardProps) => { + const [wordWrapToggle, setWordWrapToggle] = useState(true); + return } @@ -94,6 +96,13 @@ export const ProcessLogsCard = withStyles(styles)( + + + setWordWrapToggle(!wordWrapToggle)}> + + + + navigateToLog(process.containerRequest.logUuid!)}> @@ -124,7 +133,7 @@ export const ProcessLogsCard = withStyles(styles)( spacing={24} direction='column'> - + : -); +}); diff --git a/src/views/process-panel/process-log-code-snippet.tsx b/src/views/process-panel/process-log-code-snippet.tsx index 01f5ca1c..eb3ede6f 100644 --- a/src/views/process-panel/process-log-code-snippet.tsx +++ b/src/views/process-panel/process-log-code-snippet.tsx @@ -8,10 +8,11 @@ import { CodeSnippet } from 'components/code-snippet/code-snippet'; import grey from '@material-ui/core/colors/grey'; import { ArvadosTheme } from 'common/custom-theme'; -type CssRules = 'codeSnippet' | 'codeSnippetContainer'; +type CssRules = 'wordWrap' | 'codeSnippetContainer'; const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ - codeSnippet: { + wordWrap: { + whiteSpace: 'pre-wrap', }, codeSnippetContainer: { height: `calc(100% - ${theme.spacing.unit * 4}px)`, // so that horizontal scollbar is visible @@ -37,11 +38,13 @@ const theme = createMuiTheme({ interface ProcessLogCodeSnippetProps { lines: string[]; + wordWrap?: boolean; } export const ProcessLogCodeSnippet = withStyles(styles)( (props: ProcessLogCodeSnippetProps & WithStyles) => - ); \ No newline at end of file