Evaluating Fields using JavaScript

Some advanced options in Ag-grid require providing a JavaScript function. The fields whose string representation should be evaluated as JavaScript need to be specified in the evaluate attribute.

In the example below, tree data mode is implemented. It is only available in the enterprise edition of ag-grid.

Warning

Don't forget to set justpy.env to load the enterprise version of ag-grid

import justpy as jp

grid_options = {
    'getDataPath': '''function(data) { return data.orgHierarchy; }''',
    'treeData': True,
    'defaultColDef': {
        'filter': True,
        'sortable': True,
        'resizable': True,
    },
    'columnDefs': [
        {'headerName': "job title", 'field': "jobTitle"},
        {'headerName': "employment type", 'field': "employmentType"},
    ],
    'rowData' : [
        {'orgHierarchy': ['Erica'], 'jobTitle': "CEO", 'employmentType': "Permanent"},
        {'orgHierarchy': ['Erica', 'Malcolm'], 'jobTitle': "VP", 'employmentType': "Permanent"},
        {'orgHierarchy': ['Erica', 'Bob'], 'jobTitle': "SVP", 'employmentType': "Permanent"},
        {'orgHierarchy': ['Erica', 'Bob', 'jo'], 'jobTitle': "eVP", 'employmentType': "Permanent"}
    ]
}

def grid_test():
    wp = jp.WebPage()
    grid = jp.AgGrid(a=wp, options=grid_options)
    grid.evaluate = ['getDataPath']
    return wp

jp.justpy(grid_test)