<?php namespace App\Admin; use Sonata\AdminBundle\Admin\AbstractAdmin; use Sonata\AdminBundle\Datagrid\DatagridMapper; use Sonata\AdminBundle\Datagrid\ListMapper; use Sonata\AdminBundle\Form\FormMapper; use Sonata\AdminBundle\Show\ShowMapper; use Symfony\Component\Form\Extension\Core\Type\TextType; use FOS\CKEditorBundle\Form\Type\CKEditorType; /** * Administration des popups d'information. * Ces popup sont à destination des utilisateurs (adhérents uniquement pour l'instant), * et s'ouvrent automatiquement au lancement de l'application, * tant que l'utilisateur n'a pas cliqué sur le bouton de confirmation * * TODO: make sure only one popup is active at a given time (use post save hook) * * KOHINOS : Outil de gestion de Monnaie Locale Complémentaire */ class InformationPopupAdmin extends AbstractAdmin { protected function configureFormFields(FormMapper $form): void { $form ->add('title', TextType::class, [ 'label' => 'Titre', 'required' => true, ]) ->add('content', CKEditorType::class, [ 'label' => 'Contenu', 'required' => true, ]) ->add('validationButtonText', TextType::class, [ 'label' => 'Texte du bouton de validation', 'required' => true, 'attr' => [ 'placeholder' => 'Par exemple : "J\'ai compris", "Ok"...', ] ]) ->add('closingButtonText', TextType::class, [ 'label' => 'Texte du bouton de fermeture', 'required' => true, 'attr' => [ 'placeholder' => 'Par exemple : "Annuler", "Fermer pour l\'instant"...', ] ]) ->add('enabled', null, [ 'label' => 'Activé ?', 'help' => 'Une seule popup d\'information peut être active à la fois. Activer cette popup désactivera toutes les autres.' ]); } protected function configureDatagridFilters(DatagridMapper $datagrid): void { $datagrid ->add('title', null, [ 'label' => 'Titre' ]); } protected function configureListFields(ListMapper $list): void { $list ->addIdentifier('title', null, [ 'label' => 'Titre' ]) ->add('enabled', null, [ 'label' => 'Activé ?', ]); } }