class GridFieldAddExistingAutocompleter implements GridField_HTMLProvider, GridField_ActionProvider, GridField_DataManipulator, GridField_URLHandler (View source)

This class is is responsible for adding objects to another object's has_many and many_many relation, as defined by the RelationList passed to the GridField constructor.

Objects can be searched through an input field (partially matching one or more fields).

Selecting from the results will add the object to the relation.

Often used alongside GridFieldDeleteAction for detaching existing records from a relationship.

For easier setup, have a look at a sample configuration in GridFieldConfig_RelationEditor.

Properties

protected string $itemClass

Which template to use for rendering

protected $targetFragment

The HTML fragment to write this component into

protected SS_List $searchList
protected array $searchFields

Define column names which should be included in the search.

protected string $resultsFormat
protected string $placeholderText
protected int $resultsLimit

Methods

public
__construct(string $targetFragment = 'before', array $searchFields = null)

No description

public
array
getHTMLFragments($gridField)

No description

public
array
getActions($gridField)

No description

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

Manipulate the state to add a new relation

public
getManipulatedData(GridField $gridField, SS_List $dataList)

If an object ID is set, add the object to the list

public
getURLHandlers($gridField)

No description

public
doSearch(GridField $gridField, SS_HTTPRequest $request)

Returns a json array of a search results that can be used by for example Jquery.ui.autosuggestion

public
$this
setResultsFormat(string $format)

No description

public
string
getResultsFormat()

No description

public
setSearchList(SS_List $list)

Sets the base list instance which will be used for the autocomplete search.

public
setSearchFields(array $fields)

No description

public
array
getSearchFields()

No description

public
array|null
scaffoldSearchFields(string $dataClass)

Detect searchable fields and searchable relations.

public
string
getPlaceholderText(string $dataClass)

No description

public
$this
setPlaceholderText(string $text)

No description

public
int
getResultsLimit()

Gets the maximum number of autocomplete results to display.

public
$this
setResultsLimit(int $limit)

No description

Details

__construct(string $targetFragment = 'before', array $searchFields = null)

No description

Parameters

string $targetFragment
array $searchFields

Which fields on the object in the list should be searched

array getHTMLFragments($gridField)

No description

Parameters

$gridField

Return Value

array

array getActions($gridField)

No description

Parameters

$gridField

Return Value

array

with action identifier strings.

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

Manipulate the state to add a new relation

Parameters

GridField $gridField
$actionName
$arguments
$data

DataList getManipulatedData(GridField $gridField, SS_List $dataList)

If an object ID is set, add the object to the list

Parameters

GridField $gridField
SS_List $dataList

Return Value

DataList

getURLHandlers($gridField)

No description

Parameters

$gridField

doSearch(GridField $gridField, SS_HTTPRequest $request)

Returns a json array of a search results that can be used by for example Jquery.ui.autosuggestion

Parameters

GridField $gridField
SS_HTTPRequest $request

$this setResultsFormat(string $format)

No description

Parameters

string $format

Return Value

$this

string getResultsFormat()

No description

Return Value

string

setSearchList(SS_List $list)

Sets the base list instance which will be used for the autocomplete search.

Parameters

SS_List $list

setSearchFields(array $fields)

No description

Parameters

array $fields

array getSearchFields()

No description

Return Value

array

array|null scaffoldSearchFields(string $dataClass)

Detect searchable fields and searchable relations.

Falls back to DataObject->summaryFields() if no custom search fields are defined.

Parameters

string $dataClass

the class name

Return Value

array|null

names of the searchable fields

string getPlaceholderText(string $dataClass)

No description

Parameters

string $dataClass

The class of the object being searched for

Return Value

string

$this setPlaceholderText(string $text)

No description

Parameters

string $text

Return Value

$this

int getResultsLimit()

Gets the maximum number of autocomplete results to display.

Return Value

int

$this setResultsLimit(int $limit)

No description

Parameters

int $limit

Return Value

$this