/** * @param \Nette\Forms\Controls\BaseControl $control * @param string|null $errorMessage * @param bool|callable $requiring */ private function resolveRequiring(\Nette\Forms\Controls\BaseControl $control, $errorMessage = null, $requiring = false) { if ($requiring === true) { $control->setRequired($errorMessage !== null ? $errorMessage : true); } elseif (is_callable($requiring)) { $condition = $requiring($control); if (!$condition instanceof \Nette\Forms\Rules) { throw new RequiredFormFieldResolutionException('Requiring call must return instance of \\Nette\\Forms\\Rules.'); } $condition->setRequired($errorMessage !== null ? $errorMessage : true); } }
/** * Add default conditions. * Supports: required, min/maxLength, min, max * * @param \Nette\Forms\Controls\BaseControl $input * @param array $conditions */ protected function addConditions(\Nette\Forms\Controls\BaseControl $input, array $conditions) { foreach ($conditions as $key => $value) { switch ($key) { case 'required': $input->setRequired(); break; case 'maxLength': $input->addRule(Builder\EntityForm::MAX_LENGTH, null, $value); break; case 'minLength': $input->addRule(Builder\EntityForm::MIN_LENGTH, null, $value); break; default: break; } } if (isset($conditions['min']) || isset($conditions['max'])) { $input->addRule(Builder\EntityForm::RANGE, null, array(isset($conditions['min']) ? $conditions['min'] : null, isset($conditions['max']) ? $conditions['max'] : null)); } }
/** * {@inheritdoc} */ public function setRequired($value = TRUE) { $this->wrappedControl->setRequired($value); return $this; }
/** * @param string|bool $message * @return \Nella\Forms\DateTime\DateInput */ public function setRequired($message = TRUE) { if ($message !== FALSE && !is_string($message)) { throw new \Nette\InvalidArgumentException('Message must be string'); } parent::setRequired($message); if ($message !== FALSE) { $this->addCondition(Form::FILLED)->addRule(function (DateInput $control) { return $this->validateDate($control); }, $message); } return $this; }