As I mentioned I'm using the ui table handler sub flow. The columns are defined like so -
{
"customHeight": 26,
"tabulator": {
"responsiveLayout": "collapse",
"responsiveLayoutCollapseStartOpen": false,
"index": "$topic",
"layout": "fitColumns",
"movableColumns": true,
"initialSort": [
{
"column": "$stateIcon",
"dir": "asc"
}
],
"groupBy": "",
"columns": [
{
"formatter": "responsiveCollapse",
"width": 30,
"minWidth": 30,
"align": "center",
"resizable": false,
"headerSort": false,
"frozen": true,
"title": "Expand <i class='fa fa-plus-circle fa-rotate-180'></i> ",
"field": "expand",
"headerVertical": "flip",
"headerTooltip": "click to expand more details",
"headerContext": "function(e,column){ this.send({ui_control:{callback:'headerContext'},position:{\"x\":e.x,\"y\":e.y},payload:column._column.field}); e.preventDefault(); }"
},
{
"formatter": "function(cell, formatterParams, onRendered) { var html = cell.getValue(); return html; }",
"title": "State <i class='fa fa-bolt fa-rotate-180'></i>",
"field": "$stateIcon",
"headerFilter": true,
"width": 40,
"align": "center",
"frozen": true,
"headerVertical": "flip",
"headerTooltip": "current state as icon: ready, lost",
"headerContext": "function(e,column){ this.send({ui_control:{callback:'headerContext'},position:{\"x\":e.x,\"y\":e.y},payload:column._column.field}); e.preventDefault(); }"
},
{
"formatter": "function(cell, formatterParams, onRendered) { var html = cell.getValue(); return html; }",
"title": "Type <i class='fa fa-cogs'></i>",
"field": "deviceTypeIcon",
"width": 40,
"align": "center",
"frozen": true,
"headerVertical": "flip",
"headerTooltip": "device type",
"headerContext": "function(e,column){ this.send({ui_control:{callback:'headerContext'},position:{\"x\":e.x,\"y\":e.y},payload:column._column.field}); e.preventDefault(); }"
},
As such I would expect them to display in that order. However I recall there is some "trick" to get it to refresh properly
Unfortunately @Christian-Me hasn't been seen for a couple of years now