Dashboards & Visualizations

Can I set a timerange and region token on a dashboard?

emraghuram
New Member

I have a dashboard with 3 tokens

1) Timerange token
2) Region token
3) Submit button token

Now when i select the timerange and region token and click on submit button, it works for the first time, but when i change the timerange and region without clicking on submit button the data is showing in the dashboard.

Is there a way to fix it. can i set a token to submit button, so that i can use them in table/panel depends.

0 Karma

emraghuram
New Member
<form>
   <label>Dashboard</label>
   <fieldset submitButton="true" autoRun="false">
     <input type="time" token="time_range" searchWhenChanged="false">
       <label>Display Range</label>
       <default>
         <earliest>-7d@d</earliest>
         <latest>now</latest>
       </default>
     </input>
     <input type="dropdown" token="SetRegion" searchWhenChanged="false">
       <label>Select Region</label>
       <choice value="NY">NewYork</choice>
       <choice value="LN">London</choice>
       <change>
         <condition value="NY">
           <set token="Region" >NYindex</set>
         </condition>
         <condition value="LN">
           <set token="Region">LNindex</set>
         </condition>
       </change>
     </input>
     <input type="link" token="unused" searchWhenChanged="false">
       <label>Choose a view</label>
       <choice value="table">Table</choice>
       <choice value="chart">Chart</choice>
       <default>table</default>
       <change>
         <condition value="table">
           <set token="showTable">true</set>
           <unset token="showChart"></unset>
         </condition>
         <condition value="chart">
           <set token="showChart">true</set>
           <unset token="showTable"></unset>
         </condition>
       </change>
     </input>
   </fieldset>
0 Karma

rjthibod
Champion

Unforunately, there is no straightforward way to do what you want in SimpleXML. This is largely an issue because you cannot use the change element of the form inputs on the default token model (see my post here: https://answers.splunk.com/answers/548647/enhancement-request-make-change-conditional-tokens.html)

There is a work-around you can do to accomplish what you want. It requires using a hidden search in the XML to set a token whenever the submit occurs.

First, add a hidden search in your XML. You can put the search just before the fieldset element. What this search does is set a custom token search_start whenever both of your tokens are set and the submit button is clicked. Note, you need to use your specific token names. I assumed a token name for the region to just be region so update accordingly. Also, I assumed your timepicker does has a token name of time. Update this example reflect to your custom name if different.

<search>
  <query>| gentimes start=-1 | eval token1 = $region|s$</query>
  <earliest>$time.earliest$</earliest>
  <latest>$time.latest$</latest>
  <done>
    <set token="search_start">true</set>
  </done>
</search>

Now, you need to add a change handler to both the timepicker and the region inputs. The code is the same for both. It should look like this. Just copy and paste that into the definition of both input elements. This will reset the searh_start token any time either input is changed.

<change>
  <unset token="search_start"/>
</change>

Lastly, use depends="$search_start$" on the panel elements you want to hide until the submit button is clicked.

0 Karma

emraghuram
New Member

this is in place for region and timerange tokens..

fieldset submitButton="true" autoRun="false"
input type="time" token="timerange" searchWhenChanged="false"
input type="Reg" token="region" searchWhenChanged="false"
can i set token for submit?

0 Karma

rjthibod
Champion

No, you cannot. You have to do some kind of workaround like I posted (e.g., the intermediary search) or write custom JavaScript.

0 Karma

niketn
Legend

@emraghuram, kindly post XML using Code Button (i.e. 101010) or else charactes migh get escaped. You code is looking like plain text instead of XML.

____________________________________________
| makeresults | eval message= "Happy Splunking!!!"
0 Karma

cmerriman
Super Champion

try adding this to your timerange and region tokens searchWhenChanged="false"

ie: <input type="time" token="timerange" searchWhenChanged="false">

0 Karma
Get Updates on the Splunk Community!

Splunk Custom Visualizations App End of Life

The Splunk Custom Visualizations apps End of Life for SimpleXML will reach end of support on Dec 21, 2024, ...

Introducing Splunk Enterprise 9.2

WATCH HERE! Watch this Tech Talk to learn about the latest features and enhancements shipped in the new Splunk ...

Adoption of RUM and APM at Splunk

    Unleash the power of Splunk Observability   Watch Now In this can't miss Tech Talk! The Splunk Growth ...