Dashboards & Visualizations

How to color a table column based on values selected from radio buttons

anooshac
Communicator

Hi All,

I have a dashboard which has 3 radio buttons both,TypeA and TypeB. Also i have a table. The requirement is that, if i select both or TypeA in radio buttons, columnA and columnB in the table should be highlighted. If i select the TypeB, only columnA should be highlighted. How can i achieve this?

I have tried using color palette expression like below. But no luck. Anyone have solution for this?


<format type="color" field="columnA">
<colorPalette type="list">["#00FFFF"]</colorPalette>
</format>

<format type="color" field="columnB">
<colorPalette type="expression">if(match(Type,"TypeB")," ", "#00FFFF")</colorPalette>
</format>

Labels (1)
0 Karma

danspav
SplunkTrust
SplunkTrust

Hi @anooshac,

You were probably really close to the solution for this - but it looks like using tokens to set the colour on tables only works before the table has loaded. The only workaround out I found was to re-run the search each time you select a new radio button.

Here's a working version for you to build from.

The radio buttons set the type:
Both and Type A => Highlight Columns A and B
Type B => Highlight Column B

The table has a format for ColumnA and ColumnB that looks for the right Type in the token:

<format type="color" field="ColumnB">
<colorPalette type="expression">if(match($field_to_highlight|s$,".*TypeB.*"),"#FF0000", "")</colorPalette>
</format>

To make the dashboard redraw with the right columns highlighted, I added this to the query:

``` $field_to_highlight$ ```

That won't do anything to the search results, but will force the search to be run again.


Here is a working dashboard:

<form version="1.1" theme="dark">
  <label>Answers for anooshac</label>
  <fieldset submitButton="false">
    <input type="radio" token="field_to_highlight" searchWhenChanged="true">
      <label>Option</label>
      <choice value="TypeA__TypeB">Both</choice>
      <choice value="TypeA_TypeB">Type A</choice>
      <choice value="TypeB">Type B</choice>
      <default>TypeATypeB</default>
    </input>
  </fieldset>
  <row>
    <panel>
      <table>
        <title>Content</title>
        <search>
          <query>| gentimes start=-20
| eval type=if(random()%2==0,"Type A","Type B")
| appendcols[|windbag]
| fields starttime, endtime, sample, lang, type
| rename starttime as "ColumnA", endtime as "ColumnB"
| head 20 ``` $field_to_highlight$```</query>
          <earliest>-24h@h</earliest>
          <latest>now</latest>
        </search>
        <option name="drilldown">none</option>
       <format type="color" field="ColumnA">
          <colorPalette type="expression">if(match($field_to_highlight|s$,".*TypeA.*"),"#FF0000", "")</colorPalette>
      </format>
        <format type="color" field="ColumnB">
          <colorPalette type="expression">if(match($field_to_highlight|s$,".*TypeB.*"),"#FF0000", "")</colorPalette>
        </format>
      </table>
    </panel>
  </row>
</form>

 

Hopefully that's close to what you were after.

0 Karma
Get Updates on the Splunk Community!

Get the T-shirt to Prove You Survived Splunk University Bootcamp

As if Splunk University, in Las Vegas, in-person, with three days of bootcamps and labs weren’t enough, now ...

Introducing the Splunk Community Dashboard Challenge!

Welcome to Splunk Community Dashboard Challenge! This is your chance to showcase your skills in creating ...

Wondering How to Build Resiliency in the Cloud?

IT leaders are choosing Splunk Cloud as an ideal cloud transformation platform to drive business resilience,  ...