|
|
@ -75,12 +75,11 @@ const getStyles = memoizeOne((theme: GrafanaTheme2) => { |
|
|
|
align-items: center; |
|
|
|
align-items: center; |
|
|
|
line-height: 22px; |
|
|
|
line-height: 22px; |
|
|
|
|
|
|
|
|
|
|
|
.show-on-hover { |
|
|
|
.log-details-value-copy { |
|
|
|
display: inline; |
|
|
|
|
|
|
|
visibility: hidden; |
|
|
|
visibility: hidden; |
|
|
|
} |
|
|
|
} |
|
|
|
&:hover { |
|
|
|
&:hover { |
|
|
|
.show-on-hover { |
|
|
|
.log-details-value-copy { |
|
|
|
visibility: visible; |
|
|
|
visibility: visible; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -206,7 +205,7 @@ class UnThemedLogDetailsRow extends PureComponent<Props, State> { |
|
|
|
const styles = getStyles(theme); |
|
|
|
const styles = getStyles(theme); |
|
|
|
|
|
|
|
|
|
|
|
return ( |
|
|
|
return ( |
|
|
|
<div className={cx('show-on-hover', styles.copyButton)}> |
|
|
|
<div className={`log-details-value-copy ${styles.copyButton}`}> |
|
|
|
<ClipboardButton |
|
|
|
<ClipboardButton |
|
|
|
getText={() => val} |
|
|
|
getText={() => val} |
|
|
|
title="Copy value to clipboard" |
|
|
|
title="Copy value to clipboard" |
|
|
@ -254,7 +253,7 @@ class UnThemedLogDetailsRow extends PureComponent<Props, State> { |
|
|
|
} = this.props; |
|
|
|
} = this.props; |
|
|
|
const { showFieldsStats, fieldStats, fieldCount } = this.state; |
|
|
|
const { showFieldsStats, fieldStats, fieldCount } = this.state; |
|
|
|
const styles = getStyles(theme); |
|
|
|
const styles = getStyles(theme); |
|
|
|
const style = getLogRowStyles(theme); |
|
|
|
const rowStyles = getLogRowStyles(theme); |
|
|
|
const singleKey = parsedKeys == null ? false : parsedKeys.length === 1; |
|
|
|
const singleKey = parsedKeys == null ? false : parsedKeys.length === 1; |
|
|
|
const singleVal = parsedValues == null ? false : parsedValues.length === 1; |
|
|
|
const singleVal = parsedValues == null ? false : parsedValues.length === 1; |
|
|
|
const hasFilteringFunctionality = !disableActions && onClickFilterLabel && onClickFilterOutLabel; |
|
|
|
const hasFilteringFunctionality = !disableActions && onClickFilterLabel && onClickFilterOutLabel; |
|
|
@ -273,8 +272,8 @@ class UnThemedLogDetailsRow extends PureComponent<Props, State> { |
|
|
|
|
|
|
|
|
|
|
|
return ( |
|
|
|
return ( |
|
|
|
<> |
|
|
|
<> |
|
|
|
<tr className={cx(style.logDetailsValue)}> |
|
|
|
<tr className={rowStyles.logDetailsValue}> |
|
|
|
<td className={style.logsDetailsIcon}> |
|
|
|
<td className={rowStyles.logsDetailsIcon}> |
|
|
|
<div className={styles.buttonRow}> |
|
|
|
<div className={styles.buttonRow}> |
|
|
|
{hasFilteringFunctionality && ( |
|
|
|
{hasFilteringFunctionality && ( |
|
|
|
<> |
|
|
|
<> |
|
|
@ -311,7 +310,7 @@ class UnThemedLogDetailsRow extends PureComponent<Props, State> { |
|
|
|
</td> |
|
|
|
</td> |
|
|
|
|
|
|
|
|
|
|
|
{/* Key - value columns */} |
|
|
|
{/* Key - value columns */} |
|
|
|
<td className={style.logDetailsLabel}>{singleKey ? parsedKeys[0] : this.generateMultiVal(parsedKeys)}</td> |
|
|
|
<td className={rowStyles.logDetailsLabel}>{singleKey ? parsedKeys[0] : this.generateMultiVal(parsedKeys)}</td> |
|
|
|
<td className={cx(styles.wordBreakAll, wrapLogMessage && styles.wrapLine)}> |
|
|
|
<td className={cx(styles.wordBreakAll, wrapLogMessage && styles.wrapLine)}> |
|
|
|
<div className={styles.logDetailsValue}> |
|
|
|
<div className={styles.logDetailsValue}> |
|
|
|
{singleVal ? parsedValues[0] : this.generateMultiVal(parsedValues, true)} |
|
|
|
{singleVal ? parsedValues[0] : this.generateMultiVal(parsedValues, true)} |
|
|
|