Dashboards & Visualizations

How to set and unset token after submit and what should be depends condition in row/panel?

dkssingh2005
Explorer

I have requirement  after  submit I need to hide and show row's panel on the condition of dropdown. when day is selected then show panel 1 and when hour is selected then show panel 2. I have queries in panel so that I don't want execute it also by adding the token condition. 

 

<fieldset submitButton="true" autoRun="false">
              <input type="dropdown" token="timespan">
                      <label>Time Span</label>
                     <choice value="1h">Hour</choice>
                      <choice value="1d">Day</choice>
                      <initialValue>1d</initialValue>
                     <default>1d</default>
              </input>
</fieldset>

<row depends=???> ----- --panel 1

<row depends=???> --------panel 2

 

How to set and unset token after submit and what should be depends condition in row/panel?

Labels (2)
0 Karma
1 Solution

bowesmana
SplunkTrust
SplunkTrust

Just hiding the row with depends="$token$" will not prevent the query from running - you need to add the depends to the search too.

Have a look at this dashboard - it uses a dummy row to have a search that sets/clears a token (is_hour) depending on the result of the setting, which will run after the submit is clicked. It will then set the token is_hour (or clear it). The subsequent two rows can then use depends/rejects to show/hide and run/not run the search.

<form>
  <label>test</label>
  <fieldset submitButton="true">
    <input type="dropdown" token="timespan">
      <label>Time Span</label>
      <choice value="1h">Hour</choice>
      <choice value="1d">Day</choice>
      <initialValue>1d</initialValue>
      <default>1d</default>
    </input>
  </fieldset>
  <row depends="$hidden$">
    <panel>
      <table>
        <title>is_hour=$is_hour$</title>
        <search>
          <query>| makeresults
          | eval Type=$timespan|s$
          </query>
          <earliest>-24h@h</earliest>
          <latest>now</latest>
          <sampleRatio>1</sampleRatio>
          <done>
            <eval token="is_hour">if($result.Type$="1h", "hour", null())</eval>
          </done>
        </search>
        <option name="count">100</option>
        <option name="dataOverlayMode">none</option>
        <option name="drilldown">none</option>
        <option name="percentagesRow">false</option>
        <option name="rowNumbers">false</option>
        <option name="totalsRow">false</option>
        <option name="wrap">true</option>
      </table>
    </panel>
  </row>
  <row depends="$is_hour$">
    <panel>
      <table>
        <title>Hour search</title>
        <search depends="$is_hour$">
          <query>| makeresults
          | eval Type="ByHour"
          </query>
          <earliest>-24h@h</earliest>
          <latest>now</latest>
          <sampleRatio>1</sampleRatio>
        </search>
        <option name="count">100</option>
        <option name="dataOverlayMode">none</option>
        <option name="drilldown">none</option>
        <option name="percentagesRow">false</option>
        <option name="rowNumbers">false</option>
        <option name="totalsRow">false</option>
        <option name="wrap">true</option>
      </table>
    </panel>
  </row>
  <row rejects="$is_hour$">
    <panel>
      <table>
        <title>Day search</title>
        <search rejects="$is_hour$">
          <query>| makeresults
          | eval Type="ByDay"
          </query>
          <earliest>-24h@h</earliest>
          <latest>now</latest>
          <sampleRatio>1</sampleRatio>
        </search>
        <option name="count">100</option>
        <option name="dataOverlayMode">none</option>
        <option name="drilldown">none</option>
        <option name="percentagesRow">false</option>
        <option name="rowNumbers">false</option>
        <option name="totalsRow">false</option>
        <option name="wrap">true</option>
      </table>
    </panel>
  </row>
</form>

 

View solution in original post

dkssingh2005
Explorer

yes, I am able to do by adding change handler . Below are the code snippet.  But I need after submit. Is there any way ?

<change>
<condition label="Hour">
<set token="show_hour">y</set>
<unset token="show_day"></unset>
</condition>
<condition label="Day">
<set token="show_day">y</set>
<unset token="show_hour"></unset>
</condition>
</change>

0 Karma

bowesmana
SplunkTrust
SplunkTrust

Just hiding the row with depends="$token$" will not prevent the query from running - you need to add the depends to the search too.

Have a look at this dashboard - it uses a dummy row to have a search that sets/clears a token (is_hour) depending on the result of the setting, which will run after the submit is clicked. It will then set the token is_hour (or clear it). The subsequent two rows can then use depends/rejects to show/hide and run/not run the search.

<form>
  <label>test</label>
  <fieldset submitButton="true">
    <input type="dropdown" token="timespan">
      <label>Time Span</label>
      <choice value="1h">Hour</choice>
      <choice value="1d">Day</choice>
      <initialValue>1d</initialValue>
      <default>1d</default>
    </input>
  </fieldset>
  <row depends="$hidden$">
    <panel>
      <table>
        <title>is_hour=$is_hour$</title>
        <search>
          <query>| makeresults
          | eval Type=$timespan|s$
          </query>
          <earliest>-24h@h</earliest>
          <latest>now</latest>
          <sampleRatio>1</sampleRatio>
          <done>
            <eval token="is_hour">if($result.Type$="1h", "hour", null())</eval>
          </done>
        </search>
        <option name="count">100</option>
        <option name="dataOverlayMode">none</option>
        <option name="drilldown">none</option>
        <option name="percentagesRow">false</option>
        <option name="rowNumbers">false</option>
        <option name="totalsRow">false</option>
        <option name="wrap">true</option>
      </table>
    </panel>
  </row>
  <row depends="$is_hour$">
    <panel>
      <table>
        <title>Hour search</title>
        <search depends="$is_hour$">
          <query>| makeresults
          | eval Type="ByHour"
          </query>
          <earliest>-24h@h</earliest>
          <latest>now</latest>
          <sampleRatio>1</sampleRatio>
        </search>
        <option name="count">100</option>
        <option name="dataOverlayMode">none</option>
        <option name="drilldown">none</option>
        <option name="percentagesRow">false</option>
        <option name="rowNumbers">false</option>
        <option name="totalsRow">false</option>
        <option name="wrap">true</option>
      </table>
    </panel>
  </row>
  <row rejects="$is_hour$">
    <panel>
      <table>
        <title>Day search</title>
        <search rejects="$is_hour$">
          <query>| makeresults
          | eval Type="ByDay"
          </query>
          <earliest>-24h@h</earliest>
          <latest>now</latest>
          <sampleRatio>1</sampleRatio>
        </search>
        <option name="count">100</option>
        <option name="dataOverlayMode">none</option>
        <option name="drilldown">none</option>
        <option name="percentagesRow">false</option>
        <option name="rowNumbers">false</option>
        <option name="totalsRow">false</option>
        <option name="wrap">true</option>
      </table>
    </panel>
  </row>
</form>

 

ITWhisperer
SplunkTrust
SplunkTrust

Add a change handler block to the input and set tokens there dependent on the selection made

Get Updates on the Splunk Community!

Observe and Secure All Apps with Splunk

  Join Us for Our Next Tech Talk: Observe and Secure All Apps with SplunkAs organizations continue to innovate ...

Splunk Decoded: Business Transactions vs Business IQ

It’s the morning of Black Friday, and your e-commerce site is handling 10x normal traffic. Orders are flowing, ...

Fastest way to demo Observability

I’ve been having a lot of fun learning about Kubernetes and Observability. I set myself an interesting ...