Custom Action Won't Work inside Action Card
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-26-2024 02:58 PM
Hi all,
I'm trying hide my input parameters in an action card. However, my "Apply" button doesn't seem to work while it's inside the card. Does any one know how I could get this working?
*The action works just fine when it's not inside an action card.
Find my Blox Code and Action Code below:
Blox:
{
"style": "",
"script": "",
"title": "",
"titleStyle": [
{
"display": "none"
}
],
"showCarousel": true,
"body": [
{
"type": "Container",
"items": [
{
"type": "Container",
"spacing": "none",
"items": [
{
"type": "TextBlock",
"text": "Monday",
"size": "extraLarge",
"color": "attention",
"spacing": "none",
"horizontalAlignment": "center"
}
]
},
{
"type": "Container",
"separator": "true",
"spacing": "medium",
"items": [
{
"spacing": "none",
"type": "ColumnSet",
"columns": [
{
"spacing": "medium",
"separator": "true",
"type": "Column",
"items": [
{
"type": "TextBlock",
"horizontalAlignment": "left",
"text": "Morning Standing",
"color": "blue",
"size": "small"
},
{
"spacing": "none",
"horizontalAlignment": "left",
"type": "TextBlock",
"text": "{panel:[monStanding]}",
"weight": "bold",
"color": "green",
"size": "large"
}
]
},
{
"spacing": "medium",
"separator": "true",
"type": "Column",
"items": [
{
"type": "TextBlock",
"horizontalAlignment": "left",
"text": "Catches",
"color": "blue",
"size": "small"
},
{
"spacing": "none",
"horizontalAlignment": "left",
"type": "TextBlock",
"text": "{panel:[monCatches]}",
"weight": "bold",
"color": "green",
"size": "large"
}
]
},
{
"spacing": "medium",
"separator": "true",
"type": "Column",
"items": [
{
"type": "TextBlock",
"horizontalAlignment": "left",
"text": "Scheduled",
"color": "blue",
"size": "small"
},
{
"spacing": "none",
"horizontalAlignment": "left",
"type": "TextBlock",
"text": "{panel:[monScheduled]}",
"weight": "bold",
"color": "green",
"size": "large"
}
]
},
{
"spacing": "medium",
"separator": "true",
"type": "Column",
"items": [
{
"horizontalAlignment": "left",
"type": "TextBlock",
"text": "Total For Kill ",
"color": "blue",
"size": "small"
},
{
"spacing": "none",
"horizontalAlignment": "left",
"type": "TextBlock",
"text": "{panel:[monTotKill]}",
"weight": "bold",
"color": "green",
"size": "large"
}
]
},
{
"spacing": "medium",
"separator": "true",
"type": "Column",
"items": [
{
"type": "TextBlock",
"horizontalAlignment": "left",
"text": "Est Kill",
"color": "blue",
"size": "small"
},
{
"spacing": "none",
"horizontalAlignment": "left",
"type": "TextBlock",
"text": "{panel:[monEstKill]}",
"weight": "bold",
"color": "green",
"size": "large"
}
]
}
]
},
{
"type": "ActionSet",
"actions": [
{
"type": "Action.ShowCard",
"title": "Update",
"card": {
"showCarousel": true,
"body": [
{
"type": "TextBlock",
"size": "extraLarge",
"weight": "bold",
"horizontalAlignment": "center",
"spacing": "large",
"color": "attention",
"text": "Monday Parameters"
},
{
"type": "ColumnSet",
"spacing": "default",
"style": "",
"columns": [
{
"type": "Column",
"spacing": "default",
"style": {
"margin-left": "10px"
},
"items": [
{
"type": "TextBlock",
"size": "medium",
"weight": "light",
"horizontalAlignment": "center",
"spacing": "small",
"color": "attention",
"text": "AM Standing"
}
]
},
{
"type": "Column",
"spacing": "default",
"style": {
"margin-right": "250px",
"width": "10px"
},
"items": [
{
"type": "Input.Number",
"id": "selectVal1",
"class": "custom-select",
"displayType": "compact",
"value": "{value:[swap_lever1]}"
}
]
}
]
},
{
"type": "ColumnSet",
"spacing": "default",
"style": "",
"columns": [
{
"type": "Column",
"spacing": "default",
"style": {
"margin-left": "10px"
},
"items": [
{
"type": "TextBlock",
"size": "medium",
"weight": "light",
"horizontalAlignment": "center",
"spacing": "small",
"color": "attention",
"text": "Catches"
}
]
},
{
"type": "Column",
"spacing": "default",
"style": {
"margin-right": "250px",
"width": "10px"
},
"items": [
{
"type": "Input.Number",
"id": "selectVal2",
"class": "custom-select",
"displayType": "compact",
"value": "{value:[swap_lever2]}"
}
]
}
]
},
{
"type": "ColumnSet",
"spacing": "default",
"style": "",
"columns": [
{
"type": "Column",
"spacing": "default",
"style": {
"margin-left": "10px"
},
"items": [
{
"type": "TextBlock",
"size": "medium",
"weight": "light",
"horizontalAlignment": "center",
"spacing": "small",
"color": "attention",
"text": "Scheduled"
}
]
},
{
"type": "Column",
"spacing": "default",
"style": {
"margin-right": "250px",
"width": "10px"
},
"items": [
{
"type": "Input.Number",
"id": "selectVal3",
"class": "custom-select",
"displayType": "compact",
"value": "{value:[swap_lever3]}"
}
]
}
]
},
{
"type": "ColumnSet",
"spacing": "default",
"style": "",
"columns": [
{
"type": "Column",
"spacing": "small",
"style": {
"margin-left": "10px"
},
"items": [
{
"type": "TextBlock",
"size": "medium",
"weight": "light",
"horizontalAlignment": "center",
"spacing": "small",
"color": "attention",
"text": "Est Kill"
}
]
},
{
"type": "Column",
"spacing": "small",
"style": {
"margin-right": "250px",
"width": "10px"
},
"items": [
{
"type": "Input.Number",
"id": "selectVal4",
"class": "custom-select",
"displayType": "compact",
"value": "{value:[swap_lever4]}"
}
]
}
]
}
],
"actions": [
{
"type": "Parameters",
"title": "Apply",
"data": {
"paramsToModify": 4
}
}
]
}
}
]
}
]
}
]
}
]
}
Action:
//initialize variables
var swapParam = [];
//create an array of swap_levers
for (d = 0; d < payload.data.paramsToModify; d++) {
swapParam[d] = "swap_lever" + (d + 1);
}
//loop through each of the specified widgets
payload.widget.dashboard.widgets.$$widgets
//.filter(i => i.oid != payload.widget.oid)
.forEach(function (widget) {
//loop through each panel in the widget
//exclude the filter panel (last panel)
for (p = 0; p < widget.metadata.panels.length - 1; p++) {
//loop through each item in the panel
for (i = 0; i < widget.metadata.panels[p].items.length; i++) {
//check if the panel item contains context (i.e. a formula)
if (widget.metadata.panels[p].items[i].jaql.context != undefined) {
var queryContext = widget.metadata.panels[p].items[i].jaql.context;
//loop through each context in the item
for (let [k, v] of Object.entries(queryContext)) {
//loop through each swap_lever
for (s = 0; s < swapParam.length; s++) {
//check if the formula contains the swap_lever
if (v.title == swapParam[s]) {
var val = 'selectVal' + (s + 1);
//update the formula with the swap_lever value that the user entered
v.formula = payload.data[val];
}
}
}
}
}
}
//apply and save changes to the widget
widget.changesMade('plugin-BloX', ['metadata'])
//refresh the widget
widget.refresh();
})
- Labels:
-
Admin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-29-2024 06:06 PM
@sis_support Any chance I could get some help with this one?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-31-2024 07:59 PM
Hi @Mmckinst ,
Without being able to set up a test env. it's difficult to understand what's happening here.
I did attempt to recreate this in a BloX control, and it seemed like I could only return payload.widget.dashboard outside of the card.
Replacing this with 'prism.activeDashboard' seemed to remove the error from my side, but I couldn't see the intended behviour.
I'd be happy to provide another set of eyes if you'd like to show me what's going on - we could jump on a teams/zoom call/etc. - send me an email if you'd like to do this.
Let me know how you go?
Thanks,
Daniel
RAPID BI
daniel.ranisavljevic@rapidbi.com.au
RAPID BI - Sisense Professional Services | Implementations | Custom Add-ons
