Version: current

# Class ScaffoldingComplexTableField_Popup

Used by ModelAdmin scaffolding, to manage many-many relationships.

  Object
  ViewableData implements IteratorAggregate
  RequestHandler
  Form
  ComplexTableField_Popup
  ScaffoldingComplexTableField_Popup

Package: forms\fields-relational
Located at sapphire/forms/ScaffoldingComplexTableField.php

## Methods summary

`public` | # `__construct( `Controller` $controller, String $name, `FieldSet` $fields, `FieldSet` $validator, `Validator` $readonly, mixed $dataObject )` Create a new form, with the given fields an action buttons. Create a new form, with the given fields an action buttons. #### Parameters $controller Controller $controller The parent controller, necessary to create the appropriate form action tag. $name String $name The method on the controller that will return this form object. $fields FieldSet $fields All of the fields in the form - a `FieldSet` of `FormField` objects. $validator FieldSet $actions All of the action buttons in the form - a `FieldSet` of `FormAction` objects $readonly Validator $validator Override the default validator instance (Default: `RequiredFields`) $dataObject #### Overrides `ComplexTableField_Popup::__construct`
`public` | # `handleAction( `SS_HTTPRequest` $request )` Handle a generic action passed in by the URL mapping. Handle a generic action passed in by the URL mapping. #### Parameters $request SS_HTTPRequest $request
`public` | # `filter( `SS_HTTPRequest` $request )` Action to render results for an autocomplete filter. Action to render results for an autocomplete filter. #### Parameters $request SS_HTTPRequest $request
`public` | # `record( mixed $request )` Action to populate edit box with a single data object via Ajax query Action to populate edit box with a single data object via Ajax query

### Methods inherited from ComplexTableField_Popup

`forTemplate()`, `getParentController()`

### Methods inherited from Form

`Actions()`, `Controller()`, `FieldMap()`, `Fields()`, `FormAction()`, `FormAttributes()`, `FormEncType()`, `FormHttpMethod()`, `FormMethod()`, `FormName()`, `HiddenFields()`, `Message()`, `MessageType()`, `Name()`, `addErrorMessage()`, `addExtraClass()`, `buttonClicked()`, `callfieldmethod()`, `clearMessage()`, `current_action()`, `dataFieldByName()`, `debug()`, `defaultAction()`, `disableDefaultAction()`, `disableSecurityToken()`, `disable_all_security_tokens()`, `extraClass()`, `forAjaxTemplate()`, `formHtmlContent()`, `getData()`, `getExtraClasses()`, `getExtraFields()`, `getLegend()`, `getMessageFromSession()`, `getRecord()`, `getRedirectToFormOnValidationError()`, `getTemplate()`, `getValidator()`, `handleField()`, `httpSubmission()`, `loadDataFrom()`, `makeReadonly()`, `messageForForm()`, `removeExtraClass()`, `renderWithoutActionButton()`, `resetField()`, `resetValidation()`, `saveInto()`, `securityTokenEnabled()`, `sessionMessage()`, `setActions()`, `setButtonClicked()`, `setFields()`, `setFormAction()`, `setFormMethod()`, `setHTMLID()`, `setLegend()`, `setMessage()`, `setRedirectToFormOnValidationError()`, `setTarget()`, `setTemplate()`, `setValidator()`, `set_current_action()`, `setupFormErrors()`, `single_field_required()`, `testAjaxSubmission()`, `testSubmission()`, `transform()`, `transformTo()`, `unsetActionByName()`, `unsetAllActions()`, `unsetDataFieldByName()`, `unsetFieldFromTab()`, `unsetValidator()`, `validate()`

### Methods inherited from RequestHandler

`allowedActions()`, `checkAccessAction()`, `getRequest()`, `handleRequest()`, `hasAction()`, `httpError()`

### Methods inherited from ViewableData

