Hi @yshen Start here for creating and editing forms. An example of what I have done is this Where I can select what I want the chart to show (this might be just temperature in your case so perhaps not so relevant), but I can select the field I want to filter on (location or type in your case). Then depending on the filter, the choice in the third input is a multi-select populated with dedup'd values of the filter <panel>
<input type="dropdown" token="dimension">
<label>Select Dimension</label>
<choice value="Consumer">Consumer</choice>
---
<default>Consumer</default>
</input>
<input type="dropdown" token="filter">
<label>Select Filter</label>
<choice value="Service">Service</choice>
---
<default>Service</default>
</input>
<input type="multiselect" token="selector">
<label>Select one or more $filter$</label>
<choice value="All">All</choice>
<search>
<query>search data | dedup $filter$ | fields $filter$</query>
</search>
<fieldForLabel>$filter$</fieldForLabel>
<fieldForValue>$filter$</fieldForValue>
<prefix>(</prefix>
<valuePrefix>$filter$ ="</valuePrefix>
<valueSuffix>"</valueSuffix>
<delimiter> OR </delimiter>
<suffix>)</suffix>
<default>All</default>
<change>
<eval token="form.selector">case(mvcount('form.selector')=0,"All",mvcount('form.selector')>1 AND mvfind('form.selector',"All")>0,"All",mvcount('form.selector')>1 AND mvfind('form.selector',"All")=0,mvfilter('form.selector'!="All"),1==1,'form.selector')</eval>
<eval token="selector_choice">if(mvfind('form.selector',"All")=0,$filter$+"=*",$selector$)</eval>
</change>
</input>
<chart>
<title>Graph by $dimension$</title>
<search>
<query>search data $selector_choice$ | stats count by _time, $dimension$</query>
</search>
---
</chart>
</panel>
</row>
... View more