Release 2.0.14 (#3963)
- show customer totals in single-user reports - support custom fonts in export / invoice templates - require daterange for export and invoice searches - improve help label for user locale - show decimal formats in help controller - cache tag amount per request - composer updates - improved code styles - added default label to date picker - new macros & use own macro
This commit is contained in:
@@ -25,7 +25,7 @@ final class ExportToolbarForm extends AbstractType
|
||||
public function buildForm(FormBuilderInterface $builder, array $options): void
|
||||
{
|
||||
$this->addSearchTermInputField($builder);
|
||||
$this->addDateRange($builder, ['timezone' => $options['timezone']]);
|
||||
$this->addDateRange($builder, ['timezone' => $options['timezone']], false, true);
|
||||
$this->addCustomerMultiChoice($builder, ['start_date_param' => null, 'end_date_param' => null, 'ignore_date' => true], true);
|
||||
$this->addProjectMultiChoice($builder, ['ignore_date' => true], true, true);
|
||||
$this->addActivitySelect($builder, [], true, true, false);
|
||||
|
||||
@@ -26,7 +26,7 @@ final class InvoiceToolbarForm extends AbstractType
|
||||
public function buildForm(FormBuilderInterface $builder, array $options): void
|
||||
{
|
||||
$this->addSearchTermInputField($builder);
|
||||
$this->addDateRange($builder, ['timezone' => $options['timezone']]);
|
||||
$this->addDateRange($builder, ['timezone' => $options['timezone']], false, true);
|
||||
$this->addCustomerMultiChoice($builder, ['start_date_param' => null, 'end_date_param' => null, 'ignore_date' => true], true);
|
||||
$this->addProjectMultiChoice($builder, ['ignore_date' => true], true, true);
|
||||
$this->addActivitySelect($builder, [], true, true, false);
|
||||
|
||||
@@ -155,7 +155,7 @@ trait ToolbarFormTrait
|
||||
]);
|
||||
}
|
||||
|
||||
protected function addDateRange(FormBuilderInterface $builder, array $options, $allowEmpty = true, $required = false): void
|
||||
protected function addDateRange(FormBuilderInterface $builder, array $options, bool $allowEmpty = true, bool $required = false): void
|
||||
{
|
||||
$params = [
|
||||
'required' => $required,
|
||||
|
||||
@@ -57,6 +57,7 @@ class DatePickerType extends AbstractType
|
||||
$formFormat = $converter->convert($format);
|
||||
|
||||
$resolver->setDefaults([
|
||||
'label' => 'date',
|
||||
'widget' => 'single_text',
|
||||
'html5' => false,
|
||||
'format' => $formFormat,
|
||||
|
||||
@@ -16,6 +16,8 @@ use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface;
|
||||
|
||||
final class TagsType extends AbstractType
|
||||
{
|
||||
private ?int $count = null;
|
||||
|
||||
public function __construct(
|
||||
private AuthorizationCheckerInterface $auth,
|
||||
private TagRepository $repository
|
||||
@@ -31,7 +33,11 @@ final class TagsType extends AbstractType
|
||||
|
||||
public function getParent(): string
|
||||
{
|
||||
if ($this->repository->count([]) > TagRepository::MAX_AMOUNT_SELECT) {
|
||||
if ($this->count === null) {
|
||||
$this->count = $this->repository->count([]);
|
||||
}
|
||||
|
||||
if ($this->count > TagRepository::MAX_AMOUNT_SELECT) {
|
||||
return TagsInputType::class;
|
||||
}
|
||||
|
||||
|
||||
@@ -27,10 +27,11 @@ final class UserLanguageType extends AbstractType
|
||||
{
|
||||
$route = $this->router->generate('help_locales');
|
||||
$message = $this->translator->trans('user.language.help');
|
||||
$moreLink = $this->translator->trans('help_locales');
|
||||
|
||||
$resolver->setDefaults([
|
||||
'help_html' => true,
|
||||
'help' => sprintf('<a href="%s" target="help_locales">%s</a>', $route, $message)
|
||||
'help' => sprintf('%2$s <a href="%1$s" target="help_locales">%3$s</a>', $route, $message, $moreLink)
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user