From fb265ed732f5f28d1c55c93076b90be407f8b918 Mon Sep 17 00:00:00 2001 From: Kevin Papst Date: Sat, 16 Oct 2021 13:38:28 +0200 Subject: [PATCH] make sure that minute_increment is not zero (#2860) --- src/Controller/SystemConfigurationController.php | 4 ++-- src/Form/Type/DateTimePickerType.php | 11 +++++++++-- src/Form/Type/MinuteIncrementType.php | 8 ++++++-- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/Controller/SystemConfigurationController.php b/src/Controller/SystemConfigurationController.php index 22c283f9..386ae604 100644 --- a/src/Controller/SystemConfigurationController.php +++ b/src/Controller/SystemConfigurationController.php @@ -354,10 +354,10 @@ final class SystemConfigurationController extends AbstractController (new Configuration()) ->setName('timesheet.time_increment') ->setType(MinuteIncrementType::class) - ->setOptions(['deactivate' => false]) + ->setOptions(['deactivate' => false, 'max_one_hour' => true]) ->setTranslationDomain('system-configuration') ->setConstraints([ - new GreaterThanOrEqual(['value' => 1]) + new Range(['min' => 1, 'max' => 60]) ]), (new Configuration()) ->setName('timesheet.duration_increment') diff --git a/src/Form/Type/DateTimePickerType.php b/src/Form/Type/DateTimePickerType.php index 72457784..25cb14ff 100644 --- a/src/Form/Type/DateTimePickerType.php +++ b/src/Form/Type/DateTimePickerType.php @@ -55,13 +55,20 @@ class DateTimePickerType extends AbstractType public function buildView(FormView $view, FormInterface $form, array $options) { - $view->vars['attr'] = array_merge($view->vars['attr'], [ + $attr = array_merge($view->vars['attr'], [ 'data-datetimepicker' => 'on', 'autocomplete' => 'off', 'placeholder' => strtoupper($options['format']), 'data-format' => $options['format_picker'], - 'data-time-picker-increment' => $options['time_increment'], ]); + + if ($options['time_increment'] !== null) { + if ($options['time_increment'] >= 1) { + $attr['data-time-picker-increment'] = $options['time_increment']; + } + } + + $view->vars['attr'] = $attr; } /** diff --git a/src/Form/Type/MinuteIncrementType.php b/src/Form/Type/MinuteIncrementType.php index 2bf9b8c4..de2b5553 100644 --- a/src/Form/Type/MinuteIncrementType.php +++ b/src/Form/Type/MinuteIncrementType.php @@ -26,6 +26,7 @@ class MinuteIncrementType extends AbstractType { $resolver->setDefaults([ 'deactivate' => true, + 'max_one_hour' => false, ]); $resolver->setDefault('choices', function (Options $options) { @@ -47,8 +48,11 @@ class MinuteIncrementType extends AbstractType $choices['30'] = '30'; $choices['45'] = '45'; $choices['60'] = '60'; - $choices['90'] = '90'; - $choices['120'] = '120'; + + if (!$options['max_one_hour']) { + $choices['90'] = '90'; + $choices['120'] = '120'; + } return $choices; });