Add form field to disable objects
authorMatthias Schmidt <gravatronics@live.com>
Sat, 10 Feb 2018 19:41:00 +0000 (20:41 +0100)
committerMatthias Schmidt <gravatronics@live.com>
Sat, 10 Feb 2018 19:41:00 +0000 (20:41 +0100)
See #2509

wcfsetup/install/files/lib/acp/form/DevtoolsFormBuilderTestForm.class.php
wcfsetup/install/files/lib/system/form/builder/field/IsDisabledFormField.class.php [new file with mode: 0644]

index e4cda2590659bbdfc96154b4f01cafe332cf0499..1ae952dd10e5d2b30105a1920eb507dcd4bf0835 100644 (file)
@@ -9,6 +9,7 @@ use wcf\system\form\builder\container\TabMenuFormContainer;
 use wcf\system\form\builder\field\data\CustomFormFieldDataProcessor;
 use wcf\system\form\builder\field\dependency\NonEmptyFormFieldDependency;
 use wcf\system\form\builder\field\dependency\ValueFormFieldDependency;
+use wcf\system\form\builder\field\IsDisabledFormField;
 use wcf\system\form\builder\field\TitleFormField;
 use wcf\system\form\builder\field\validation\FormFieldValidationError;
 use wcf\system\form\builder\field\validation\FormFieldValidator;
@@ -91,7 +92,7 @@ class DevtoolsFormBuilderTestForm extends AbstractForm {
                                                ->i18n()
                                                ->i18nRequired()
                                                ->required(),
-                                       BooleanFormField::create('isDisabled')
+                                       IsDisabledFormField::create()
                                                ->label('Foo is Disabled')
                                                ->description('If Foo is disabled, it is indeed disabled.')
                                                ->addValidator(new FormFieldValidator('notSelected', function(BooleanFormField $field) {
diff --git a/wcfsetup/install/files/lib/system/form/builder/field/IsDisabledFormField.class.php b/wcfsetup/install/files/lib/system/form/builder/field/IsDisabledFormField.class.php
new file mode 100644 (file)
index 0000000..2568c25
--- /dev/null
@@ -0,0 +1,25 @@
+<?php
+namespace wcf\system\form\builder\field;
+use wcf\system\form\builder\IFormNode;
+
+/**
+ * Implementation of a form field for disabling an object.
+ * 
+ * @author     Matthias Schmidt
+ * @copyright  2001-2018 WoltLab GmbH
+ * @license    GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
+ * @package    WoltLabSuite\Core\System\Form\Builder\Field
+ * @since      3.2
+ */
+class IsDisabledFormField extends BooleanFormField {
+       /**
+        * @inheritDoc
+        */
+       public static function create(string $id = null): IFormNode {
+               if ($id !== null) {
+                       throw new \InvalidArgumentException("This method does not expect any parameters. The id of form fields of this class are always 'isDisabled'.");
+               }
+               
+               return parent::create('isDisabled');
+       }
+}