Source of file EditableFormHeading.php
Size: 3,031 Bytes - Last Modified: 2021-12-23T10:35:40+00:00
/var/www/docs.ssmods.com/process/src/code/Model/EditableFormField/EditableFormHeading.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 | <?php namespace SilverStripe\UserForms\Model\EditableFormField; use SilverStripe\Forms\CheckboxField; use SilverStripe\Forms\DropdownField; use SilverStripe\Forms\FieldList; use SilverStripe\Forms\HeaderField; use SilverStripe\UserForms\Model\EditableFormField; /** * Allows an editor to insert a generic heading into a field * * @package userforms * @property int $Level * @property int $HideFromReports */ class EditableFormHeading extends EditableFormField { private static $singular_name = 'Heading'; private static $plural_name = 'Headings'; private static $literal = true; private static $db = [ 'Level' => 'Int(3)', // From CustomSettings 'HideFromReports' => 'Boolean(0)' // from CustomSettings ]; private static $defaults = [ 'Level' => 3, 'HideFromReports' => false ]; private static $table_name = 'EditableFormHeading'; /** * @return FieldList */ public function getCMSFields() { $fields = parent::getCMSFields(); $fields->removeByName(['Default', 'Validation', 'RightTitle']); $levels = [ '1' => '1', '2' => '2', '3' => '3', '4' => '4', '5' => '5', '6' => '6' ]; $fields->addFieldsToTab('Root.Main', [ DropdownField::create( 'Level', _t(__CLASS__.'.LEVEL', 'Select Heading Level'), $levels ), CheckboxField::create( 'HideFromReports', _t('SilverStripe\\UserForms\\Model\\EditableFormField\\EditableLiteralField.HIDEFROMREPORT', 'Hide from reports?') ) ]); return $fields; } public function getFormField() { $labelField = HeaderField::create('userforms-header', $this->Title ?: false) ->setHeadingLevel($this->Level); $labelField->addExtraClass('FormHeading'); $labelField->setAttribute('data-id', $this->Name); $this->doUpdateFormField($labelField); return $labelField; } protected function updateFormField($field) { // set the right title on this field if ($this->RightTitle) { $field->setRightTitle($this->RightTitle); } // if this field has an extra class if ($this->ExtraClass) { $field->addExtraClass($this->ExtraClass); } if (!$this->ShowOnLoad) { $field->addExtraClass($this->ShowOnLoadNice()); } } public function showInReports() { return !$this->HideFromReports; } public function getFieldValidationOptions() { return false; } public function getSelectorHolder() { return "$(\":header[data-id='{$this->Name}']\")"; } public function getSelectorOnly() { return "[data-id={$this->Name}]"; } public function getLevel() { return $this->getField('Level') ?: 3; } } |