Actions
Custom actions can be applied to 4 areas of an object-table: rows, cells, columns and the object-table itself.
Empty action
In the event that a table contains no rows, an <empty-action> node can be used to add additional UI functionality.
<object-table ...>
<empty-action icon="fa-angle-right" on-press="$:noResultsAction()" validate="false" />
...
</object-table>function noResultsAction(object){
// Do something with the object
console.log(JSON.stringify(object));
}Note: This works in addition to the empty-message attribute that is available on an object-table.
Row actions
Similar to bind, a row can trigger an action by nesting a standard action tag in an object-table. For example:
<object-table ...>
<action icon="fa-angle-right" on-press="$:rowAction($selection)" validate="false" />
...
</object-table>When using a function to specify the icon attribute on <action/>, it has access to $object (note: not $selection), for example:
Cell actions
When an action is specified within a column, the action will fire when the particular column is selected. The icon, in this case, is placed on the right - and should not be confused with a standard cell icon, which is independent of the action icon.
Much like a row action, this function also has access to $selection.
Combining row and cell actions
In the case where both a row and cell action are present, the cell action will take precedence and prevent the row action from firing.
Column actions
A column action is displayed next to the column heading, in the same place the filter icon would normally be. If the action is specified, the header-action icon is used regardless if filters are enabled or not.
Note: Unlike row and cell actions, this function does not have access to $selection, as they are only rendered once per column.
Common patterns
Header actions can be used in interesting patterns, as follows:
Combo menu
In this example the header action displays a dropdown menu with a set of options, where and when pressed.
Combo menu with original filter capability
Pin frozen column
In this example, when the action is pressed, a view variable is set which indicates that the particular column should 'freeze' to the left.
object-table actions
object-table actionsobject-table actions enable additional buttons to be appended to the controls area of an object-table. Additionally, these buttons can call functions passing the current data in the object-table.
For example:

Each of the buttons call a function in their on-press attribute with the following three parameters:
$filteredData: An object of the form{columns: string[], rows: DatabaseObject[]}.DatabaseObjectrefers to the familiar JourneyApps object that can be used to update values in the database.filteredDisplayData: An object of the form{columns: string[], rows: string[][]}. The rows correspond to the text currently displayed in the table. This object can be directly passed to CSV'sstringify()function to create a CSV export of the table's data.controls: An object of the form{page: number, totalPages: number, limit: number, filters: {string: string[]}}. This represents the current state of the search criteria and filters applied to theobject-table.
In both parameters where data is passed to the function the sort order and current table filters are applied to the data.
Example: Select all items on a page
Example: One-click CSV export
Last updated