From c3d7cb862a47d118c645daf5587e49ff1fa36cbf Mon Sep 17 00:00:00 2001 From: Don Gilbert Date: Fri, 1 Nov 2019 14:57:42 +0100 Subject: [PATCH 1/6] Upgrade report bundle to work with Symfony 3 forms --- app/bundles/ReportBundle/Config/config.php | 8 ------- .../Controller/ReportController.php | 3 ++- .../ReportFilterDataTransformer.php | 5 ++++- .../ReportBundle/Form/Type/AggregatorType.php | 11 +++++----- .../ReportBundle/Form/Type/ConfigType.php | 2 +- .../Form/Type/DynamicFiltersType.php | 21 ++++++++++++------- .../Form/Type/FilterSelectorType.php | 16 +++++++------- .../Form/Type/ReportFiltersType.php | 9 ++++---- .../Form/Type/ReportSettingsType.php | 9 ++++---- .../ReportBundle/Form/Type/ReportType.php | 21 ++++++++++--------- .../Form/Type/ReportWidgetType.php | 5 +++-- .../ReportBundle/Form/Type/TableOrderType.php | 11 +++++----- 12 files changed, 65 insertions(+), 56 deletions(-) diff --git a/app/bundles/ReportBundle/Config/config.php b/app/bundles/ReportBundle/Config/config.php index f232a22d910..4814339bb31 100644 --- a/app/bundles/ReportBundle/Config/config.php +++ b/app/bundles/ReportBundle/Config/config.php @@ -116,7 +116,6 @@ 'forms' => [ 'mautic.form.type.reportconfig' => [ 'class' => \Mautic\ReportBundle\Form\Type\ConfigType::class, - 'alias' => 'reportconfig', ], 'mautic.form.type.report' => [ 'class' => \Mautic\ReportBundle\Form\Type\ReportType::class, @@ -127,35 +126,28 @@ ], 'mautic.form.type.filter_selector' => [ 'class' => 'Mautic\ReportBundle\Form\Type\FilterSelectorType', - 'alias' => 'filter_selector', ], 'mautic.form.type.table_order' => [ 'class' => 'Mautic\ReportBundle\Form\Type\TableOrderType', 'arguments' => 'mautic.factory', - 'alias' => 'table_order', ], 'mautic.form.type.report_filters' => [ 'class' => 'Mautic\ReportBundle\Form\Type\ReportFiltersType', 'arguments' => 'mautic.factory', - 'alias' => 'report_filters', ], 'mautic.form.type.report_dynamic_filters' => [ 'class' => 'Mautic\ReportBundle\Form\Type\DynamicFiltersType', - 'alias' => 'report_dynamicfilters', ], 'mautic.form.type.report_widget' => [ 'class' => 'Mautic\ReportBundle\Form\Type\ReportWidgetType', - 'alias' => 'report_widget', 'arguments' => 'mautic.report.model.report', ], 'mautic.form.type.aggregator' => [ 'class' => 'Mautic\ReportBundle\Form\Type\AggregatorType', - 'alias' => 'aggregator', 'arguments' => 'translator', ], 'mautic.form.type.report.settings' => [ 'class' => \Mautic\ReportBundle\Form\Type\ReportSettingsType::class, - 'alias' => 'report_settings', ], ], 'helpers' => [ diff --git a/app/bundles/ReportBundle/Controller/ReportController.php b/app/bundles/ReportBundle/Controller/ReportController.php index c20d6eef12b..fdabe8333d6 100644 --- a/app/bundles/ReportBundle/Controller/ReportController.php +++ b/app/bundles/ReportBundle/Controller/ReportController.php @@ -15,6 +15,7 @@ use Mautic\CoreBundle\Helper\DateTimeHelper; use Mautic\CoreBundle\Helper\InputHelper; use Mautic\ReportBundle\Entity\Report; +use Mautic\ReportBundle\Form\Type\DynamicFiltersType; use Mautic\ReportBundle\Model\ExportResponse; use Symfony\Component\HttpFoundation; @@ -645,7 +646,7 @@ public function viewAction($objectId, $reportPage = 1) } $dynamicFilterForm = $this->get('form.factory')->create( - 'report_dynamicfilters', + DynamicFiltersType::class, $filterSettings, [ 'action' => $action, diff --git a/app/bundles/ReportBundle/Form/DataTransformer/ReportFilterDataTransformer.php b/app/bundles/ReportBundle/Form/DataTransformer/ReportFilterDataTransformer.php index f12b6a9d2f3..ac9ad901440 100644 --- a/app/bundles/ReportBundle/Form/DataTransformer/ReportFilterDataTransformer.php +++ b/app/bundles/ReportBundle/Form/DataTransformer/ReportFilterDataTransformer.php @@ -13,6 +13,9 @@ use Mautic\CoreBundle\Helper\DateTimeHelper; use Symfony\Component\Form\DataTransformerInterface; +use Symfony\Component\Form\Extension\Core\Type\DateTimeType; +use Symfony\Component\Form\Extension\Core\Type\DateType; +use Symfony\Component\Form\Extension\Core\Type\TimeType; class ReportFilterDataTransformer implements DataTransformerInterface { @@ -46,7 +49,7 @@ public function transform($filters) return $filters; } $type = $this->columns[$f['column']]['type']; - if (in_array($type, ['datetime', 'date', 'time'])) { + if (in_array($type, ['datetime', 'date', 'time', DateTimeType::class, DateType::class, TimeType::class])) { $dt = new DateTimeHelper($f['value'], '', 'utc'); $f['value'] = $dt->toLocalString(); } diff --git a/app/bundles/ReportBundle/Form/Type/AggregatorType.php b/app/bundles/ReportBundle/Form/Type/AggregatorType.php index 9f14690fbcf..008aafb6e63 100644 --- a/app/bundles/ReportBundle/Form/Type/AggregatorType.php +++ b/app/bundles/ReportBundle/Form/Type/AggregatorType.php @@ -12,10 +12,11 @@ namespace Mautic\ReportBundle\Form\Type; use Symfony\Component\Form\AbstractType; +use Symfony\Component\Form\Extension\Core\Type\ChoiceType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormInterface; use Symfony\Component\Form\FormView; -use Symfony\Component\OptionsResolver\OptionsResolverInterface; +use Symfony\Component\OptionsResolver\OptionsResolver; /** * Class AggregatorType. @@ -35,7 +36,7 @@ public function __construct($translator) public function buildForm(FormBuilderInterface $builder, array $options) { // function - $builder->add('function', 'choice', [ + $builder->add('function', ChoiceType::class, [ 'choices' => [ 'COUNT' => $this->translator->trans('mautic.report.report.label.aggregators.count'), 'AVG' => $this->translator->trans('mautic.report.report.label.aggregators.avg'), @@ -55,7 +56,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) ]); // Build a list of columns - $builder->add('column', 'choice', [ + $builder->add('column', ChoiceType::class, [ 'choices' => $options['columnList'], 'expanded' => false, 'multiple' => false, @@ -82,7 +83,7 @@ public function buildView(FormView $view, FormInterface $form, array $options) /** * {@inheritdoc} */ - public function getName() + public function getBlockPrefix() { return 'aggregator'; } @@ -90,7 +91,7 @@ public function getName() /** * {@inheritdoc} */ - public function setDefaultOptions(OptionsResolverInterface $resolver) + public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults([ 'columnList' => [], diff --git a/app/bundles/ReportBundle/Form/Type/ConfigType.php b/app/bundles/ReportBundle/Form/Type/ConfigType.php index 843acf5c367..5f3bd99f949 100644 --- a/app/bundles/ReportBundle/Form/Type/ConfigType.php +++ b/app/bundles/ReportBundle/Form/Type/ConfigType.php @@ -43,7 +43,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) /** * {@inheritdoc} */ - public function getName() + public function getBlockPrefix() { return 'reportconfig'; } diff --git a/app/bundles/ReportBundle/Form/Type/DynamicFiltersType.php b/app/bundles/ReportBundle/Form/Type/DynamicFiltersType.php index 2c169389c6d..762c649a402 100644 --- a/app/bundles/ReportBundle/Form/Type/DynamicFiltersType.php +++ b/app/bundles/ReportBundle/Form/Type/DynamicFiltersType.php @@ -11,10 +11,15 @@ namespace Mautic\ReportBundle\Form\Type; +use Mautic\CoreBundle\Form\Type\ButtonGroupType; use Mautic\ReportBundle\Entity\Report; use Symfony\Component\Form\AbstractType; +use Symfony\Component\Form\Extension\Core\Type\ChoiceType; +use Symfony\Component\Form\Extension\Core\Type\DateTimeType; +use Symfony\Component\Form\Extension\Core\Type\DateType; +use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\Form\FormBuilderInterface; -use Symfony\Component\OptionsResolver\OptionsResolverInterface; +use Symfony\Component\OptionsResolver\OptionsResolver; /** * Class DynamicFiltersType. @@ -43,7 +48,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) switch ($definition['type']) { case 'bool': case 'boolean': - $type = 'button_group'; + $type = ButtonGroupType::class; $args['choices_as_values'] = true; $args['choices'] = [ [ @@ -60,14 +65,14 @@ public function buildForm(FormBuilderInterface $builder, array $options) } break; case 'date': - $type = 'date'; + $type = DateType::class; $args['input'] = 'string'; $args['widget'] = 'single_text'; $args['format'] = 'y-MM-dd'; $args['attr']['class'] .= ' datepicker'; break; case 'datetime': - $type = 'datetime'; + $type = DateTimeType::class; $args['input'] = 'string'; $args['widget'] = 'single_text'; $args['format'] = 'y-MM-dd HH:mm:ss'; @@ -75,11 +80,11 @@ public function buildForm(FormBuilderInterface $builder, array $options) break; case 'multiselect': case 'select': - $type = 'choice'; + $type = ChoiceType::class; $args['choices'] = $definition['list']; break; default: - $type = 'text'; + $type = TextType::class; break; } @@ -91,7 +96,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) /** * {@inheritdoc} */ - public function getName() + public function getBlockPrefix() { return 'report_dynamicfilters'; } @@ -99,7 +104,7 @@ public function getName() /** * {@inheritdoc} */ - public function setDefaultOptions(OptionsResolverInterface $resolver) + public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults( [ diff --git a/app/bundles/ReportBundle/Form/Type/FilterSelectorType.php b/app/bundles/ReportBundle/Form/Type/FilterSelectorType.php index 2c955c88772..cde02dd5073 100644 --- a/app/bundles/ReportBundle/Form/Type/FilterSelectorType.php +++ b/app/bundles/ReportBundle/Form/Type/FilterSelectorType.php @@ -11,14 +11,16 @@ namespace Mautic\ReportBundle\Form\Type; +use Mautic\CoreBundle\Form\Type\YesNoButtonGroupType; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type\ChoiceType; +use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormEvent; use Symfony\Component\Form\FormEvents; use Symfony\Component\Form\FormInterface; use Symfony\Component\Form\FormView; -use Symfony\Component\OptionsResolver\OptionsResolverInterface; +use Symfony\Component\OptionsResolver\OptionsResolver; /** * Class FilterSelectorType. @@ -33,7 +35,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) // Build a list of columns $builder->add( 'column', - 'choice', + ChoiceType::class, [ 'choices' => $options['filterList'], 'expanded' => false, @@ -58,7 +60,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) // Build a list of condition values $form->add( 'condition', - 'choice', + ChoiceType::class, [ 'choices' => $choices, 'expanded' => false, @@ -108,7 +110,7 @@ function (FormEvent $event) use ($formModifier) { $builder->add( 'value', - 'text', + TextType::class, [ 'label' => 'mautic.report.report.label.filtervalue', 'label_attr' => ['class' => 'control-label'], @@ -119,7 +121,7 @@ function (FormEvent $event) use ($formModifier) { $builder->add( 'dynamic', - 'yesno_button_group', + YesNoButtonGroupType::class, [ 'label' => 'mautic.report.report.label.filterdynamic', 'label_attr' => ['class' => 'control-label'], @@ -148,7 +150,7 @@ public function buildView(FormView $view, FormInterface $form, array $options) /** * {@inheritdoc} */ - public function getName() + public function getBlockPrefix() { return 'filter_selector'; } @@ -156,7 +158,7 @@ public function getName() /** * {@inheritdoc} */ - public function setDefaultOptions(OptionsResolverInterface $resolver) + public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults( [ diff --git a/app/bundles/ReportBundle/Form/Type/ReportFiltersType.php b/app/bundles/ReportBundle/Form/Type/ReportFiltersType.php index 56cb9bb578f..ceda75d3157 100644 --- a/app/bundles/ReportBundle/Form/Type/ReportFiltersType.php +++ b/app/bundles/ReportBundle/Form/Type/ReportFiltersType.php @@ -13,8 +13,9 @@ use Mautic\ReportBundle\Form\DataTransformer\ReportFilterDataTransformer; use Symfony\Component\Form\AbstractType; +use Symfony\Component\Form\Extension\Core\Type\CollectionType; use Symfony\Component\Form\FormBuilderInterface; -use Symfony\Component\OptionsResolver\OptionsResolverInterface; +use Symfony\Component\OptionsResolver\OptionsResolver; /** * Class ReportFiltersType. @@ -34,7 +35,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) /** * {@inheritdoc} */ - public function getName() + public function getBlockPrefix() { return 'report_filters'; } @@ -44,13 +45,13 @@ public function getName() */ public function getParent() { - return 'collection'; + return CollectionType::class; } /** * {@inheritdoc} */ - public function setDefaultOptions(OptionsResolverInterface $resolver) + public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults( [ diff --git a/app/bundles/ReportBundle/Form/Type/ReportSettingsType.php b/app/bundles/ReportBundle/Form/Type/ReportSettingsType.php index 12e9931acd2..ed73344b70c 100644 --- a/app/bundles/ReportBundle/Form/Type/ReportSettingsType.php +++ b/app/bundles/ReportBundle/Form/Type/ReportSettingsType.php @@ -11,6 +11,7 @@ namespace Mautic\ReportBundle\Form\Type; +use Mautic\CoreBundle\Form\Type\YesNoButtonGroupType; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; @@ -27,7 +28,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) { $builder->add( 'showGraphsAboveTable', - 'yesno_button_group', + YesNoButtonGroupType::class, [ 'label' => 'mautic.report.report.form.display.graphs.above.table', 'attr' => [ @@ -39,7 +40,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) $builder->add( 'showDynamicFilters', - 'yesno_button_group', + YesNoButtonGroupType::class, [ 'label' => 'mautic.report.report.form.display.show.dynamic.filters', 'attr' => [ @@ -51,7 +52,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) $builder->add( 'hideDateRangeFilter', - 'yesno_button_group', + YesNoButtonGroupType::class, [ 'label' => 'mautic.report.report.form.display.hide.date.ranges', 'attr' => [ @@ -65,7 +66,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) /** * @return string */ - public function getName() + public function getBlockPrefix() { return 'report_settings'; } diff --git a/app/bundles/ReportBundle/Form/Type/ReportType.php b/app/bundles/ReportBundle/Form/Type/ReportType.php index e37635dd530..6cbdacc2329 100644 --- a/app/bundles/ReportBundle/Form/Type/ReportType.php +++ b/app/bundles/ReportBundle/Form/Type/ReportType.php @@ -20,7 +20,6 @@ use Mautic\ReportBundle\Scheduler\Enum\SchedulerEnum; use Mautic\UserBundle\Form\Type\UserListType; use Symfony\Component\Form\AbstractType; -use Symfony\Component\Form\Extension\Core\ChoiceList\ChoiceList; use Symfony\Component\Form\Extension\Core\Type\ChoiceType; use Symfony\Component\Form\Extension\Core\Type\CollectionType; use Symfony\Component\Form\Extension\Core\Type\TextareaType; @@ -219,7 +218,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) 'filters', ReportFiltersType::class, [ - 'type' => 'filter_selector', + 'type' => FilterSelectorType::class, 'label' => false, 'options' => [ 'filterList' => $filters->choices, @@ -244,7 +243,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) 'aggregators', CollectionType::class, [ - 'type' => 'aggregator', + 'type' => AggregatorType::class, 'label' => false, 'options' => [ 'columnList' => $groupByColumns->choices, @@ -261,7 +260,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) 'tableOrder', CollectionType::class, [ - 'type' => 'table_order', + 'type' => TableOrderType::class, 'label' => false, 'options' => [ 'columnList' => $columns->choices, @@ -284,11 +283,13 @@ public function buildForm(FormBuilderInterface $builder, array $options) 'attr' => [ 'class' => 'filter-value', ], - 'data' => 1, - 'choice_list' => new ChoiceList( - [0, 1, 2], - ['mautic.core.form.no', 'mautic.core.form.yes', 'mautic.core.filter.clear'] - ), + 'data' => 1, + 'choices' => [ + 'mautic.core.form.no' => 0, + 'mautic.core.form.yes' => 1, + 'mautic.core.filter.clear' => 2, + ], + 'choices_as_values' => true, ] ); @@ -445,7 +446,7 @@ public function configureOptions(OptionsResolver $resolver) /** * {@inheritdoc} */ - public function getName() + public function getBlockPrefix() { return 'report'; } diff --git a/app/bundles/ReportBundle/Form/Type/ReportWidgetType.php b/app/bundles/ReportBundle/Form/Type/ReportWidgetType.php index b25d5a5d2b4..589aa9380be 100644 --- a/app/bundles/ReportBundle/Form/Type/ReportWidgetType.php +++ b/app/bundles/ReportBundle/Form/Type/ReportWidgetType.php @@ -15,6 +15,7 @@ use Mautic\ReportBundle\Entity\Report; use Mautic\ReportBundle\Model\ReportModel; use Symfony\Component\Form\AbstractType; +use Symfony\Component\Form\Extension\Core\Type\ChoiceType; use Symfony\Component\Form\FormBuilderInterface; /** @@ -60,7 +61,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) // Build a list of data sources $builder->add( 'graph', - 'choice', + ChoiceType::class, [ 'choices' => $choices, 'expanded' => false, @@ -83,7 +84,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) /** * {@inheritdoc} */ - public function getName() + public function getBlockPrefix() { return 'report_widget'; } diff --git a/app/bundles/ReportBundle/Form/Type/TableOrderType.php b/app/bundles/ReportBundle/Form/Type/TableOrderType.php index a762a918fa4..2e144a5e3cc 100644 --- a/app/bundles/ReportBundle/Form/Type/TableOrderType.php +++ b/app/bundles/ReportBundle/Form/Type/TableOrderType.php @@ -13,10 +13,11 @@ use Mautic\CoreBundle\Factory\MauticFactory; use Symfony\Component\Form\AbstractType; +use Symfony\Component\Form\Extension\Core\Type\ChoiceType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormInterface; use Symfony\Component\Form\FormView; -use Symfony\Component\OptionsResolver\OptionsResolverInterface; +use Symfony\Component\OptionsResolver\OptionsResolver; /** * Class FilterSelectorType. @@ -39,7 +40,7 @@ public function __construct(MauticFactory $factory) public function buildForm(FormBuilderInterface $builder, array $options) { // Build a list of columns - $builder->add('column', 'choice', [ + $builder->add('column', ChoiceType::class, [ 'choices' => $options['columnList'], 'expanded' => false, 'multiple' => false, @@ -53,7 +54,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) ]); // Direction - $builder->add('direction', 'choice', [ + $builder->add('direction', ChoiceType::class, [ 'choices' => [ 'ASC' => $this->translator->trans('mautic.report.report.label.tableorder_dir.asc'), 'DESC' => $this->translator->trans('mautic.report.report.label.tableorder_dir.desc'), @@ -83,7 +84,7 @@ public function buildView(FormView $view, FormInterface $form, array $options) /** * {@inheritdoc} */ - public function getName() + public function getBlockPrefix() { return 'table_order'; } @@ -91,7 +92,7 @@ public function getName() /** * {@inheritdoc} */ - public function setDefaultOptions(OptionsResolverInterface $resolver) + public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults([ 'columnList' => [], From 15f51d112b83fff58e4819561eb8c5be0f49cd9d Mon Sep 17 00:00:00 2001 From: Don Gilbert Date: Fri, 1 Nov 2019 15:12:06 +0100 Subject: [PATCH 2/6] Remove MauticFactory --- app/bundles/ReportBundle/Config/config.php | 4 +++- app/bundles/ReportBundle/Form/Type/TableOrderType.php | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/app/bundles/ReportBundle/Config/config.php b/app/bundles/ReportBundle/Config/config.php index 4814339bb31..5c03ee5617c 100644 --- a/app/bundles/ReportBundle/Config/config.php +++ b/app/bundles/ReportBundle/Config/config.php @@ -129,7 +129,9 @@ ], 'mautic.form.type.table_order' => [ 'class' => 'Mautic\ReportBundle\Form\Type\TableOrderType', - 'arguments' => 'mautic.factory', + 'arguments' => [ + 'translator', + ], ], 'mautic.form.type.report_filters' => [ 'class' => 'Mautic\ReportBundle\Form\Type\ReportFiltersType', diff --git a/app/bundles/ReportBundle/Form/Type/TableOrderType.php b/app/bundles/ReportBundle/Form/Type/TableOrderType.php index 2e144a5e3cc..025b6e6c6b8 100644 --- a/app/bundles/ReportBundle/Form/Type/TableOrderType.php +++ b/app/bundles/ReportBundle/Form/Type/TableOrderType.php @@ -11,7 +11,7 @@ namespace Mautic\ReportBundle\Form\Type; -use Mautic\CoreBundle\Factory\MauticFactory; +use Mautic\CoreBundle\Translation\Translator; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type\ChoiceType; use Symfony\Component\Form\FormBuilderInterface; @@ -29,9 +29,9 @@ class TableOrderType extends AbstractType */ private $translator; - public function __construct(MauticFactory $factory) + public function __construct(Translator $translator) { - $this->translator = $factory->getTranslator(); + $this->translator = $translator; } /** From 820864d87482f47f4ddc16466d9340c2f31e67df Mon Sep 17 00:00:00 2001 From: Don Gilbert Date: Fri, 1 Nov 2019 17:42:09 +0100 Subject: [PATCH 3/6] Typehint the TranslatorInterface instead --- app/bundles/ReportBundle/Config/config.php | 6 +++--- app/bundles/ReportBundle/Form/Type/AggregatorType.php | 6 +++++- app/bundles/ReportBundle/Form/Type/TableOrderType.php | 6 +++--- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/app/bundles/ReportBundle/Config/config.php b/app/bundles/ReportBundle/Config/config.php index 5c03ee5617c..c2f7466aa71 100644 --- a/app/bundles/ReportBundle/Config/config.php +++ b/app/bundles/ReportBundle/Config/config.php @@ -125,10 +125,10 @@ ], ], 'mautic.form.type.filter_selector' => [ - 'class' => 'Mautic\ReportBundle\Form\Type\FilterSelectorType', + 'class' => \Mautic\ReportBundle\Form\Type\FilterSelectorType::class, ], 'mautic.form.type.table_order' => [ - 'class' => 'Mautic\ReportBundle\Form\Type\TableOrderType', + 'class' => \Mautic\ReportBundle\Form\Type\TableOrderType::class, 'arguments' => [ 'translator', ], @@ -145,7 +145,7 @@ 'arguments' => 'mautic.report.model.report', ], 'mautic.form.type.aggregator' => [ - 'class' => 'Mautic\ReportBundle\Form\Type\AggregatorType', + 'class' => \Mautic\ReportBundle\Form\Type\AggregatorType::class, 'arguments' => 'translator', ], 'mautic.form.type.report.settings' => [ diff --git a/app/bundles/ReportBundle/Form/Type/AggregatorType.php b/app/bundles/ReportBundle/Form/Type/AggregatorType.php index 008aafb6e63..946974bcc60 100644 --- a/app/bundles/ReportBundle/Form/Type/AggregatorType.php +++ b/app/bundles/ReportBundle/Form/Type/AggregatorType.php @@ -17,15 +17,19 @@ use Symfony\Component\Form\FormInterface; use Symfony\Component\Form\FormView; use Symfony\Component\OptionsResolver\OptionsResolver; +use Symfony\Component\Translation\TranslatorInterface; /** * Class AggregatorType. */ class AggregatorType extends AbstractType { + /** + * @var TranslatorInterface + */ private $translator; - public function __construct($translator) + public function __construct(TranslatorInterface $translator) { $this->translator = $translator; } diff --git a/app/bundles/ReportBundle/Form/Type/TableOrderType.php b/app/bundles/ReportBundle/Form/Type/TableOrderType.php index 025b6e6c6b8..af68e093414 100644 --- a/app/bundles/ReportBundle/Form/Type/TableOrderType.php +++ b/app/bundles/ReportBundle/Form/Type/TableOrderType.php @@ -11,13 +11,13 @@ namespace Mautic\ReportBundle\Form\Type; -use Mautic\CoreBundle\Translation\Translator; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type\ChoiceType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormInterface; use Symfony\Component\Form\FormView; use Symfony\Component\OptionsResolver\OptionsResolver; +use Symfony\Component\Translation\TranslatorInterface; /** * Class FilterSelectorType. @@ -25,11 +25,11 @@ class TableOrderType extends AbstractType { /** - * @var \Symfony\Bundle\FrameworkBundle\Translation\Translator + * @var TranslatorInterface */ private $translator; - public function __construct(Translator $translator) + public function __construct(TranslatorInterface $translator) { $this->translator = $translator; } From ee3b811e138b3e0725209b40c005be6c2d5628d4 Mon Sep 17 00:00:00 2001 From: John Linhart Date: Fri, 13 Dec 2019 15:38:47 +0100 Subject: [PATCH 4/6] Flip labels with values for choice types --- .../ReportBundle/Form/Type/AggregatorType.php | 74 ++++++----- .../Form/Type/DynamicFiltersType.php | 8 +- .../Form/Type/FilterSelectorType.php | 52 ++++---- .../Form/Type/ReportFiltersType.php | 3 - .../Form/Type/ReportSettingsType.php | 3 - .../ReportBundle/Form/Type/ReportType.php | 122 +++++++++--------- .../Form/Type/ReportWidgetType.php | 27 ++-- .../ReportBundle/Form/Type/TableOrderType.php | 67 +++++----- .../Scheduler/Enum/SchedulerEnum.php | 26 ++-- 9 files changed, 192 insertions(+), 190 deletions(-) diff --git a/app/bundles/ReportBundle/Form/Type/AggregatorType.php b/app/bundles/ReportBundle/Form/Type/AggregatorType.php index 946974bcc60..2d6f832e2b9 100644 --- a/app/bundles/ReportBundle/Form/Type/AggregatorType.php +++ b/app/bundles/ReportBundle/Form/Type/AggregatorType.php @@ -19,9 +19,6 @@ use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\Translation\TranslatorInterface; -/** - * Class AggregatorType. - */ class AggregatorType extends AbstractType { /** @@ -39,39 +36,48 @@ public function __construct(TranslatorInterface $translator) */ public function buildForm(FormBuilderInterface $builder, array $options) { - // function - $builder->add('function', ChoiceType::class, [ - 'choices' => [ - 'COUNT' => $this->translator->trans('mautic.report.report.label.aggregators.count'), - 'AVG' => $this->translator->trans('mautic.report.report.label.aggregators.avg'), - 'SUM' => $this->translator->trans('mautic.report.report.label.aggregators.sum'), - 'MIN' => $this->translator->trans('mautic.report.report.label.aggregators.min'), - 'MAX' => $this->translator->trans('mautic.report.report.label.aggregators.max'), - ], - 'expanded' => false, - 'multiple' => false, - 'label' => 'mautic.report.function', - 'label_attr' => ['class' => 'control-label'], - 'empty_value' => false, - 'required' => false, - 'attr' => [ - 'class' => 'form-control not-chosen', - ], - ]); + $builder->add( + 'function', + ChoiceType::class, + [ + 'choices_as_values' => true, + 'choices' => [ + $this->translator->trans('mautic.report.report.label.aggregators.count') => 'COUNT', + $this->translator->trans('mautic.report.report.label.aggregators.avg') => 'AVG', + $this->translator->trans('mautic.report.report.label.aggregators.sum') => 'SUM', + $this->translator->trans('mautic.report.report.label.aggregators.min') => 'MIN', + $this->translator->trans('mautic.report.report.label.aggregators.max') => 'MAX', + ], + 'expanded' => false, + 'multiple' => false, + 'label' => 'mautic.report.function', + 'label_attr' => ['class' => 'control-label'], + 'empty_value' => false, + 'required' => false, + 'attr' => [ + 'class' => 'form-control not-chosen', + ], + ] + ); // Build a list of columns - $builder->add('column', ChoiceType::class, [ - 'choices' => $options['columnList'], - 'expanded' => false, - 'multiple' => false, - 'label' => 'mautic.report.report.label.filtercolumn', - 'label_attr' => ['class' => 'control-label'], - 'empty_value' => false, - 'required' => false, - 'attr' => [ - 'class' => 'form-control filter-columns', - ], - ]); + $builder->add( + 'column', + ChoiceType::class, + [ + 'choices_as_values' => true, + 'choices' => array_flip($options['columnList']), + 'expanded' => false, + 'multiple' => false, + 'label' => 'mautic.report.report.label.filtercolumn', + 'label_attr' => ['class' => 'control-label'], + 'empty_value' => false, + 'required' => false, + 'attr' => [ + 'class' => 'form-control filter-columns', + ], + ] + ); } /** diff --git a/app/bundles/ReportBundle/Form/Type/DynamicFiltersType.php b/app/bundles/ReportBundle/Form/Type/DynamicFiltersType.php index 762c649a402..53f400eacc1 100644 --- a/app/bundles/ReportBundle/Form/Type/DynamicFiltersType.php +++ b/app/bundles/ReportBundle/Form/Type/DynamicFiltersType.php @@ -21,9 +21,6 @@ use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; -/** - * Class DynamicFiltersType. - */ class DynamicFiltersType extends AbstractType { /** @@ -80,8 +77,9 @@ public function buildForm(FormBuilderInterface $builder, array $options) break; case 'multiselect': case 'select': - $type = ChoiceType::class; - $args['choices'] = $definition['list']; + $type = ChoiceType::class; + $args['choices_as_values'] = true; + $args['choices'] = array_flip($definition['list']); break; default: $type = TextType::class; diff --git a/app/bundles/ReportBundle/Form/Type/FilterSelectorType.php b/app/bundles/ReportBundle/Form/Type/FilterSelectorType.php index cde02dd5073..553c05a9cda 100644 --- a/app/bundles/ReportBundle/Form/Type/FilterSelectorType.php +++ b/app/bundles/ReportBundle/Form/Type/FilterSelectorType.php @@ -22,9 +22,6 @@ use Symfony\Component\Form\FormView; use Symfony\Component\OptionsResolver\OptionsResolver; -/** - * Class FilterSelectorType. - */ class FilterSelectorType extends AbstractType { /** @@ -37,14 +34,15 @@ public function buildForm(FormBuilderInterface $builder, array $options) 'column', ChoiceType::class, [ - 'choices' => $options['filterList'], - 'expanded' => false, - 'multiple' => false, - 'label' => 'mautic.report.report.label.filtercolumn', - 'label_attr' => ['class' => 'control-label filter-column'], - 'empty_value' => false, - 'required' => false, - 'attr' => [ + 'choices_as_values' => true, + 'choices' => array_flip($options['filterList']), + 'expanded' => false, + 'multiple' => false, + 'label' => 'mautic.report.report.label.filtercolumn', + 'label_attr' => ['class' => 'control-label filter-column'], + 'empty_value' => false, + 'required' => false, + 'attr' => [ 'class' => 'form-control filter-columns', ], ] @@ -62,14 +60,15 @@ public function buildForm(FormBuilderInterface $builder, array $options) 'condition', ChoiceType::class, [ - 'choices' => $choices, - 'expanded' => false, - 'multiple' => false, - 'label' => 'mautic.report.report.label.filtercondition', - 'label_attr' => ['class' => 'control-label filter-condition'], - 'empty_value' => false, - 'required' => false, - 'attr' => [ + 'choices_as_values' => true, + 'choices' => array_flip($choices), + 'expanded' => false, + 'multiple' => false, + 'label' => 'mautic.report.report.label.filtercondition', + 'label_attr' => ['class' => 'control-label filter-condition'], + 'empty_value' => false, + 'required' => false, + 'attr' => [ 'class' => 'form-control not-chosen', ], ] @@ -96,13 +95,14 @@ function (FormEvent $event) use ($formModifier) { 'glue', ChoiceType::class, [ - 'label' => false, - 'label_attr' => ['class' => 'control-label'], - 'attr' => ['class' => 'form-control filter-glue not-chosen'], - 'required' => false, - 'choices' => [ - 'and' => 'mautic.report.report.glue.choice.and', - 'or' => 'mautic.report.report.glue.choice.or', + 'choices_as_values' => true, + 'label' => false, + 'label_attr' => ['class' => 'control-label'], + 'attr' => ['class' => 'form-control filter-glue not-chosen'], + 'required' => false, + 'choices' => [ + 'mautic.report.report.glue.choice.and' => 'and', + 'mautic.report.report.glue.choice.or' => 'or', ], 'placeholder' => false, ] diff --git a/app/bundles/ReportBundle/Form/Type/ReportFiltersType.php b/app/bundles/ReportBundle/Form/Type/ReportFiltersType.php index ceda75d3157..f690e53013f 100644 --- a/app/bundles/ReportBundle/Form/Type/ReportFiltersType.php +++ b/app/bundles/ReportBundle/Form/Type/ReportFiltersType.php @@ -17,9 +17,6 @@ use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; -/** - * Class ReportFiltersType. - */ class ReportFiltersType extends AbstractType { /** diff --git a/app/bundles/ReportBundle/Form/Type/ReportSettingsType.php b/app/bundles/ReportBundle/Form/Type/ReportSettingsType.php index ed73344b70c..b621fa522bc 100644 --- a/app/bundles/ReportBundle/Form/Type/ReportSettingsType.php +++ b/app/bundles/ReportBundle/Form/Type/ReportSettingsType.php @@ -15,9 +15,6 @@ use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; -/** - * Class ReportSettingsType. - */ class ReportSettingsType extends AbstractType { /** diff --git a/app/bundles/ReportBundle/Form/Type/ReportType.php b/app/bundles/ReportBundle/Form/Type/ReportType.php index 6cbdacc2329..8a157008edd 100644 --- a/app/bundles/ReportBundle/Form/Type/ReportType.php +++ b/app/bundles/ReportBundle/Form/Type/ReportType.php @@ -31,9 +31,6 @@ use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\Translation\TranslatorInterface; -/** - * Class ReportType. - */ class ReportType extends AbstractType { /** @@ -42,9 +39,7 @@ class ReportType extends AbstractType private $reportModel; /** - * Translator object. - * - * @var \Symfony\Bundle\FrameworkBundle\Translation\Translator + * @var TranslatorInterface */ private $translator; @@ -137,14 +132,15 @@ public function buildForm(FormBuilderInterface $builder, array $options) 'source', ChoiceType::class, [ - 'choices' => $tables, - 'expanded' => false, - 'multiple' => false, - 'label' => 'mautic.report.report.form.source', - 'label_attr' => ['class' => 'control-label'], - 'empty_value' => false, - 'required' => false, - 'attr' => [ + 'choices_as_values' => true, + 'choices' => $tables, + 'expanded' => false, + 'multiple' => false, + 'label' => 'mautic.report.report.form.source', + 'label_attr' => ['class' => 'control-label'], + 'empty_value' => false, + 'required' => false, + 'attr' => [ 'class' => 'form-control', 'tooltip' => 'mautic.report.report.form.source.help', 'onchange' => 'Mautic.updateReportSourceData(this.value)', @@ -180,13 +176,14 @@ public function buildForm(FormBuilderInterface $builder, array $options) 'columns', ChoiceType::class, [ - 'choices' => $columns->choices, - 'label' => false, - 'label_attr' => ['class' => 'control-label'], - 'required' => false, - 'multiple' => true, - 'expanded' => false, - 'attr' => [ + 'choices_as_values' => true, + 'choices' => array_flip($columns->choices), + 'label' => false, + 'label_attr' => ['class' => 'control-label'], + 'required' => false, + 'multiple' => true, + 'expanded' => false, + 'attr' => [ 'class' => 'form-control multiselect', 'data-order' => $order, 'data-sortable' => 'true', @@ -199,13 +196,14 @@ public function buildForm(FormBuilderInterface $builder, array $options) 'groupBy', ChoiceType::class, [ - 'choices' => $groupByColumns->choices, - 'label' => false, - 'label_attr' => ['class' => 'control-label'], - 'required' => false, - 'multiple' => true, - 'expanded' => false, - 'attr' => [ + 'choices_as_values' => true, + 'choices' => array_flip($groupByColumns->choices), + 'label' => false, + 'label_attr' => ['class' => 'control-label'], + 'required' => false, + 'multiple' => true, + 'expanded' => false, + 'attr' => [ 'class' => 'form-control multiselect', 'data-sortable' => 'true', 'onchange' => 'Mautic.checkSelectedGroupBy()', @@ -305,13 +303,14 @@ public function buildForm(FormBuilderInterface $builder, array $options) 'graphs', ChoiceType::class, [ - 'choices' => $graphList->choices, - 'label' => 'mautic.report.report.form.graphs', - 'label_attr' => ['class' => 'control-label'], - 'required' => false, - 'multiple' => true, - 'expanded' => false, - 'attr' => [ + 'choices_as_values' => true, + 'choices' => array_flip($graphList->choices), + 'label' => 'mautic.report.report.form.graphs', + 'label_attr' => ['class' => 'control-label'], + 'required' => false, + 'multiple' => true, + 'expanded' => false, + 'attr' => [ 'class' => 'form-control multiselect', 'data-order' => $order, 'data-sortable' => 'true', @@ -354,14 +353,15 @@ public function buildForm(FormBuilderInterface $builder, array $options) 'scheduleUnit', ChoiceType::class, [ - 'choices' => SchedulerEnum::getUnitEnumForSelect(), - 'expanded' => false, - 'multiple' => false, - 'label' => 'mautic.report.schedule.every', - 'label_attr' => ['class' => 'control-label'], - 'empty_value' => false, - 'required' => false, - 'attr' => [ + 'choices_as_values' => true, + 'choices' => SchedulerEnum::getUnitEnumForSelect(), + 'expanded' => false, + 'multiple' => false, + 'label' => 'mautic.report.schedule.every', + 'label_attr' => ['class' => 'control-label'], + 'empty_value' => false, + 'required' => false, + 'attr' => [ 'class' => 'form-control', 'data-report-schedule' => 'scheduleUnit', ], @@ -372,14 +372,15 @@ public function buildForm(FormBuilderInterface $builder, array $options) 'scheduleDay', ChoiceType::class, [ - 'choices' => SchedulerEnum::getDayEnumForSelect(), - 'expanded' => false, - 'multiple' => false, - 'label' => 'mautic.report.schedule.day', - 'label_attr' => ['class' => 'control-label'], - 'empty_value' => false, - 'required' => false, - 'attr' => [ + 'choices_as_values' => true, + 'choices' => SchedulerEnum::getDayEnumForSelect(), + 'expanded' => false, + 'multiple' => false, + 'label' => 'mautic.report.schedule.day', + 'label_attr' => ['class' => 'control-label'], + 'empty_value' => false, + 'required' => false, + 'attr' => [ 'class' => 'form-control', 'data-report-schedule' => 'scheduleDay', ], @@ -390,14 +391,15 @@ public function buildForm(FormBuilderInterface $builder, array $options) 'scheduleMonthFrequency', ChoiceType::class, [ - 'choices' => SchedulerEnum::getMonthFrequencyForSelect(), - 'expanded' => false, - 'multiple' => false, - 'label' => 'mautic.report.schedule.month_frequency', - 'label_attr' => ['class' => 'control-label'], - 'empty_value' => false, - 'required' => false, - 'attr' => [ + 'choices_as_values' => true, + 'choices' => SchedulerEnum::getMonthFrequencyForSelect(), + 'expanded' => false, + 'multiple' => false, + 'label' => 'mautic.report.schedule.month_frequency', + 'label_attr' => ['class' => 'control-label'], + 'empty_value' => false, + 'required' => false, + 'attr' => [ 'class' => 'form-control', 'data-report-schedule' => 'scheduleMonthFrequency', ], @@ -466,7 +468,7 @@ private function buildTableSourceList($tables) $list = []; foreach ($temp as $table) { - $list['mautic.report.group.'.$tables[$table]['group']][$table] = $tables[$table]['display_name']; + $list['mautic.report.group.'.$tables[$table]['group']][$tables[$table]['display_name']] = $table; } return $list; diff --git a/app/bundles/ReportBundle/Form/Type/ReportWidgetType.php b/app/bundles/ReportBundle/Form/Type/ReportWidgetType.php index 589aa9380be..9af0429ca40 100644 --- a/app/bundles/ReportBundle/Form/Type/ReportWidgetType.php +++ b/app/bundles/ReportBundle/Form/Type/ReportWidgetType.php @@ -12,15 +12,11 @@ namespace Mautic\ReportBundle\Form\Type; use Mautic\CoreBundle\Helper\Serializer; -use Mautic\ReportBundle\Entity\Report; use Mautic\ReportBundle\Model\ReportModel; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type\ChoiceType; use Symfony\Component\Form\FormBuilderInterface; -/** - * Class ReportWidgetType. - */ class ReportWidgetType extends AbstractType { /** @@ -29,8 +25,6 @@ class ReportWidgetType extends AbstractType protected $model; /** - * ReportWidgetType constructor. - * * @param ReportModel $reportModel */ public function __construct(ReportModel $reportModel) @@ -52,8 +46,8 @@ public function buildForm(FormBuilderInterface $builder, array $options) $graphs = Serializer::decode($report['graphs']); foreach ($graphs as $graph) { - $graphValue = $report['id'].':'.$graph; - $choices[$report['name']][$graphValue] = $graph; + $graphValue = $report['id'].':'.$graph; + $choices[$report['name']][$graph] = $graphValue; } } } @@ -63,14 +57,15 @@ public function buildForm(FormBuilderInterface $builder, array $options) 'graph', ChoiceType::class, [ - 'choices' => $choices, - 'expanded' => false, - 'multiple' => false, - 'label' => 'mautic.report.report.form.choose_graphs', - 'label_attr' => ['class' => 'control-label'], - 'empty_value' => false, - 'required' => false, - 'attr' => [ + 'choices_as_values' => true, + 'choices' => $choices, + 'expanded' => false, + 'multiple' => false, + 'label' => 'mautic.report.report.form.choose_graphs', + 'label_attr' => ['class' => 'control-label'], + 'empty_value' => false, + 'required' => false, + 'attr' => [ 'class' => 'form-control', ], ] diff --git a/app/bundles/ReportBundle/Form/Type/TableOrderType.php b/app/bundles/ReportBundle/Form/Type/TableOrderType.php index af68e093414..cd64c40a622 100644 --- a/app/bundles/ReportBundle/Form/Type/TableOrderType.php +++ b/app/bundles/ReportBundle/Form/Type/TableOrderType.php @@ -19,9 +19,6 @@ use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\Translation\TranslatorInterface; -/** - * Class FilterSelectorType. - */ class TableOrderType extends AbstractType { /** @@ -40,35 +37,45 @@ public function __construct(TranslatorInterface $translator) public function buildForm(FormBuilderInterface $builder, array $options) { // Build a list of columns - $builder->add('column', ChoiceType::class, [ - 'choices' => $options['columnList'], - 'expanded' => false, - 'multiple' => false, - 'label' => 'mautic.report.report.label.filtercolumn', - 'label_attr' => ['class' => 'control-label'], - 'empty_value' => false, - 'required' => false, - 'attr' => [ - 'class' => 'form-control', - ], - ]); + $builder->add( + 'column', + ChoiceType::class, + [ + 'choices_as_values' => true, + 'choices' => array_flip($options['columnList']), + 'expanded' => false, + 'multiple' => false, + 'label' => 'mautic.report.report.label.filtercolumn', + 'label_attr' => ['class' => 'control-label'], + 'empty_value' => false, + 'required' => false, + 'attr' => [ + 'class' => 'form-control', + ], + ] + ); // Direction - $builder->add('direction', ChoiceType::class, [ - 'choices' => [ - 'ASC' => $this->translator->trans('mautic.report.report.label.tableorder_dir.asc'), - 'DESC' => $this->translator->trans('mautic.report.report.label.tableorder_dir.desc'), - ], - 'expanded' => false, - 'multiple' => false, - 'label' => 'mautic.core.order', - 'label_attr' => ['class' => 'control-label'], - 'empty_value' => false, - 'required' => false, - 'attr' => [ - 'class' => 'form-control not-chosen', - ], - ]); + $builder->add( + 'direction', + ChoiceType::class, + [ + 'choices_as_values' => true, + 'choices' => [ + $this->translator->trans('mautic.report.report.label.tableorder_dir.asc') => 'ASC', + $this->translator->trans('mautic.report.report.label.tableorder_dir.desc') => 'DESC', + ], + 'expanded' => false, + 'multiple' => false, + 'label' => 'mautic.core.order', + 'label_attr' => ['class' => 'control-label'], + 'empty_value' => false, + 'required' => false, + 'attr' => [ + 'class' => 'form-control not-chosen', + ], + ] + ); } /** diff --git a/app/bundles/ReportBundle/Scheduler/Enum/SchedulerEnum.php b/app/bundles/ReportBundle/Scheduler/Enum/SchedulerEnum.php index 181787ffe90..8ef9ca3d63c 100644 --- a/app/bundles/ReportBundle/Scheduler/Enum/SchedulerEnum.php +++ b/app/bundles/ReportBundle/Scheduler/Enum/SchedulerEnum.php @@ -35,9 +35,9 @@ class SchedulerEnum public static function getUnitEnumForSelect() { return [ - self::UNIT_DAILY => 'mautic.report.schedule.unit.day', - self::UNIT_WEEKLY => 'mautic.report.schedule.unit.week', - self::UNIT_MONTHLY => 'mautic.report.schedule.unit.month', + 'mautic.report.schedule.unit.day' => self::UNIT_DAILY, + 'mautic.report.schedule.unit.week' => self::UNIT_WEEKLY, + 'mautic.report.schedule.unit.month' => self::UNIT_MONTHLY, ]; } @@ -47,14 +47,14 @@ public static function getUnitEnumForSelect() public static function getDayEnumForSelect() { return [ - self::DAY_MO => 'mautic.report.schedule.day.monday', - self::DAY_TU => 'mautic.report.schedule.day.tuesday', - self::DAY_WE => 'mautic.report.schedule.day.wednesday', - self::DAY_TH => 'mautic.report.schedule.day.thursday', - self::DAY_FR => 'mautic.report.schedule.day.friday', - self::DAY_SA => 'mautic.report.schedule.day.saturday', - self::DAY_SU => 'mautic.report.schedule.day.sunday', - self::DAY_WEEK_DAYS => 'mautic.report.schedule.day.week_days', + 'mautic.report.schedule.day.monday' => self::DAY_MO, + 'mautic.report.schedule.day.tuesday' => self::DAY_TU, + 'mautic.report.schedule.day.wednesday' => self::DAY_WE, + 'mautic.report.schedule.day.thursday' => self::DAY_TH, + 'mautic.report.schedule.day.friday' => self::DAY_FR, + 'mautic.report.schedule.day.saturday' => self::DAY_SA, + 'mautic.report.schedule.day.sunday' => self::DAY_SU, + 'mautic.report.schedule.day.week_days' => self::DAY_WEEK_DAYS, ]; } @@ -64,8 +64,8 @@ public static function getDayEnumForSelect() public static function getMonthFrequencyForSelect() { return [ - self::MONTH_FREQUENCY_FIRST => 'mautic.report.schedule.month_frequency.first', - self::MONTH_FREQUENCY_LAST => 'mautic.report.schedule.month_frequency.last', + 'mautic.report.schedule.month_frequency.first' => self::MONTH_FREQUENCY_FIRST, + 'mautic.report.schedule.month_frequency.last' => self::MONTH_FREQUENCY_LAST, ]; } From 6d591b7df781b748a932ac33cc3814229ba03822 Mon Sep 17 00:00:00 2001 From: John Linhart Date: Fri, 13 Dec 2019 15:46:50 +0100 Subject: [PATCH 5/6] Use class names instead of form aliases --- app/bundles/ReportBundle/Entity/Report.php | 3 --- app/bundles/ReportBundle/EventListener/ConfigSubscriber.php | 3 ++- .../ReportBundle/EventListener/DashboardSubscriber.php | 6 ++---- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/app/bundles/ReportBundle/Entity/Report.php b/app/bundles/ReportBundle/Entity/Report.php index 5def6fa46f3..c6e0ef11a38 100644 --- a/app/bundles/ReportBundle/Entity/Report.php +++ b/app/bundles/ReportBundle/Entity/Report.php @@ -24,9 +24,6 @@ use Symfony\Component\Validator\Constraints\NotBlank; use Symfony\Component\Validator\Mapping\ClassMetadata; -/** - * Class Report. - */ class Report extends FormEntity implements SchedulerInterface { /** diff --git a/app/bundles/ReportBundle/EventListener/ConfigSubscriber.php b/app/bundles/ReportBundle/EventListener/ConfigSubscriber.php index 09ccae74101..6e87377c298 100644 --- a/app/bundles/ReportBundle/EventListener/ConfigSubscriber.php +++ b/app/bundles/ReportBundle/EventListener/ConfigSubscriber.php @@ -14,6 +14,7 @@ use Mautic\ConfigBundle\ConfigEvents; use Mautic\ConfigBundle\Event\ConfigBuilderEvent; use Mautic\CoreBundle\EventListener\CommonSubscriber; +use Mautic\ReportBundle\Form\Type\ConfigType; class ConfigSubscriber extends CommonSubscriber { @@ -31,7 +32,7 @@ public function onConfigGenerate(ConfigBuilderEvent $event) { $event->addForm([ 'bundle' => 'ReportBundle', - 'formAlias' => 'reportconfig', + 'formAlias' => ConfigType::class, 'formTheme' => 'MauticReportBundle:FormTheme\Config', 'parameters' => $event->getParametersFromConfig('MauticReportBundle'), ]); diff --git a/app/bundles/ReportBundle/EventListener/DashboardSubscriber.php b/app/bundles/ReportBundle/EventListener/DashboardSubscriber.php index c0d038f03f1..889cdc8fbbc 100644 --- a/app/bundles/ReportBundle/EventListener/DashboardSubscriber.php +++ b/app/bundles/ReportBundle/EventListener/DashboardSubscriber.php @@ -14,11 +14,9 @@ use Mautic\CoreBundle\Security\Permissions\CorePermissions; use Mautic\DashboardBundle\Event\WidgetDetailEvent; use Mautic\DashboardBundle\EventListener\DashboardSubscriber as MainDashboardSubscriber; +use Mautic\ReportBundle\Form\Type\ReportWidgetType; use Mautic\ReportBundle\Model\ReportModel; -/** - * Class DashboardSubscriber. - */ class DashboardSubscriber extends MainDashboardSubscriber { /** @@ -45,7 +43,7 @@ class DashboardSubscriber extends MainDashboardSubscriber */ protected $types = [ 'report' => [ - 'formAlias' => 'report_widget', + 'formAlias' => ReportWidgetType::class, ], ]; From ed17e4f2a61fbc0110bcd64c0e9c5a89042464eb Mon Sep 17 00:00:00 2001 From: John Linhart Date: Fri, 13 Dec 2019 15:51:03 +0100 Subject: [PATCH 6/6] This is how a config form should be registered now --- app/bundles/ReportBundle/EventListener/ConfigSubscriber.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/bundles/ReportBundle/EventListener/ConfigSubscriber.php b/app/bundles/ReportBundle/EventListener/ConfigSubscriber.php index 6e87377c298..ae5ad2f6567 100644 --- a/app/bundles/ReportBundle/EventListener/ConfigSubscriber.php +++ b/app/bundles/ReportBundle/EventListener/ConfigSubscriber.php @@ -32,7 +32,8 @@ public function onConfigGenerate(ConfigBuilderEvent $event) { $event->addForm([ 'bundle' => 'ReportBundle', - 'formAlias' => ConfigType::class, + 'formAlias' => 'reportconfig', + 'formType' => ConfigType::class, 'formTheme' => 'MauticReportBundle:FormTheme\Config', 'parameters' => $event->getParametersFromConfig('MauticReportBundle'), ]);