Merge pull request #3855 from influxdata/logs-page-polish

Logs page polish
pull/10616/head
Daniel Campbell 2018-07-10 10:51:02 -07:00 committed by GitHub
commit 03e348063f
4 changed files with 23 additions and 15 deletions

View File

@ -32,13 +32,13 @@ class LogsFilter extends PureComponent<Props, State> {
return ( return (
<ClickOutside onClickOutside={this.handleClickOutside}> <ClickOutside onClickOutside={this.handleClickOutside}>
<li className={this.className} onClick={this.handleStartEdit}> <div className={this.className} onClick={this.handleStartEdit}>
{editing ? this.renderEditor : this.label} {editing ? this.renderEditor : this.label}
<div <div
className="logs-viewer--filter-remove" className="logs-viewer--filter-remove"
onClick={this.handleDelete} onClick={this.handleDelete}
/> />
</li> </div>
</ClickOutside> </ClickOutside>
) )
} }
@ -123,10 +123,14 @@ class LogsFilter extends PureComponent<Props, State> {
const {operator, value, editing} = this.state const {operator, value, editing} = this.state
const {filter} = this.props const {filter} = this.props
if (!editing || (filter.operator === operator && filter.value === value)) { if (!editing) {
return return
} }
if (filter.operator === operator && filter.value === value) {
return this.setState({editing: false})
}
let state = {} let state = {}
if (['!=', '==', '=~'].includes(operator) && value !== '') { if (['!=', '==', '=~'].includes(operator) && value !== '') {
this.props.onChangeFilter(id, operator, value) this.props.onChangeFilter(id, operator, value)

View File

@ -18,7 +18,7 @@ class LogsFilters extends PureComponent<Props> {
return ( return (
<div className="logs-viewer--filter-bar"> <div className="logs-viewer--filter-bar">
<QueryResults count={numResults} queryCount={queryCount} /> <QueryResults count={numResults} queryCount={queryCount} />
<ul className="logs-viewer--filters">{this.renderFilters}</ul> <div className="logs-viewer--filters">{this.renderFilters}</div>
</div> </div>
) )
} }

View File

@ -398,7 +398,7 @@ class LogsTable extends Component<Props, State> {
private getSeverityDotText(text: string): JSX.Element { private getSeverityDotText(text: string): JSX.Element {
const {severityFormat} = this.props const {severityFormat} = this.props
if (severityFormat === SeverityFormatOptions.dotText) { if (severityFormat === SeverityFormatOptions.dotText) {
return <span style={{padding: '5px'}}>{text}</span> return <span className="logs-viewer--severity-text">{text}</span>
} }
} }
@ -422,7 +422,7 @@ class LogsTable extends Component<Props, State> {
<div <div
className={`logs-viewer--dot ${value}-severity`} className={`logs-viewer--dot ${value}-severity`}
title={value} title={value}
onMouseOver={this.handleMouseEnter} onMouseOver={this.handleMouseOver}
data-index={rowIndex} data-index={rowIndex}
style={this.severityDotStyle(value)} style={this.severityDotStyle(value)}
/> />
@ -443,17 +443,17 @@ class LogsTable extends Component<Props, State> {
highlight: highlightRow, highlight: highlightRow,
})} })}
title={`Filter by '${title}'`} title={`Filter by '${title}'`}
style={{...style, padding: '5px'}}
key={key} key={key}
style={style}
data-index={rowIndex} data-index={rowIndex}
onMouseOver={this.handleMouseEnter} onMouseOver={this.handleMouseOver}
> >
<div <div
data-tag-key={column} data-tag-key={column}
data-tag-value={value} data-tag-value={value}
onClick={this.handleTagClick} onClick={this.handleTagClick}
data-index={rowIndex} data-index={rowIndex}
onMouseOver={this.handleMouseEnter} onMouseOver={this.handleMouseOver}
className="logs-viewer--clickable" className="logs-viewer--clickable"
> >
{formattedValue} {formattedValue}
@ -469,7 +469,7 @@ class LogsTable extends Component<Props, State> {
})} })}
key={key} key={key}
style={style} style={style}
onMouseOver={this.handleMouseEnter} onMouseOver={this.handleMouseOver}
data-index={rowIndex} data-index={rowIndex}
> >
{formattedValue} {formattedValue}
@ -488,7 +488,7 @@ class LogsTable extends Component<Props, State> {
} }
} }
private handleMouseEnter = (e: MouseEvent<HTMLElement>): void => { private handleMouseOver = (e: MouseEvent<HTMLElement>): void => {
const target = e.target as HTMLElement const target = e.target as HTMLElement
this.setState({currentRow: +target.dataset.index}) this.setState({currentRow: +target.dataset.index})
} }

View File

@ -85,6 +85,7 @@ $logs-viewer-gutter: 60px;
font-weight: 600; font-weight: 600;
color: $g9-mountain; color: $g9-mountain;
transition: color 0.25s ease; transition: color 0.25s ease;
min-width: 180px;
strong { strong {
color: $g15-platinum; color: $g15-platinum;
@ -119,8 +120,6 @@ $logs-viewer-gutter: 60px;
.logs-viewer--filters { .logs-viewer--filters {
flex: 1 0 0; flex: 1 0 0;
margin: 0;
padding: 0;
display: flex; display: flex;
align-items: center; align-items: center;
} }
@ -130,7 +129,6 @@ $logs-viewer-gutter: 60px;
font-size: 12px; font-size: 12px;
display: flex; display: flex;
align-items: center; align-items: center;
list-style: none;
padding: 0 2px 0 8px; padding: 0 2px 0 8px;
height: 26px; height: 26px;
border-radius: 4px; border-radius: 4px;
@ -138,7 +136,7 @@ $logs-viewer-gutter: 60px;
color: $g13-mist; color: $g13-mist;
font-weight: 500; font-weight: 500;
font-family: $code-font; font-family: $code-font;
margin: 2px; margin: 1px;
&.active, &.active,
&:hover { &:hover {
@ -224,6 +222,10 @@ $logs-viewer-gutter: 60px;
border: 2px solid $g3-castle; border: 2px solid $g3-castle;
margin-left: 2px; margin-left: 2px;
} }
.logs-viewer--severity-text {
padding: 2px;
padding-left: 5px;
}
// Play & Pause Toggle in Header // Play & Pause Toggle in Header
.nav.nav-tablist.nav-tablist-sm.logs-viewer--mode-toggle { .nav.nav-tablist.nav-tablist-sm.logs-viewer--mode-toggle {
@ -263,6 +265,8 @@ $logs-viewer-gutter: 60px;
// Clickable Cells // Clickable Cells
.logs-viewer--clickable { .logs-viewer--clickable {
display: inline-flex;
align-items: center;
padding: 1px 3px; padding: 1px 3px;
border-radius: 3px; border-radius: 3px;
@include no-user-select(); @include no-user-select();