From f682e74f440e24cb58aa62591f5b84cc581ef895 Mon Sep 17 00:00:00 2001 From: Remy Vaartjes Date: Mon, 8 Jul 2019 14:26:58 +0200 Subject: [PATCH] Enable 4.4 better button functionality --- code/Extension/UserFormFieldEditorExtension.php | 4 +++- code/Model/EditableFormField.php | 10 ++++++++++ code/UserForm.php | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/code/Extension/UserFormFieldEditorExtension.php b/code/Extension/UserFormFieldEditorExtension.php index 1ba3c39..d917015 100644 --- a/code/Extension/UserFormFieldEditorExtension.php +++ b/code/Extension/UserFormFieldEditorExtension.php @@ -3,6 +3,7 @@ namespace SilverStripe\UserForms\Extension; use SilverStripe\Forms\FieldList; +use SilverStripe\Forms\GridField\GridFieldPaginator; use SilverStripe\Forms\Tab; use SilverStripe\Forms\GridField\GridField; use SilverStripe\Forms\GridField\GridFieldButtonRow; @@ -103,7 +104,8 @@ class UserFormFieldEditorExtension extends DataExtension new GridFieldDeleteAction(), new GridFieldToolbarHeader(), new GridFieldOrderableRows('Sort'), - new GridFieldDetailForm(null, false, false) + new GridFieldDetailForm(), + new GridFieldPaginator(999) ); $editButton->removeExtraClass('grid-field__icon-action--hidden-on-hover'); diff --git a/code/Model/EditableFormField.php b/code/Model/EditableFormField.php index f65e792..41000a6 100755 --- a/code/Model/EditableFormField.php +++ b/code/Model/EditableFormField.php @@ -228,6 +228,16 @@ class EditableFormField extends DataObject { $fields = FieldList::create(TabSet::create('Root')); + // If created with (+) button + if ($this->ClassName === EditableFormField::class) { + $fieldClasses = $this->getEditableFieldClasses(); + $fields->addFieldsToTab('Root.Main', [ + DropdownField::create('ClassName', _t(__CLASS__.'.TYPE', 'Type'), $fieldClasses) + ->setEmptyString(_t(__CLASS__ . 'TYPE_EMPTY', 'Select field type')) + ]); + return $fields; + } + // Main tab $fields->addFieldsToTab( 'Root.Main', diff --git a/code/UserForm.php b/code/UserForm.php index 89bcf0d..b4a5e30 100644 --- a/code/UserForm.php +++ b/code/UserForm.php @@ -258,7 +258,7 @@ SQL; $config->addComponent(new GridFieldDeleteAction()); $config->addComponent(new GridFieldPageCount('toolbar-header-right')); $config->addComponent($pagination = new GridFieldPaginator(25)); - $config->addComponent(new GridFieldDetailForm(null, null, false)); + $config->addComponent(new GridFieldDetailForm()); // RVXD $config->addComponent(new GridFieldButtonRow('after')); $config->addComponent($export = new GridFieldExportButton('buttons-after-left')); $config->addComponent($print = new GridFieldPrintButton('buttons-after-left'));