Skip to content

Commit fa84d63

Browse files
matej21dg
authored andcommitted
BaseControl: fixed un-omitting disabled controls [ref #90]
1 parent 97a6638 commit fa84d63

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

src/Forms/Controls/BaseControl.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ abstract class BaseControl extends Nette\ComponentModel\Component implements ICo
5252
/** @var bool */
5353
protected $disabled = FALSE;
5454

55-
/** @var bool */
56-
private $omitted = FALSE;
55+
/** @var bool|NULL */
56+
private $omitted;
5757

5858
/** @var Nette\Forms\Rules */
5959
private $rules;
@@ -225,7 +225,7 @@ public function setOmitted($value = TRUE)
225225
*/
226226
public function isOmitted()
227227
{
228-
return $this->omitted || $this->disabled;
228+
return $this->omitted || ($this->disabled && $this->omitted === NULL);
229229
}
230230

231231

tests/Forms/Forms.omittedValue.phpt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
use Nette\Forms\Form;
88
use Nette\Utils\ArrayHash;
9+
use Nette\Forms\Controls\TextInput;
910
use Tester\Assert;
1011

1112

@@ -19,3 +20,8 @@ $form->addText('omittedInput')
1920
->setOmitted();
2021

2122
Assert::same(['input' => ''], $form->getValues(TRUE));
23+
24+
25+
Assert::true((new TextInput)->setDisabled()->isOmitted());
26+
Assert::false((new TextInput)->setDisabled()->setDisabled(FALSE)->isOmitted());
27+
Assert::false((new TextInput)->setDisabled()->setOmitted(FALSE)->isOmitted());

0 commit comments

Comments
 (0)