Astroraf hi,
Please try to use the simplest example below. Make sue you created an additional widget to be used in "widgetToSort":
{
"style": "",
"script": "",
"title": "",
"showCarousel": false,
"body": [],
"actions": [
{
"type": "sort value",
"title": "⬆",
"data": {
"widgetToSort": "66ea95365e49a3002a99e4d9",
"sortDirection": "asc",
"valueIndexToSort": "0"
}
},
{
"type": "sort value",
"title": "⬇",
"data": {
"widgetToSort": "66ea95365e49a3002a99e4d9",
"sortDirection": "desc",
"valueIndexToSort": "0"
}
}
]
}
Then update the action code to the one below. This is required due to this change to make it work for newer Sisense versions.
var widgetIds = payload.data.widgetToSort
var valueIndexToSort = payload.data.valueIndexToSort
var sortOrder = payload.data.sortDirection
payload.widget.dashboard.widgets.$$widgets
.filter(i => widgetIds.includes(i.oid))
.forEach(function (widget) {
// delete all sorts
widget.metadata.panels[1].items.forEach(function (i) {
if (i.jaql.hasOwnProperty('sort')) {
delete i.jaql.sort
}
})
// add new sort
widget.metadata.panels[1].items[valueIndexToSort].jaql.sort = sortOrder
widget.changesMade('bloxAction', ['metadata'])
widget.refresh()
})
This example worked from my side on L2024.2 and it could be used for developing more complex solutions 😊
Best,
Lily