diff --git a/src/Filter/Type/DateFilterType.php b/src/Filter/Type/DateFilterType.php index 1f9f319..5600eb4 100644 --- a/src/Filter/Type/DateFilterType.php +++ b/src/Filter/Type/DateFilterType.php @@ -5,17 +5,36 @@ namespace araise\TableBundle\Filter\Type; use Doctrine\ORM\QueryBuilder; +use Symfony\Component\HttpFoundation\RequestStack; +use Symfony\UX\StimulusBundle\Helper\StimulusHelper; class DateFilterType extends DatetimeFilterType { + protected $locale; + + public function __construct( + ?string $column = null, + array $joins = [], + protected ?RequestStack $requestStack = null + ) { + parent::__construct($column, $joins); + $this->locale = $requestStack->getMainRequest()?->getLocale() ?? 'en'; + } + public function getValueField(?string $value = null, ?string $operator = null): string { $date = \DateTime::createFromFormat(static::getQueryDataFormat(), (string) $value) ?: new \DateTime(); $value = $date->format(static::getDateFormat()); - + $stimulusAttrs = (new StimulusHelper(null))->createStimulusAttributes(); + $stimulusAttrs + ->addController('araise/core-bundle/datetime', [ + 'lang' => $this->locale, + ]) + ; return sprintf( - '', - $operator !== static::CRITERIA_IS_EMPTY ? $value : '' + '', + $operator !== static::CRITERIA_IS_EMPTY ? $value : '', + $stimulusAttrs ); } diff --git a/src/Filter/Type/DatetimeFilterType.php b/src/Filter/Type/DatetimeFilterType.php index c1f6c31..bb5872e 100644 --- a/src/Filter/Type/DatetimeFilterType.php +++ b/src/Filter/Type/DatetimeFilterType.php @@ -5,6 +5,8 @@ namespace araise\TableBundle\Filter\Type; use Doctrine\ORM\QueryBuilder; +use Symfony\Component\HttpFoundation\RequestStack; +use Symfony\UX\StimulusBundle\Helper\StimulusHelper; class DatetimeFilterType extends FilterType { @@ -20,6 +22,14 @@ class DatetimeFilterType extends FilterType public const CRITERIA_IS_EMPTY = 'is_empty'; + public function __construct( + ?string $column = null, + array $joins = [], + protected ?RequestStack $requestStack = null + ) { + parent::__construct($column, $joins); + } + public function getOperators(): array { return [ @@ -38,10 +48,17 @@ public function getValueField(?string $value = null, ?string $operator = null): { $date = \DateTime::createFromFormat(static::getQueryDataFormat(), (string) $value) ?: new \DateTime(); $value = $date->format(static::getDateFormat()); - + $locale = $this->requestStack->getMainRequest()?->getLocale(); + $stimulusAttrs = (new StimulusHelper(null))->createStimulusAttributes(); + $stimulusAttrs + ->addController('araise/core-bundle/datetime', [ + 'lang' => $locale ?? 'en', + ]) + ; return sprintf( - '', - $operator !== static::CRITERIA_IS_EMPTY ? $value : '' + '', + $operator !== static::CRITERIA_IS_EMPTY ? $value : '', + $stimulusAttrs ); }