From 7675f0e250735d1b8d4185f0a4e0470db893f276 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Mon, 6 Jul 2015 00:55:39 +0200 Subject: [PATCH] add grouping and fix localization of trans. string in ActivityReason the label of activity type is now handled by translatableStringHelper. Reasons are also grouped by categories. This is thanks to PR https://github.com/symfony/symfony/pull/14050 --- Form/Type/TranslatableActivityReason.php | 20 ++++++++++++-------- Resources/config/services.yml | 2 +- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/Form/Type/TranslatableActivityReason.php b/Form/Type/TranslatableActivityReason.php index 776dd0ee2..8ce5d42d3 100644 --- a/Form/Type/TranslatableActivityReason.php +++ b/Form/Type/TranslatableActivityReason.php @@ -25,6 +25,7 @@ namespace Chill\ActivityBundle\Form\Type; use Symfony\Component\Form\AbstractType; use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\HttpFoundation\RequestStack; +use Chill\MainBundle\Templating\TranslatableStringHelper; /** * Description of TranslatableActivityReason @@ -33,14 +34,12 @@ use Symfony\Component\HttpFoundation\RequestStack; */ class TranslatableActivityReason extends AbstractType { - /** - * @var RequestStack - */ - private $requestStack; - public function __construct(RequestStack $requestStack) + private $translatableStringHelper; + + public function __construct(TranslatableStringHelper $translatableStringHelper) { - $this->requestStack = $requestStack; + $this->translatableStringHelper = $translatableStringHelper; } public function getName() @@ -55,11 +54,16 @@ class TranslatableActivityReason extends AbstractType public function configureOptions(OptionsResolver $resolver) { - $locale = $this->requestStack->getCurrentRequest()->getLocale(); + $helper = $this->translatableStringHelper; $resolver->setDefaults( array( 'class' => 'ChillActivityBundle:ActivityReason', - 'property' => 'name['.$locale.']' + 'choice_label' => function($choice, $key) use ($helper) { + return $helper->localize($choice->getName()); + }, + 'group_by' => function($choice, $key) use ($helper) { + return $helper->localize($choice->getCategory()->getName()); + } ) ); } diff --git a/Resources/config/services.yml b/Resources/config/services.yml index c5532dc9b..64e72f8f5 100644 --- a/Resources/config/services.yml +++ b/Resources/config/services.yml @@ -9,7 +9,7 @@ services: chill.activity.form.type.translatableactivityreason: class: Chill\ActivityBundle\Form\Type\TranslatableActivityReason arguments: - - "@request_stack" + - "@chill.main.helper.translatable_string" tags: - { name: form.type, alias: translatable_activity_reason }