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.

Get Updates on the Splunk Community!

Introduction to Splunk Observability Cloud - Building a Resilient Hybrid Cloud

Introduction to Splunk Observability Cloud - Building a Resilient Hybrid Cloud  In today’s fast-paced digital ...

Observability protocols to know about

Observability protocols define the specifications or formats for collecting, encoding, transporting, and ...

Take Your Breath Away with Splunk Risk-Based Alerting (RBA)

WATCH NOW!The Splunk Guide to Risk-Based Alerting is here to empower your SOC like never before. Join Haylee ...