`ATT_val()`, `BaseHref()`, `CSSClasses()`, `ColumnBreak()`, `ColumnCalc()`, `ColumnNumber()`, `ColumnPad()`, `ColumnPos()`, `CurrentMember()`, `CurrentPage()`, `Debug()`, `Even()`, `EvenOdd()`, `First()`, `FirstLast()`, `HasPerm()`, `IsAjax()`, `JS_val()`, `Last()`, `Me()`, `Middle()`, `MiddleString()`, `Modulus()`, `MultipleOf()`, `Odd()`, `Pos()`, `RAW_val()`, `SQL_val()`, `ThemeDir()`, `ThemeName()`, `Top()`, `TotalItems()`, `XML_val()`, `__get()`, `__isset()`, `__set()`, `buildCastingCache()`, `cachedCall()`, `castingClass()`, `castingHelper()`, `castingHelperPair()`, `castingObjectCreator()`, `castingObjectCreatorPair()`, `customise()`, `defineMethods()`, `escapeTypeForField()`, `getField()`, `getIterator()`, `getSecurityID()`, `getXMLValues()`, `hasField()`, `hasValue()`, `i18nLocale()`, `iteratorProperties()`, `obj()`, `renderWith()`, `setCustomisedObj()`, `setField()`

### Methods inherited from Object

`__call()`, `__toString()`, `__wakeup()`, `addMethodsFrom()`, `addStaticVars()`, `addWrapperMethod()`, `add_extension()`, `add_static_var()`, `allMethodNames()`, `cacheToFile()`, `cacheToFileWithArgs()`, `clearCache()`, `combined_static()`, `create()`, `createMethod()`, `create_from_string()`, `exists()`, `extInstance()`, `extend()`, `getCustomClass()`, `getExtensionInstance()`, `getExtensionInstances()`, `get_extensions()`, `get_static()`, `hasExtension()`, `hasMethod()`, `has_extension()`, `invokeWithExtensions()`, `is_a()`, `loadCache()`, `parentClass()`, `parse_class_spec()`, `remove_extension()`, `sanitiseCachename()`, `saveCache()`, `set_stat()`, `set_static()`, `set_uninherited()`, `stat()`, `strong_create()`, `uninherited()`, `uninherited_static()`, `useCustomClass()`

### Magic methods summary

## Properties summary

`public static array` | $allowed_actions | # Define a list of action handling methods that are allowed to be called directly by URLs. The variable should be an array of action names. This sample shows the different values that it can contain: Define a list of action handling methods that are allowed to be called directly by URLs. The variable should be an array of action names. This sample shows the different values that it can contain:
    array(
            'someaction', // someaction can be accessed by anyone, any time
            'otheraction' => true, // So can otheraction
            'restrictedaction' => 'ADMIN', // restrictedaction can only be people with ADMIN privilege
            'complexaction' '->canComplexAction' // complexaction can only be accessed if $this->canComplexAction() returns true
    );

### Properties inherited from ComplexTableField_Popup

`$dataObject`, `$sourceClass`

### Properties inherited from Form

`$IncludeFormTag`, `$actions`, `$buttonClickedFunc`, `$controller`, `$current_action`, `$extraClasses`, `$fields`, `$formMethod`, `$hasDefaultAction`, `$jsValidationIncluded`, `$legend`, `$message`, `$messageType`, `$name`, `$record`, `$redirectToFormOnValidationError`, `$security`, `$target`, `$template`, `$url_handlers`, `$validator`

### Properties inherited from RequestHandler

`$brokenOnConstruct`, `$request`

### Properties inherited from ViewableData

`$casting`, `$customisedObject`, `$default_cast`, `$failover`, `$iteratorPos`, `$iteratorTotalItems`

### Properties inherited from Object

`$class`, `$extension_instances`, `$extensions`

[Raise a SilverStripe Framework issue/bug](https://github.com/silverstripe/silverstripe-framework/issues/new)
- [Raise a SilverStripe CMS issue/bug](https://github.com/silverstripe/silverstripe-cms/issues/new)
- Please use the Silverstripe Forums to ask development related questions. -