class GridFieldFilterHeader extends AbstractGridFieldComponent implements GridField_URLHandler, GridField_HTMLProvider, GridField_DataManipulator, GridField_ActionProvider, GridField_StateProvider (View source)

GridFieldFilterHeader alters the GridField with some filtering fields in the header of each column.

Traits

A class that can be instantiated or replaced via DI

Properties

protected bool $throwExceptionOnBadDataType

See setThrowExceptionOnBadDataType()

public deprecated bool $useLegacyFilterHeader

Indicates that this component should revert to displaying it's legacy table header style rather than the react driven search box

protected SearchContext $searchContext
protected Form $searchForm
protected deprecated callable $updateSearchContextCallback
protected deprecated callable $updateSearchFormCallback
protected string|null $searchField

The name of the default search field

Methods

public static 
create(mixed ...$args)

An implementation of the factory method, allows you to create an instance of a class

public static 
singleton(string $class = null)

Creates a class instance by the "singleton" design pattern.

public
array
getURLHandlers(GridField $gridField)

No description

public
__construct(bool $useLegacy = false, callable $updateSearchContext = null, callable $updateSearchForm = null)

No description

public
setThrowExceptionOnBadDataType(bool $throwExceptionOnBadDataType)

Determine what happens when this component is used with a list that isn't SS_Filterable.

public
getThrowExceptionOnBadDataType()

See setThrowExceptionOnBadDataType()

public
string|null
getSearchField()

No description

public
setSearchField(string $field)

No description

protected
bool
checkDataType(SS_List $dataList)

Check that this dataList is of the right data type.

public
array
getActions(GridField $gridField)

If the GridField has a filterable datalist, return an array of actions

public
handleAction(GridField $gridField, string $actionName, array $arguments, array $data)

If the GridField has a filterable datalist, return an array of actions

public
void
initDefaultState(GridState_Data $data)

Initialise the default state in the given GridState_Data

public
getManipulatedData(GridField $gridField, SS_List $dataList)

No description

public
bool
canFilterAnyColumns(GridField $gridField)

Returns whether this GridField has any columns to filter on at all

public
getSearchContext(GridField $gridField)

Generate a search context based on the model class of the of the GridField

public
string
getSearchFieldSchema(GridField $gridField)

Returns the search field schema for the component

public
Form|null
getSearchForm(GridField $gridField)

Returns the search form for the component

public
getSearchFormSchema(GridField $gridField)

Returns the search form schema for the component

public
ArrayList|null
getLegacyFilterHeader(GridField $gridField) deprecated

Generate fields for the legacy filter header row

public
array
getHTMLFragments(GridField $gridField)

Either returns the legacy filter header or the search button and field

Details

static Injectable create(mixed ...$args)

An implementation of the factory method, allows you to create an instance of a class

This method will defer class substitution to the Injector API, which can be customised via the Config API to declare substitution classes.

This can be called in one of two ways - either calling via the class directly, or calling on Object and passing the class name as the first parameter. The following are equivalent: $list = DataList::create(SiteTree::class); $list = SiteTree::get();

Parameters

mixed ...$args

Return Value

Injectable

static Injectable singleton(string $class = null)

Creates a class instance by the "singleton" design pattern.

It will always return the same instance for this class, which can be used for performance reasons and as a simple way to access instance methods which don't rely on instance data (e.g. the custom SilverStripe static handling).

Parameters

string $class

Optional classname to create, if the called class should not be used

Return Value

Injectable

The singleton instance

array getURLHandlers(GridField $gridField)

No description

Parameters

GridField $gridField

Return Value

array

__construct(bool $useLegacy = false, callable $updateSearchContext = null, callable $updateSearchForm = null)

No description

Parameters

bool $useLegacy

This will be removed in 5.0

callable $updateSearchContext

This will be removed in 5.0

callable $updateSearchForm

This will be removed in 5.0

setThrowExceptionOnBadDataType(bool $throwExceptionOnBadDataType)

Determine what happens when this component is used with a list that isn't SS_Filterable.

  • true: An exception is thrown
    • false: This component will be ignored - it won't make any changes to the GridField.

By default, this is set to true so that it's clearer what's happening, but the predefined GridFieldConfig subclasses set this to false for flexibility.

Parameters

bool $throwExceptionOnBadDataType

getThrowExceptionOnBadDataType()

See setThrowExceptionOnBadDataType()

string|null getSearchField()

No description

Return Value

string|null

GridFieldFilterHeader setSearchField(string $field)

No description

Parameters

string $field

Return Value

GridFieldFilterHeader

protected bool checkDataType(SS_List $dataList)

Check that this dataList is of the right data type.

Returns false if it's a bad data type, and if appropriate, throws an exception.

Parameters

SS_List $dataList

Return Value

bool

array getActions(GridField $gridField)

If the GridField has a filterable datalist, return an array of actions

Parameters

GridField $gridField

Return Value

array

with action identifier strings.

handleAction(GridField $gridField, string $actionName, array $arguments, array $data)

If the GridField has a filterable datalist, return an array of actions

Parameters

GridField $gridField
string $actionName

Action identifier, see getActions().

array $arguments

Arguments relevant for this

array $data

All form data

void initDefaultState(GridState_Data $data)

Initialise the default state in the given GridState_Data

We recommend that you call $data->initDefaults() to do this.

Parameters

GridState_Data $data

The top-level state object

Return Value

void

SS_List getManipulatedData(GridField $gridField, SS_List $dataList)

No description

Parameters

GridField $gridField
SS_List $dataList

Return Value

SS_List

bool canFilterAnyColumns(GridField $gridField)

Returns whether this GridField has any columns to filter on at all

Parameters

GridField $gridField

Return Value

bool

SearchContext getSearchContext(GridField $gridField)

Generate a search context based on the model class of the of the GridField

Parameters

GridField $gridField

Return Value

SearchContext

string getSearchFieldSchema(GridField $gridField)

Returns the search field schema for the component

Parameters

GridField $gridField

Return Value

string

Form|null getSearchForm(GridField $gridField)

Returns the search form for the component

Parameters

GridField $gridField

Return Value

Form|null

HTTPResponse getSearchFormSchema(GridField $gridField)

Returns the search form schema for the component

Parameters

GridField $gridField

Return Value

HTTPResponse

ArrayList|null getLegacyFilterHeader(GridField $gridField) deprecated

deprecated 4.12.0 Use search field instead

Generate fields for the legacy filter header row

Parameters

GridField $gridField

Return Value

ArrayList|null

array getHTMLFragments(GridField $gridField)

Either returns the legacy filter header or the search button and field

Parameters

GridField $gridField

Return Value

array