From 17b41b2c510a7e9d47c53c77920252cd16e976a2 Mon Sep 17 00:00:00 2001 From: stloyd Date: Tue, 14 Jun 2011 15:55:06 +0200 Subject: [PATCH] Added to `TimeType` extension possibility to render form as `single_text` (similar to DateType option) (issue #1205) Adjusted `DateTimeType` to allow usage of this new feature --- .../Twig/Resources/views/Form/form_div_layout.html.twig | 2 +- src/Symfony/Component/Form/Extension/Core/Type/TimeType.php | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/Symfony/Bridge/Twig/Resources/views/Form/form_div_layout.html.twig b/src/Symfony/Bridge/Twig/Resources/views/Form/form_div_layout.html.twig index cf213a6cbd..647f837591 100644 --- a/src/Symfony/Bridge/Twig/Resources/views/Form/form_div_layout.html.twig +++ b/src/Symfony/Bridge/Twig/Resources/views/Form/form_div_layout.html.twig @@ -99,7 +99,7 @@ {% block time_widget %} {% spaceless %} {% if widget == 'single_text' %} - {{ block('field_widget') }} + {{ block('text_widget') }} {% else %}
{{ form_widget(form.hour, { 'attr': { 'size': '1' } }) }}:{{ form_widget(form.minute, { 'attr': { 'size': '1' } }) }}{% if with_seconds %}:{{ form_widget(form.second, { 'attr': { 'size': '1' } }) }}{% endif %} diff --git a/src/Symfony/Component/Form/Extension/Core/Type/TimeType.php b/src/Symfony/Component/Form/Extension/Core/Type/TimeType.php index b6c6fa234c..8dccfaa6a1 100644 --- a/src/Symfony/Component/Form/Extension/Core/Type/TimeType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/TimeType.php @@ -31,8 +31,7 @@ class TimeType extends AbstractType if ($options['widget'] === 'single_text') { $builder->appendClientTransformer(new DateTimeToStringTransformer($options['data_timezone'], $options['user_timezone'], 'H:i:s')); } else if ($options['widget'] === 'choice') { - if (is_array($options['empty_value'])) { - $options['empty_value'] = array_merge(array('hour' => null, 'minute' => null, 'second' => null), $options['empty_value']); + if (is_array($options['empty_value'])) { $options['empty_value'] = array_merge(array('hour' => null, 'minute' => null, 'second' => null), $options['empty_value']); } else { $options['empty_value'] = array('hour' => $options['empty_value'], 'minute' => $options['empty_value'], 'second' => $options['empty_value']); } @@ -66,10 +65,9 @@ class TimeType extends AbstractType } $parts = array('hour', 'minute'); - if ($options['with_seconds']) { + if ($options['with_seconds']) { if ($options['with_seconds']) { $parts[] = 'second'; } - if ($options['input'] === 'string') { $builder->appendNormTransformer(new ReversedTransformer( new DateTimeToStringTransformer($options['data_timezone'], $options['data_timezone'], 'H:i:s')