- avatars via css only - random colors for entities - improves print view - added colors for teams - added color to tag
52 lines
1.5 KiB
PHP
52 lines
1.5 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;
|
|
|
|
use App\Form\Type\ColorChoiceType;
|
|
use Symfony\Component\Form\FormBuilderInterface;
|
|
use Symfony\Component\Form\FormEvent;
|
|
use Symfony\Component\Form\FormEvents;
|
|
|
|
trait ColorTrait
|
|
{
|
|
protected function addColor(FormBuilderInterface $builder): void
|
|
{
|
|
$builder
|
|
->add('color', ColorChoiceType::class, [
|
|
'required' => false,
|
|
])
|
|
;
|
|
|
|
// this code exists only for backward compatibility
|
|
$builder->addEventListener(
|
|
FormEvents::PRE_SET_DATA,
|
|
function (FormEvent $event) {
|
|
if (!$event->getForm()->getConfig()->hasOption('choices')) {
|
|
return;
|
|
}
|
|
|
|
$data = $event->getData();
|
|
$choices = $event->getForm()->getConfig()->getOption('choices');
|
|
if (\is_object($data) && method_exists($data, 'getColor')) {
|
|
$color = $data->getColor();
|
|
if (!empty($color) && array_search($color, $choices) === false) {
|
|
$choices[$color] = $color;
|
|
}
|
|
}
|
|
|
|
$event->getForm()->add('color', ColorChoiceType::class, [
|
|
'required' => false,
|
|
'choices' => $choices,
|
|
]);
|
|
}
|
|
);
|
|
}
|
|
}
|