From 857bd3d8adfac76c6079a3d6596563c62540e9f9 Mon Sep 17 00:00:00 2001 From: Johannes Schill Date: Mon, 26 Nov 2018 14:26:28 +0100 Subject: [PATCH] react-panel: Toggle Expand/Collapse json nodes in Query Inspector --- .../dashboard/dashgrid/QueryInspector.tsx | 41 ++++++++++++++++++- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/public/app/features/dashboard/dashgrid/QueryInspector.tsx b/public/app/features/dashboard/dashgrid/QueryInspector.tsx index ace155fec43..9733ae58263 100644 --- a/public/app/features/dashboard/dashgrid/QueryInspector.tsx +++ b/public/app/features/dashboard/dashgrid/QueryInspector.tsx @@ -7,12 +7,20 @@ interface Props { response: any; } -export class QueryInspector extends PureComponent { +interface State { + allNodesExpanded: boolean; +} + +export class QueryInspector extends PureComponent { formattedJson: any; clipboard: any; constructor(props) { super(props); + + this.state = { + allNodesExpanded: null, + }; } setFormattedJson = formattedJson => { @@ -27,8 +35,26 @@ export class QueryInspector extends PureComponent { appEvents.emit('alert-success', ['Content copied to clipboard']); }; + onToggleExpand = () => { + this.setState(prevState => ({ + ...prevState, + allNodesExpanded: !this.state.allNodesExpanded, + })); + }; + + getNrOfOpenNodes = () => { + if (this.state.allNodesExpanded === null) { + return 3; + } else if (this.state.allNodesExpanded) { + return 20; + } + return 1; + }; + render() { const { response } = this.props; + const { allNodesExpanded } = this.state; + const openNodes = this.getNrOfOpenNodes(); return ( <> {/*
@@ -44,6 +70,17 @@ export class QueryInspector extends PureComponent {
*/} {/* */} + { Copy to Clipboard - + ); }