Add clear button to Explore

- Clear All button to clear all queries and results
- moved result viewer buttons below query rows to make it more clear
  that they govern result options
This commit is contained in:
David Kaltschmidt 2018-08-04 11:47:04 +02:00
parent f43735ac25
commit 00f04f4ea0
3 changed files with 43 additions and 18 deletions

View File

@ -267,6 +267,15 @@ export class Explore extends React.Component<any, IExploreState> {
} }
}; };
onClickClear = () => {
this.setState({
graphResult: null,
logsResult: null,
queries: ensureQueries(),
tableResult: null,
});
};
onClickTableCell = (columnKey: string, rowValue: string) => { onClickTableCell = (columnKey: string, rowValue: string) => {
const { datasource, queries } = this.state; const { datasource, queries } = this.state;
if (datasource && datasource.modifyQuery) { if (datasource && datasource.modifyQuery) {
@ -466,24 +475,12 @@ export class Explore extends React.Component<any, IExploreState> {
</button> </button>
</div> </div>
) : null} ) : null}
<div className="navbar-buttons">
{supportsGraph ? (
<button className={`btn navbar-button ${graphButtonActive}`} onClick={this.handleClickGraphButton}>
Graph
</button>
) : null}
{supportsTable ? (
<button className={`btn navbar-button ${tableButtonActive}`} onClick={this.handleClickTableButton}>
Table
</button>
) : null}
{supportsLogs ? (
<button className={`btn navbar-button ${logsButtonActive}`} onClick={this.handleClickLogsButton}>
Logs
</button>
) : null}
</div>
<TimePicker range={range} onChangeTime={this.handleChangeTime} /> <TimePicker range={range} onChangeTime={this.handleChangeTime} />
<div className="navbar-buttons">
<button className="btn navbar-button navbar-button--no-icon" onClick={this.onClickClear}>
Clear All
</button>
</div>
<div className="navbar-buttons relative"> <div className="navbar-buttons relative">
<button className="btn navbar-button--primary" onClick={this.handleSubmit}> <button className="btn navbar-button--primary" onClick={this.handleSubmit}>
Run Query <i className="fa fa-level-down run-icon" /> Run Query <i className="fa fa-level-down run-icon" />
@ -514,6 +511,25 @@ export class Explore extends React.Component<any, IExploreState> {
onRemoveQueryRow={this.handleRemoveQueryRow} onRemoveQueryRow={this.handleRemoveQueryRow}
/> />
{queryError && !loading ? <div className="text-warning m-a-2">{queryError}</div> : null} {queryError && !loading ? <div className="text-warning m-a-2">{queryError}</div> : null}
<div className="result-options">
{supportsGraph ? (
<button className={`btn navbar-button ${graphButtonActive}`} onClick={this.handleClickGraphButton}>
Graph
</button>
) : null}
{supportsTable ? (
<button className={`btn navbar-button ${tableButtonActive}`} onClick={this.handleClickTableButton}>
Table
</button>
) : null}
{supportsLogs ? (
<button className={`btn navbar-button ${logsButtonActive}`} onClick={this.handleClickLogsButton}>
Logs
</button>
) : null}
</div>
<main className="m-t-2"> <main className="m-t-2">
{supportsGraph && showingGraph ? ( {supportsGraph && showingGraph ? (
<Graph <Graph

View File

@ -84,7 +84,9 @@ class Graph extends Component<any, any> {
draw() { draw() {
const { data, options: userOptions } = this.props; const { data, options: userOptions } = this.props;
const $el = $(`#${this.props.id}`);
if (!data) { if (!data) {
$el.empty();
return; return;
} }
const series = data.map((ts: TimeSeries) => ({ const series = data.map((ts: TimeSeries) => ({
@ -93,7 +95,6 @@ class Graph extends Component<any, any> {
data: ts.getFlotPairs('null'), data: ts.getFlotPairs('null'),
})); }));
const $el = $(`#${this.props.id}`);
const ticks = $el.width() / 100; const ticks = $el.width() / 100;
let { from, to } = userOptions.range; let { from, to } = userOptions.range;
if (!moment.isMoment(from)) { if (!moment.isMoment(from)) {

View File

@ -47,6 +47,14 @@
background-color: $btn-active-bg; background-color: $btn-active-bg;
} }
.navbar-button--no-icon {
line-height: 18px;
}
.result-options {
margin-top: 2 * $panel-margin;
}
.elapsed-time { .elapsed-time {
position: absolute; position: absolute;
left: 0; left: 0;