40 lines
1.1 KiB
PHP
40 lines
1.1 KiB
PHP
<?php
|
|
|
|
/*
|
|
* This file is part of the Kimai time-tracking app.
|
|
*
|
|
* For the full copyright and license information, please view the LICENSE
|
|
* file that was distributed with this source code.
|
|
*/
|
|
|
|
namespace App\Form\Extension;
|
|
|
|
use Symfony\Component\Form\AbstractTypeExtension;
|
|
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
|
use Symfony\Component\Form\FormInterface;
|
|
use Symfony\Component\Form\FormView;
|
|
use Symfony\Component\OptionsResolver\OptionsResolver;
|
|
|
|
/**
|
|
* Allows to register custom icons at form fields
|
|
*/
|
|
final class IconExtension extends AbstractTypeExtension
|
|
{
|
|
public static function getExtendedTypes(): iterable
|
|
{
|
|
return [TextType::class];
|
|
}
|
|
|
|
public function buildView(FormView $view, FormInterface $form, array $options): void
|
|
{
|
|
$view->vars['icon'] = $options['icon'] ?? null;
|
|
}
|
|
|
|
public function configureOptions(OptionsResolver $resolver): void
|
|
{
|
|
$resolver->setDefined(['icon']);
|
|
$resolver->setAllowedTypes('icon', ['string', 'null']);
|
|
$resolver->setDefault('icon', '');
|
|
}
|
|
}
|