diff --git a/src/Forms/Controls/Button.php b/src/Forms/Controls/Button.php index f4571922c..7b74b7e05 100644 --- a/src/Forms/Controls/Button.php +++ b/src/Forms/Controls/Button.php @@ -23,6 +23,7 @@ public function __construct($caption = NULL) { parent::__construct($caption); $this->control->type = 'button'; + $this->setOption('type', 'button'); } diff --git a/src/Forms/Controls/Checkbox.php b/src/Forms/Controls/Checkbox.php index 711427b61..c6a076980 100644 --- a/src/Forms/Controls/Checkbox.php +++ b/src/Forms/Controls/Checkbox.php @@ -27,6 +27,7 @@ public function __construct($label = NULL) parent::__construct($label); $this->control->type = 'checkbox'; $this->wrapper = Nette\Utils\Html::el(); + $this->setOption('type', 'checkbox'); } diff --git a/src/Forms/Controls/CheckboxList.php b/src/Forms/Controls/CheckboxList.php index 439789c26..2460f9148 100644 --- a/src/Forms/Controls/CheckboxList.php +++ b/src/Forms/Controls/CheckboxList.php @@ -36,6 +36,7 @@ public function __construct($label = NULL, array $items = NULL) $this->control->type = 'checkbox'; $this->container = Html::el(); $this->separator = Html::el('br'); + $this->setOption('type', 'checkbox'); } diff --git a/src/Forms/Controls/HiddenField.php b/src/Forms/Controls/HiddenField.php index bf7ffbc9a..e59354434 100644 --- a/src/Forms/Controls/HiddenField.php +++ b/src/Forms/Controls/HiddenField.php @@ -23,6 +23,7 @@ public function __construct($persistentValue = NULL) { parent::__construct(); $this->control->type = 'hidden'; + $this->setOption('type', 'hidden'); if ($persistentValue !== NULL) { $this->unmonitor(Nette\Forms\Form::class); $this->persistValue = TRUE; diff --git a/src/Forms/Controls/MultiSelectBox.php b/src/Forms/Controls/MultiSelectBox.php index 7ca70a8a3..25ceb2371 100644 --- a/src/Forms/Controls/MultiSelectBox.php +++ b/src/Forms/Controls/MultiSelectBox.php @@ -19,6 +19,13 @@ class MultiSelectBox extends MultiChoiceControl private $options = []; + public function __construct($label = NULL, array $items = NULL) + { + parent::__construct($label, $items); + $this->setOption('type', 'select'); + } + + /** * Sets options and option groups from which to choose. * @return self diff --git a/src/Forms/Controls/RadioList.php b/src/Forms/Controls/RadioList.php index 57607b885..1100f204c 100644 --- a/src/Forms/Controls/RadioList.php +++ b/src/Forms/Controls/RadioList.php @@ -44,6 +44,7 @@ public function __construct($label = NULL, array $items = NULL) $this->container = Html::el(); $this->separator = Html::el('br'); $this->itemLabel = Html::el(); + $this->setOption('type', 'radio'); } diff --git a/src/Forms/Controls/SelectBox.php b/src/Forms/Controls/SelectBox.php index 310043310..fb013f434 100644 --- a/src/Forms/Controls/SelectBox.php +++ b/src/Forms/Controls/SelectBox.php @@ -25,6 +25,13 @@ class SelectBox extends ChoiceControl private $prompt = FALSE; + public function __construct($label = NULL, array $items = NULL) + { + parent::__construct($label, $items); + $this->setOption('type', 'select'); + } + + /** * Sets first prompt item in select box. * @param string diff --git a/src/Forms/Controls/TextArea.php b/src/Forms/Controls/TextArea.php index 7773e15bb..4b08e8f42 100644 --- a/src/Forms/Controls/TextArea.php +++ b/src/Forms/Controls/TextArea.php @@ -23,6 +23,7 @@ public function __construct($label = NULL) { parent::__construct($label); $this->control->setName('textarea'); + $this->setOption('type', 'textarea'); } diff --git a/src/Forms/Controls/TextInput.php b/src/Forms/Controls/TextInput.php index 394f94d25..a5c6d8a5c 100644 --- a/src/Forms/Controls/TextInput.php +++ b/src/Forms/Controls/TextInput.php @@ -26,6 +26,7 @@ public function __construct($label = NULL, $maxLength = NULL) parent::__construct($label); $this->control->type = 'text'; $this->control->maxlength = $maxLength; + $this->setOption('type', 'text'); } diff --git a/src/Forms/Controls/UploadControl.php b/src/Forms/Controls/UploadControl.php index e6e158d1c..f1bcbb46a 100644 --- a/src/Forms/Controls/UploadControl.php +++ b/src/Forms/Controls/UploadControl.php @@ -26,6 +26,7 @@ public function __construct($label = NULL, $multiple = FALSE) parent::__construct($label); $this->control->type = 'file'; $this->control->multiple = (bool) $multiple; + $this->setOption('type', 'file'); } diff --git a/tests/Forms/Controls.Button.render.phpt b/tests/Forms/Controls.Button.render.phpt index b55e39fa6..9135be760 100644 --- a/tests/Forms/Controls.Button.render.phpt +++ b/tests/Forms/Controls.Button.render.phpt @@ -111,6 +111,8 @@ test(function () { // rendering options $form = new Form; $input = $form->addButton('button'); + Assert::same('button', $input->getOption('type')); + Assert::null($input->getOption('rendered')); $input->getControl(); Assert::true($input->getOption('rendered')); diff --git a/tests/Forms/Controls.Checkbox.render.phpt b/tests/Forms/Controls.Checkbox.render.phpt index b92b135a1..c60cacad4 100644 --- a/tests/Forms/Controls.Checkbox.render.phpt +++ b/tests/Forms/Controls.Checkbox.render.phpt @@ -72,6 +72,8 @@ test(function () { // rendering options $form = new Form; $input = $form->addCheckbox('on'); + Assert::same('checkbox', $input->getOption('type')); + Assert::null($input->getOption('rendered')); $input->getControl(); Assert::true($input->getOption('rendered')); diff --git a/tests/Forms/Controls.CheckboxList.render.phpt b/tests/Forms/Controls.CheckboxList.render.phpt index 0d97e619f..8cfdf34ef 100644 --- a/tests/Forms/Controls.CheckboxList.render.phpt +++ b/tests/Forms/Controls.CheckboxList.render.phpt @@ -171,6 +171,8 @@ test(function () { // rendering options $form = new Form; $input = $form->addCheckboxList('list'); + Assert::same('checkbox', $input->getOption('type')); + Assert::null($input->getOption('rendered')); $input->getControl(); Assert::true($input->getOption('rendered')); diff --git a/tests/Forms/Controls.CsrfProtection.phpt b/tests/Forms/Controls.CsrfProtection.phpt index 1436953f2..80e16bfc1 100644 --- a/tests/Forms/Controls.CsrfProtection.phpt +++ b/tests/Forms/Controls.CsrfProtection.phpt @@ -25,6 +25,7 @@ Assert::same(['Security token did not match. Possible CSRF attack.'], $form->get Assert::null($input->getOption('rendered')); Assert::match('', (string) $input->getControl()); Assert::true($input->getOption('rendered')); +Assert::same('hidden', $input->getOption('type')); $input->setValue(NULL); Assert::false(CsrfProtection::validateCsrf($input)); diff --git a/tests/Forms/Controls.HiddenField.render.phpt b/tests/Forms/Controls.HiddenField.render.phpt index b8db596c6..ca1204473 100644 --- a/tests/Forms/Controls.HiddenField.render.phpt +++ b/tests/Forms/Controls.HiddenField.render.phpt @@ -61,6 +61,8 @@ test(function () { // rendering options $form = new Form; $input = $form->addHidden('hidden'); + Assert::same('hidden', $input->getOption('type')); + Assert::null($input->getOption('rendered')); $input->getControl(); Assert::true($input->getOption('rendered')); diff --git a/tests/Forms/Controls.ImageButton.render.phpt b/tests/Forms/Controls.ImageButton.render.phpt index d6266672b..92d5016ba 100644 --- a/tests/Forms/Controls.ImageButton.render.phpt +++ b/tests/Forms/Controls.ImageButton.render.phpt @@ -61,6 +61,8 @@ test(function () { // rendering options $form = new Form; $input = $form->addImage('button'); + Assert::same('button', $input->getOption('type')); + Assert::null($input->getOption('rendered')); $input->getControl(); Assert::true($input->getOption('rendered')); diff --git a/tests/Forms/Controls.MultiSelectBox.render.phpt b/tests/Forms/Controls.MultiSelectBox.render.phpt index 601c6ea4a..9b46edd5b 100644 --- a/tests/Forms/Controls.MultiSelectBox.render.phpt +++ b/tests/Forms/Controls.MultiSelectBox.render.phpt @@ -125,6 +125,8 @@ test(function () { // rendering options $form = new Form; $input = $form->addMultiSelect('list'); + Assert::same('select', $input->getOption('type')); + Assert::null($input->getOption('rendered')); $input->getControl(); Assert::true($input->getOption('rendered')); diff --git a/tests/Forms/Controls.RadioList.render.phpt b/tests/Forms/Controls.RadioList.render.phpt index 3d8790a6f..7ac14c78b 100644 --- a/tests/Forms/Controls.RadioList.render.phpt +++ b/tests/Forms/Controls.RadioList.render.phpt @@ -183,6 +183,8 @@ test(function () { // rendering options $form = new Form; $input = $form->addRadioList('list'); + Assert::same('radio', $input->getOption('type')); + Assert::null($input->getOption('rendered')); $input->getControl(); Assert::true($input->getOption('rendered')); diff --git a/tests/Forms/Controls.SelectBox.render.phpt b/tests/Forms/Controls.SelectBox.render.phpt index cd27aebac..bc912d9d9 100644 --- a/tests/Forms/Controls.SelectBox.render.phpt +++ b/tests/Forms/Controls.SelectBox.render.phpt @@ -125,6 +125,8 @@ test(function () { // rendering options $form = new Form; $input = $form->addSelect('list'); + Assert::same('select', $input->getOption('type')); + Assert::null($input->getOption('rendered')); $input->getControl(); Assert::true($input->getOption('rendered')); diff --git a/tests/Forms/Controls.TextArea.render.phpt b/tests/Forms/Controls.TextArea.render.phpt index 7ac388fd7..c905e172d 100644 --- a/tests/Forms/Controls.TextArea.render.phpt +++ b/tests/Forms/Controls.TextArea.render.phpt @@ -91,6 +91,8 @@ test(function () { // rendering options $form = new Form; $input = $form->addTextArea('text'); + Assert::same('textarea', $input->getOption('type')); + Assert::null($input->getOption('rendered')); $input->getControl(); Assert::true($input->getOption('rendered')); diff --git a/tests/Forms/Controls.TextInput.render.phpt b/tests/Forms/Controls.TextInput.render.phpt index a8c81eadd..371d3a664 100644 --- a/tests/Forms/Controls.TextInput.render.phpt +++ b/tests/Forms/Controls.TextInput.render.phpt @@ -185,6 +185,8 @@ test(function () { // rendering options $form = new Form; $input = $form->addText('text'); + Assert::same('text', $input->getOption('type')); + Assert::null($input->getOption('rendered')); $input->getControl(); Assert::true($input->getOption('rendered')); diff --git a/tests/Forms/Controls.UploadControl.render.phpt b/tests/Forms/Controls.UploadControl.render.phpt index 50ec6fe85..67b6731f7 100644 --- a/tests/Forms/Controls.UploadControl.render.phpt +++ b/tests/Forms/Controls.UploadControl.render.phpt @@ -74,6 +74,8 @@ test(function () { // rendering options $form = new Form; $input = $form->addUpload('file'); + Assert::same('file', $input->getOption('type')); + Assert::null($input->getOption('rendered')); $input->getControl(); Assert::true($input->getOption('rendered'));