/**
* @param \Nette\Forms\Controls\BaseControl $control
*/
private function prepareControl(Controls\BaseControl $control)
{
$translator = $this->form->getTranslator();
$control->setOption('rendered', FALSE);
if ($control->isRequired()) {
$control->getLabelPrototype()->addClass('required');
$control->setOption('required', TRUE);
}
$el = $control->getControlPrototype();
if ($placeholder = $control->getOption('placeholder')) {
if (!$placeholder instanceof Html && $translator) {
$placeholder = $translator->translate($placeholder);
}
$el->placeholder($placeholder);
}
if ($control->controlPrototype->type === 'email' && $control->getOption('input-prepend') === NULL) {
$control->setOption('input-prepend', Html::el('i class="fa fa-fw fa-envelope"'));
}
if ($control->controlPrototype->type === 'password' && $control->getOption('input-prepend') === NULL) {
$control->setOption('input-prepend', Html::el('i class="fa fa-fw fa-lock"'));
}
if ($control instanceof \Nette\Forms\ISubmitterControl) {
$el->addClass('btn');
} else {
$control->setOption('pairContainer', $pair = Html::el('div'));
$pair->id = $control->htmlId . '-pair';
$pair->addClass('form-group');
$label = $control->labelPrototype;
if (static::isCheckbox($control)) {
$label->addClass('checkbox');
} elseif (!$control instanceof Controls\RadioList && !self::isCheckboxList($control)) {
$label->addClass('control-label');
if (!$control instanceof \Minetro\Forms\reCAPTCHA\ReCaptchaField) {
$el->addClass('form-control');
}
}
if ($control->getOption('required', FALSE)) {
$pair->addClass('required');
}
if ($control->errors) {
$pair->addClass('has-error');
}
if ($prepend = $control->getOption('input-prepend')) {
$prepend = Html::el('span', array('class' => 'input-group-addon'))->{$prepend instanceof Html ? 'add' : 'setText'}($prepend);
$control->setOption('input-prepend', $prepend);
}
if ($append = $control->getOption('input-append')) {
$append = Html::el('span', array('class' => 'input-group-addon'))->{$append instanceof Html ? 'add' : 'setText'}($append);
$control->setOption('input-append', $append);
}
}
}