Astroraf
10-24-2025Data Pipeline
How to make Switchable Dimension with Radio Buttons
Hi harikm007 DRay
I am trying to create a radio button switcable dimensional changer and wanted to see if it can be done with Radio Buttons, my current script is:
{
"title": "",
"styl...
- 10-28-2025
Hi Astroraf ,
Hope the script below works for you!
Blox script:
{ "title": "", "style": "", "script": "", "showCarousel": true, "body": [ { "type": "Container", "class": "radiotval-dimswitch", "items": [ { "type": "Input.ChoiceSet", "id": "radiotVal", "displayType": "expanded", "choices": [ { "title": "Total Revenue", "value": "0" }, { "title": "Total Quantity", "value": "1" } ] } ] } ], "actions": [] }Also add below widget script to the blox widget. Here add ids of target widgets to widgetids array.
widget.on('domready',function(widget, args){ widgetIds = ['68ffba3fa3420a7cd45d34feb', '68ffba47aa380a7cd27d34fed']; const radios = document.querySelectorAll('.radiotval-dimswitch input'); refWidget = prism.activeDashboard.widgets.$$widgets.find(w => w.oid === widgetIds[0]); if (refWidget.metadata.panels[1].$$widget.type == 'indicator') { defaultPanel = refWidget.metadata.panels[0].items[0].jaql.title; } else { defaultPanel = refWidget.metadata.panels[1].items[0].jaql.title; } defaultMeasureIndex = widget.metadata.panels[1].items.findIndex(i=>i.jaql.title === defaultPanel); radios.forEach(radio => { radio.checked = (radio.value == defaultMeasureIndex); }); radios.forEach(r => r.addEventListener('change', e => { dimToSwapTo = widget.metadata.panels[1].items[event.target.value].jaql; switchMeasure(dimToSwapTo) })); }) function switchMeasure(dimToSwapTo){ prism.activeDashboard.widgets.$$widgets .filter(i => widgetIds.includes(i.oid)) .forEach(function (widget) { if (widget.metadata.panels[1].$$widget.type == 'indicator') { widget.metadata.panels[0].items[0].jaql = dimToSwapTo; } else { widget.metadata.panels[1].items[0].jaql = dimToSwapTo; } widget.changesMade('plugin-BloX', 'metadata'); widget.refresh(); }) }Result:
Please let me know if you have any questions
-Hari