Forms/layouts/form/layout.bootstrap.latte

47 lines
2.5 KiB
Plaintext
Executable File

{varType FuzeWorks\Forms\Form $form}
{varType FuzeWorks\Forms\Field $field}
<form {$form->generateHtmlFormAttributes()|noescape}>
{if $form->isValidated() && $form->isValid()}
<div class="alert alert-success">
<h5><i class="icon fas fa-check"></i> Alert!</h5>
{$form->getName()} was successfully completed.
</div>
{else}
<div n:foreach="$form->getFormErrors() as $error" class="alert alert-danger">
<h5><i class="icon fas fa-check"></i> Error!</h5>
{$error|noescape}
</div>
<div n:foreach="$form->getFormWarnings() as $warning" class="alert alert-warning">
<h5><i class="icon fas fa-check"></i> Warning!</h5>
{$warning|noescape}
</div>
{foreach $form->getFields() as $field}
{switch get_class($field)}
{case "FuzeWorks\Forms\Fields\HiddenField", "FuzeWorks\Forms\Fields\SubmitField", "FuzeWorks\Forms\Fields\ResetField", "FuzeWorks\Forms\Fields\DecoratorField"}
{$field|noescape}
{case "FuzeWorks\Forms\Fields\CheckboxField"}
<div class="form-check">
{$field->addClass("form-check-input")|noescape}
<label for="{$field->getId()}" class="form-check-label">{$field->getLabel()}</label>
{if $field->isValidated() && !$field->isValid()}
<small class="text-danger">{$field->getErrors()|implode}</small>
{/if}
</div>
{case "FuzeWorks\Forms\Fields\RadioField", "FuzeWorks\Forms\Fields\SelectField"}
{$field|noescape}
{default}
<div class="form-group">
<label for="{$field->getId()}">{$field->getLabel()}</label>
{if $field->isValidated() && !$field->isValid()}
{$field->class(["form-control", "is-invalid"])|noescape}
<small class="text-danger">{$field->getErrors()|implode}</small>
{elseif $field->isValidated() && $field->isValid()}
{$field->class(["form-control", "is-valid"])|noescape}
{else}
{$field->addClass("form-control")|noescape}
{/if}
</div>
{/switch}
{/foreach}
{/if}
</form>