Purpose

Add custom JavaScript to a DataTableObject programmatically. This filter allows you to dynamically include additional JavaScript files for specific DataTables based on their settings or context.

Usage

add_filter( "wr_DataTable_modify_DataTableObject_filter", array( $this, "add_js_to_DataTableObject" ), 10, 2 );

Parameters

  • $data_table_object (DataTableObject): The DataTable object being processed, used for managing scripts and configurations.
  • $datatable (DataTable): The DataTable instance, containing settings and contextual information.

Use Case

This functionality is useful when:

  • You need to attach custom JavaScript files to enhance the functionality of specific DataTables.
  • Different DataTables require tailored JavaScript logic for handling unique behaviors or interactions.

Implementation Example

The following example adds a custom JavaScript file (equipment-page.js) to a DataTable identified by equipment_datatable in its settings:

add_filter( "wr_DataTable_modify_DataTableObject_filter", array( $this, "add_js_to_DataTableObject" ), 10, 2 );
 
public function add_js_to_DataTableObject( DataTableObject $data_table_object, DataTable $datatable ): DataTableObject {  
    $settings = $datatable->get_settings();  
    if ( str_contains( $settings['options'], "equipment_datatable" ) ) {  
       $path = plugin_dir_path( __FILE__ ) . 'Resources/equipment-page.js';  
       $data_table_object->add_script_object( ScriptObject::create_by_file( $path ) );  
    }  
  
    return $data_table_object;  
}