Source of file EditableRadioField.php
Size: 1,676 Bytes - Last Modified: 2021-12-23T10:35:40+00:00
/var/www/docs.ssmods.com/process/src/code/Model/EditableFormField/EditableRadioField.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | <?php namespace SilverStripe\UserForms\Model\EditableFormField; use SilverStripe\Forms\FieldList; use SilverStripe\UserForms\FormField\UserFormsOptionSetField; use SilverStripe\UserForms\Model\EditableCustomRule; /** * EditableRadioField * * Represents a set of selectable radio buttons * * @package userforms */ class EditableRadioField extends EditableMultipleOptionField { private static $singular_name = 'Radio Group'; private static $plural_name = 'Radio Groups'; private static $table_name = 'EditableRadioField'; /** * @return FieldList */ public function getCMSFields() { $fields = parent::getCMSFields(); $fields->removeByName('Default'); return $fields; } public function getFormField() { $field = UserFormsOptionSetField::create($this->Name, $this->Title ?: false, $this->getOptionsMap()) ->setFieldHolderTemplate(EditableMultipleOptionField::class . '_holder') ->setTemplate(UserFormsOptionSetField::class); // Set default item $defaultOption = $this->getDefaultOptions()->first(); if ($defaultOption) { $field->setValue($defaultOption->Value); } $this->doUpdateFormField($field); return $field; } public function getSelectorField(EditableCustomRule $rule, $forOnLoad = false) { // We only want to trigger on load once for the radio group - hence we focus on the first option only. $first = $forOnLoad ? ':first' : ''; return "$(\"input[name='{$this->Name}']{$first}\")"; } public function isRadioField() { return true; } } |