@@ -17,6 +17,8 @@ export const QueryEditor = ({ query, onChange, onRunQuery, datasource, app, data
17
17
const [ orgOptions , setOrgOptions ] : any = useState ( [ ] ) ;
18
18
const [ isMounted , setIsMounted ] : any = useState ( false ) ;
19
19
const [ isLoading , setIsLoading ] : any = useState ( [ ] ) ;
20
+ const [ displayOptions , setDisplayOptions ] : any = useState ( [ ] ) ;
21
+
20
22
21
23
const isInDashboard = useMemo ( ( ) => app === 'panel-editor' , [ app ] ) ;
22
24
@@ -32,6 +34,14 @@ export const QueryEditor = ({ query, onChange, onRunQuery, datasource, app, data
32
34
setIsLoading ( isLoading . slice ( 1 ) ) ;
33
35
} ;
34
36
37
+ useEffect ( ( ) => {
38
+ setDisplayOptions ( [
39
+ { label : 'Auto' , value : 'auto' } ,
40
+ { label : 'Force Graph' , value : 'graph' } ,
41
+ { label : 'Force Logs' , value : 'logs' } ,
42
+ ] ) ;
43
+ } , [ ] ) ;
44
+
35
45
useEffect ( ( ) => {
36
46
startLoading ( ) ;
37
47
getOrganizations ( { url : datasource . url , page_num : 0 , page_size : 1000 , sort_by : 'id' } )
@@ -66,6 +76,7 @@ export const QueryEditor = ({ query, onChange, onRunQuery, datasource, app, data
66
76
stream : streams [ 0 ] . name ,
67
77
organization : orgs . data [ 0 ] . name ,
68
78
sqlMode : isInDashboard ? true : false ,
79
+ displayMode : query . displayMode ?? 'auto'
69
80
} ) ;
70
81
} else if ( isInDashboard && query . organization && query . stream && query . query ) {
71
82
updateQuery ( ) ;
@@ -137,6 +148,11 @@ export const QueryEditor = ({ query, onChange, onRunQuery, datasource, app, data
137
148
} ) ;
138
149
} ;
139
150
151
+ const onDisplayModeChange = ( displayMode : any ) => {
152
+ const newMode = displayMode . value as MyQuery [ 'displayMode' ] ;
153
+ onChange ( { ...query , displayMode : newMode } ) ;
154
+ } ;
155
+
140
156
const onChangeQuery = ( { value, sqlMode } : { value : string ; sqlMode : boolean } ) => {
141
157
onChange ( { ...query , query : value , sqlMode : sqlMode } ) ;
142
158
} ;
@@ -266,6 +282,18 @@ export const QueryEditor = ({ query, onChange, onRunQuery, datasource, app, data
266
282
< Switch data-testid = "query-editor-sql-mode-switch" value = { ! ! query . sqlMode } onChange = { toggleSqlMode } />
267
283
</ div >
268
284
) }
285
+ { /* Display Mode selector */ }
286
+ < div className = { css `display : flex; align-items : center; padding-bottom : 0.5rem ;` } >
287
+ < InlineLabel className = { css `width : fit-content;` } transparent >
288
+ Display Mode
289
+ </ InlineLabel >
290
+ < Select
291
+ options = { displayOptions }
292
+ value = { displayOptions . find ( ( o : any ) => o . value === query . displayMode ) || displayOptions [ 0 ] }
293
+ onChange = { onDisplayModeChange }
294
+ width = { 20 }
295
+ />
296
+ </ div >
269
297
{ query . stream && (
270
298
< ZincEditor
271
299
key = { generateEditorId }
0 commit comments