FIX Allow editable form fields to have nullable titles rather than fallback to Name

This commit is contained in:
Robbie Averill 2018-03-23 16:23:51 +13:00
parent d13bf1e0bc
commit 5cce5f5a17
14 changed files with 17 additions and 21 deletions

View File

@ -44,7 +44,7 @@ class EditableCheckbox extends EditableFormField
public function getFormField() public function getFormField()
{ {
$field = CheckboxField::create($this->Name, $this->Title, $this->CheckedDefault) $field = CheckboxField::create($this->Name, $this->Title ?: false, $this->CheckedDefault)
->setFieldHolderTemplate(__CLASS__ . '_holder') ->setFieldHolderTemplate(__CLASS__ . '_holder')
->setTemplate(__CLASS__); ->setTemplate(__CLASS__);

View File

@ -25,7 +25,7 @@ class EditableCheckboxGroupField extends EditableMultipleOptionField
public function getFormField() public function getFormField()
{ {
$field = UserFormsCheckboxSetField::create($this->Name, $this->Title, $this->getOptionsMap()) $field = UserFormsCheckboxSetField::create($this->Name, $this->Title ?: false, $this->getOptionsMap())
->setFieldHolderTemplate(EditableMultipleOptionField::class . '_holder') ->setFieldHolderTemplate(EditableMultipleOptionField::class . '_holder')
->setTemplate(UserFormsCheckboxSetField::class); ->setTemplate(UserFormsCheckboxSetField::class);

View File

@ -35,7 +35,7 @@ class EditableCountryDropdownField extends EditableFormField
public function getFormField() public function getFormField()
{ {
$field = DropdownField::create($this->Name, $this->Title) $field = DropdownField::create($this->Name, $this->Title ?: false)
->setSource(i18n::getData()->getCountries()) ->setSource(i18n::getData()->getCountries())
->setFieldHolderTemplate(EditableFormField::class . '_holder') ->setFieldHolderTemplate(EditableFormField::class . '_holder')
->setTemplate(EditableDropdown::class); ->setTemplate(EditableDropdown::class);

View File

@ -58,7 +58,7 @@ class EditableDateField extends EditableFormField
? DBDatetime::now()->Format('Y-m-d') ? DBDatetime::now()->Format('Y-m-d')
: $this->Default; : $this->Default;
$field = FormField::create($this->Name, $this->Title, $defaultValue) $field = FormField::create($this->Name, $this->Title ?: false, $defaultValue)
->setFieldHolderTemplate(EditableFormField::class . '_holder') ->setFieldHolderTemplate(EditableFormField::class . '_holder')
->setTemplate(EditableFormField::class); ->setTemplate(EditableFormField::class);

View File

@ -60,7 +60,7 @@ class EditableDropdown extends EditableMultipleOptionField
*/ */
public function getFormField() public function getFormField()
{ {
$field = DropdownField::create($this->Name, $this->Title, $this->getOptionsMap()) $field = DropdownField::create($this->Name, $this->Title ?: false, $this->getOptionsMap())
->setFieldHolderTemplate(EditableFormField::class . '_holder') ->setFieldHolderTemplate(EditableFormField::class . '_holder')
->setTemplate(__CLASS__); ->setTemplate(__CLASS__);

View File

@ -30,7 +30,7 @@ class EditableEmailField extends EditableFormField
public function getFormField() public function getFormField()
{ {
$field = EmailField::create($this->Name, $this->Title, $this->Default) $field = EmailField::create($this->Name, $this->Title ?: false, $this->Default)
->setFieldHolderTemplate(EditableFormField::class . '_holder') ->setFieldHolderTemplate(EditableFormField::class . '_holder')
->setTemplate(EditableFormField::class); ->setTemplate(EditableFormField::class);

View File

@ -97,7 +97,7 @@ class EditableFileField extends EditableFormField
public function getFormField() public function getFormField()
{ {
$field = FileField::create($this->Name, $this->Title) $field = FileField::create($this->Name, $this->Title ?: false)
->setFieldHolderTemplate(EditableFormField::class . '_holder') ->setFieldHolderTemplate(EditableFormField::class . '_holder')
->setTemplate(__CLASS__); ->setTemplate(__CLASS__);

View File

@ -68,7 +68,7 @@ class EditableFormHeading extends EditableFormField
public function getFormField() public function getFormField()
{ {
$labelField = HeaderField::create('userforms-header', $this->Title) $labelField = HeaderField::create('userforms-header', $this->Title ?: false)
->setHeadingLevel($this->Level); ->setHeadingLevel($this->Level);
$labelField->addExtraClass('FormHeading'); $labelField->addExtraClass('FormHeading');
$labelField->setAttribute('data-id', $this->Name); $labelField->setAttribute('data-id', $this->Name);

View File

@ -54,7 +54,7 @@ class EditableMemberListField extends EditableFormField
} }
$members = Member::map_in_groups($this->GroupID); $members = Member::map_in_groups($this->GroupID);
$field = DropdownField::create($this->Name, $this->Title, $members); $field = DropdownField::create($this->Name, $this->Title ?: false, $members);
$this->doUpdateFormField($field); $this->doUpdateFormField($field);
return $field; return $field;
} }

View File

@ -41,7 +41,7 @@ class EditableNumericField extends EditableFormField
*/ */
public function getFormField() public function getFormField()
{ {
$field = NumericField::create($this->Name, $this->Title, $this->Default) $field = NumericField::create($this->Name, $this->Title ?: false, $this->Default)
->setFieldHolderTemplate(EditableFormField::class . '_holder') ->setFieldHolderTemplate(EditableFormField::class . '_holder')
->setTemplate(EditableFormField::class) ->setTemplate(EditableFormField::class)
->addExtraClass('number'); ->addExtraClass('number');

View File

@ -35,7 +35,7 @@ class EditableRadioField extends EditableMultipleOptionField
public function getFormField() public function getFormField()
{ {
$field = OptionsetField::create($this->Name, $this->Title, $this->getOptionsMap()) $field = OptionsetField::create($this->Name, $this->Title ?: false, $this->getOptionsMap())
->setFieldHolderTemplate(EditableMultipleOptionField::class . '_holder') ->setFieldHolderTemplate(EditableMultipleOptionField::class . '_holder')
->setTemplate('SilverStripe\\UserForms\\FormField\\UserFormsOptionSetField'); ->setTemplate('SilverStripe\\UserForms\\FormField\\UserFormsOptionSetField');

View File

@ -128,12 +128,12 @@ class EditableTextField extends EditableFormField
public function getFormField() public function getFormField()
{ {
if ($this->Rows > 1) { if ($this->Rows > 1) {
$field = TextareaField::create($this->Name, $this->Title, $this->Default) $field = TextareaField::create($this->Name, $this->Title ?: false, $this->Default)
->setFieldHolderTemplate(EditableFormField::class . '_holder') ->setFieldHolderTemplate(EditableFormField::class . '_holder')
->setTemplate(str_replace('EditableTextField', 'EditableTextareaField', __CLASS__)) ->setTemplate(str_replace('EditableTextField', 'EditableTextareaField', __CLASS__))
->setRows($this->Rows); ->setRows($this->Rows);
} else { } else {
$field = TextField::create($this->Name, $this->Title, $this->Default) $field = TextField::create($this->Name, $this->Title ?: false, $this->Default)
->setFieldHolderTemplate(EditableFormField::class . '_holder') ->setFieldHolderTemplate(EditableFormField::class . '_holder')
->setTemplate(EditableFormField::class); ->setTemplate(EditableFormField::class);
} }

View File

@ -87,12 +87,4 @@ class EditableLiteralFieldTest extends SapphireTest
'Actual literal field exists in composite field children' 'Actual literal field exists in composite field children'
); );
} }
public function testAllowEmptyTitle()
{
/** @var EditableLiteralField $field */
$field = EditableLiteralField::create();
$field->Name = 'EditableFormField_123456';
$this->assertEmpty($field->getFormField()->Title());
}
} }

View File

@ -26,6 +26,10 @@ class EditableTextFieldTest extends SapphireTest
/** @var EditableTextField $field */ /** @var EditableTextField $field */
$field = EditableTextField::create(); $field = EditableTextField::create();
$field->Name = 'EditableFormField_123456'; $field->Name = 'EditableFormField_123456';
$field->Rows = 1;
$this->assertEmpty($field->getFormField()->Title());
$field->Rows = 3;
$this->assertEmpty($field->getFormField()->Title()); $this->assertEmpty($field->getFormField()->Title());
} }
} }