From 1b472cda7b175a73ba44be1b9121a21a3ec0de0d Mon Sep 17 00:00:00 2001 From: Franco Springveldt Date: Tue, 11 Jul 2017 18:16:05 +1200 Subject: [PATCH] ENHANCEMENT removed needless list from CheckboxGroupField and RadioField --- .../EditableCheckboxGroupField.php | 5 +++-- .../editableformfields/EditableRadioField.php | 5 +++-- templates/UserFormsOptionSetField.ss | 7 +++++++ templates/forms/UserFormsCheckboxSetField.ss | 11 +++++++++++ tests/EditableCheckboxGroupFieldTest.php | 15 +++++++++++++++ tests/EditableRadioFieldTest.php | 15 +++++++++++++++ 6 files changed, 54 insertions(+), 4 deletions(-) create mode 100644 templates/UserFormsOptionSetField.ss create mode 100644 templates/forms/UserFormsCheckboxSetField.ss create mode 100644 tests/EditableCheckboxGroupFieldTest.php create mode 100644 tests/EditableRadioFieldTest.php diff --git a/code/model/editableformfields/EditableCheckboxGroupField.php b/code/model/editableformfields/EditableCheckboxGroupField.php index c36f7fa..b78a66f 100755 --- a/code/model/editableformfields/EditableCheckboxGroupField.php +++ b/code/model/editableformfields/EditableCheckboxGroupField.php @@ -18,8 +18,9 @@ class EditableCheckboxGroupField extends EditableMultipleOptionField public function getFormField() { - $field = new UserFormsCheckboxSetField($this->Name, $this->EscapedTitle, $this->getOptionsMap()); - $field->setFieldHolderTemplate('UserFormsMultipleOptionField_holder'); + $field = UserFormsCheckboxSetField::create($this->Name, $this->EscapedTitle, $this->getOptionsMap()) + ->setFieldHolderTemplate('UserFormsMultipleOptionField_holder') + ->setTemplate('UserFormsCheckboxSetField'); // Set the default checked items $defaultCheckedItems = $this->getDefaultOptions(); diff --git a/code/model/editableformfields/EditableRadioField.php b/code/model/editableformfields/EditableRadioField.php index 2129bb4..d58262b 100755 --- a/code/model/editableformfields/EditableRadioField.php +++ b/code/model/editableformfields/EditableRadioField.php @@ -28,8 +28,9 @@ class EditableRadioField extends EditableMultipleOptionField public function getFormField() { - $field = OptionsetField::create($this->Name, $this->EscapedTitle, $this->getOptionsMap()); - $field->setFieldHolderTemplate('UserFormsMultipleOptionField_holder'); + $field = OptionsetField::create($this->Name, $this->EscapedTitle, $this->getOptionsMap()) + ->setFieldHolderTemplate('UserFormsMultipleOptionField_holder') + ->setTemplate('UserFormsOptionSetField'); // Set default item $defaultOption = $this->getDefaultOptions()->first(); diff --git a/templates/UserFormsOptionSetField.ss b/templates/UserFormsOptionSetField.ss new file mode 100644 index 0000000..836ba5b --- /dev/null +++ b/templates/UserFormsOptionSetField.ss @@ -0,0 +1,7 @@ +<% loop $Options %> +
+ + checked<% end_if %><% if $isDisabled %> disabled<% end_if %> <% if $Up.Required %>required<% end_if %> /> + +
+<% end_loop %> diff --git a/templates/forms/UserFormsCheckboxSetField.ss b/templates/forms/UserFormsCheckboxSetField.ss new file mode 100644 index 0000000..290fd78 --- /dev/null +++ b/templates/forms/UserFormsCheckboxSetField.ss @@ -0,0 +1,11 @@ +<% if $Options.Count %> + <% loop $Options %> +
+ + checked="checked"<% end_if %><% if $isDisabled %> disabled="disabled"<% end_if %> /> + +
+ <% end_loop %> +<% else %> +

No options available

+<% end_if %> diff --git a/tests/EditableCheckboxGroupFieldTest.php b/tests/EditableCheckboxGroupFieldTest.php new file mode 100644 index 0000000..47f2b0f --- /dev/null +++ b/tests/EditableCheckboxGroupFieldTest.php @@ -0,0 +1,15 @@ +objFromFixture('EditableCheckboxGroupField', 'checkbox-group'); + $this->assertEquals('UserFormsCheckboxSetField', $checkboxGroup->getFormField()->getTemplate()); + } +} diff --git a/tests/EditableRadioFieldTest.php b/tests/EditableRadioFieldTest.php new file mode 100644 index 0000000..825785a --- /dev/null +++ b/tests/EditableRadioFieldTest.php @@ -0,0 +1,15 @@ +objFromFixture('EditableRadioField', 'radio-field'); + $this->assertEquals('UserFormsOptionSetField', $radio->getFormField()->getTemplate()); + } +}