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 {@link RelationList} passed to the {@link 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 {@link GridFieldDeleteAction} for detaching existing records from a relationship.

For easier setup, have a look at a sample configuration in {@link GridFieldConfig_RelationEditor}.

Methods

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

No description

array
getHTMLFragments($gridField)

No description

array
getActions($gridField)

No description

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

Manipulate the state to add a new relation

getManipulatedData(GridField $gridField, SS_List $dataList)

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

getURLHandlers($gridField)

No description

doSearch(GridField $gridField, SS_HTTPRequest $request)

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

$this
setResultsFormat(string $format)

No description

string
getResultsFormat()

No description

setSearchList(SS_List $list)

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

setSearchFields(array $fields)

No description

array
getSearchFields()

No description

array|null
scaffoldSearchFields(string $dataClass)

Detect searchable fields and searchable relations.

string
getPlaceholderText(string $dataClass)

No description

$this
setPlaceholderText(string $text)

No description

int
getResultsLimit()

Gets the maximum number of autocomplete results to display.

$this
setResultsLimit(int $limit)

No description

Details

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

Parameters

string $targetFragment
array $searchFields

Which fields on the object in the list should be searched

array getHTMLFragments($gridField)

Parameters

$gridField

Return Value

array

array getActions($gridField)

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)

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)

Parameters

string $format

Return Value

$this

string getResultsFormat()

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)

Parameters

array $fields

array getSearchFields()

Return Value

array

array|null scaffoldSearchFields(string $dataClass)

Detect searchable fields and searchable relations.

Falls back to {@link 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)

Parameters

string $dataClass

The class of the object being searched for

Return Value

string

$this setPlaceholderText(string $text)

Parameters

string $text

Return Value

$this

int getResultsLimit()

Gets the maximum number of autocomplete results to display.

Return Value

int

$this setResultsLimit(int $limit)

Parameters

int $limit

Return Value

$this