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()
{
$field = CheckboxField::create($this->Name, $this->Title, $this->CheckedDefault)
$field = CheckboxField::create($this->Name, $this->Title ?: false, $this->CheckedDefault)
->setFieldHolderTemplate(__CLASS__ . '_holder')
->setTemplate(__CLASS__);

View File

@ -25,7 +25,7 @@ class EditableCheckboxGroupField extends EditableMultipleOptionField
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')
->setTemplate(UserFormsCheckboxSetField::class);

View File

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

View File

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

View File

@ -60,7 +60,7 @@ class EditableDropdown extends EditableMultipleOptionField
*/
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')
->setTemplate(__CLASS__);

View File

@ -30,7 +30,7 @@ class EditableEmailField extends EditableFormField
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')
->setTemplate(EditableFormField::class);

View File

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

View File

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

View File

@ -54,7 +54,7 @@ class EditableMemberListField extends EditableFormField
}
$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);
return $field;
}

View File

@ -41,7 +41,7 @@ class EditableNumericField extends EditableFormField
*/
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')
->setTemplate(EditableFormField::class)
->addExtraClass('number');

View File

@ -35,7 +35,7 @@ class EditableRadioField extends EditableMultipleOptionField
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')
->setTemplate('SilverStripe\\UserForms\\FormField\\UserFormsOptionSetField');

View File

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

View File

@ -87,12 +87,4 @@ class EditableLiteralFieldTest extends SapphireTest
'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 */
$field = EditableTextField::create();
$field->Name = 'EditableFormField_123456';
$field->Rows = 1;
$this->assertEmpty($field->getFormField()->Title());
$field->Rows = 3;
$this->assertEmpty($field->getFormField()->Title());
}
}