src/Controller/Admin/DashboardController.php line 33

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Admin;
  3. use App\Entity\Campaign;
  4. use App\Entity\Company;
  5. use App\Entity\Email;
  6. use App\Entity\EmailAttachment;
  7. use App\Entity\Form;
  8. use App\Entity\IndicatorAnnexTemplate;
  9. use App\Entity\FormActionsSet;
  10. use App\Entity\FormLead;
  11. use App\Entity\MasterForm;
  12. use App\Entity\User;
  13. use EasyCorp\Bundle\EasyAdminBundle\Config\Dashboard;
  14. use EasyCorp\Bundle\EasyAdminBundle\Config\MenuItem;
  15. use EasyCorp\Bundle\EasyAdminBundle\Config\UserMenu;
  16. use EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractDashboardController;
  17. use Symfony\Component\HttpFoundation\Response;
  18. use Symfony\Component\Routing\Annotation\Route;
  19. use Symfony\Component\Security\Core\User\UserInterface;
  20. /**
  21.  * Clase que define el dashboard del administrador
  22.  *
  23.  * @see https://symfony.com/bundles/EasyAdminBundle/3.x/dashboards.html
  24.  */
  25. class DashboardController extends AbstractDashboardController
  26. {
  27.     /**
  28.      * @Route("/admin", name="admin")
  29.      */
  30.     public function index(): Response
  31.     {
  32.         return $this->render('admin/dashboard.html.twig');
  33.     }
  34.     /**
  35.      * @return Dashboard
  36.      */
  37.     public function configureDashboard(): Dashboard
  38.     {
  39.         return Dashboard::new()
  40.             ->setTitle($this->getParameter('app_name'))
  41.             ->renderContentMaximized()
  42.             ->setTranslationDomain('admin')
  43.             ->setFaviconPath('images/icon.png')
  44.         ;
  45.     }
  46.     /**
  47.      * @return iterable
  48.      */
  49.     public function configureMenuItems(): iterable
  50.     {
  51.         return [
  52.             MenuItem::linkToDashboard('Dashboard''fa fa-home'),
  53.             MenuItem::section('Administración'),
  54.             MenuItem::linkToCrud('Usuarios''fa fa-users'User::class)->setPermission('ROLE_SUPERADMIN'),
  55.             MenuItem::linkToCrud('Empresas''fa fa-building'Company::class)->setPermission('ROLE_SUPERADMIN'),
  56.             MenuItem::section('Maestros'),
  57.             MenuItem::linkToCrud('Adjuntos''fa fa-envelope'EmailAttachment::class),
  58.             MenuItem::linkToCrud('Emails''fa fa-envelope'Email::class),
  59.             MenuItem::linkToCrud("Plantillas de Anexo de Indicadores""fa fa-file-alt"IndicatorAnnexTemplate::class),
  60.             MenuItem::linkToCrud('Formularios maestros''fab fa-wpforms'MasterForm::class),
  61.             MenuItem::section('Campañas'),
  62.             MenuItem::linkToCrud('Campañas''fa fa-folder'Campaign::class),
  63.             MenuItem::linkToCrud('Formularios''fab fa-wpforms'Form::class),
  64.             MenuItem::linkToCrud('Acciones''fa fa-cogs'FormActionsSet::class)
  65.         ];
  66.     }
  67.     /**
  68.      * @param UserInterface $user
  69.      * @return UserMenu
  70.      */
  71.     public function configureUserMenu(UserInterface $user): UserMenu
  72.     {
  73.         return parent::configureUserMenu($user)
  74.             ->setName($user->getUserIdentifier())
  75.             ->displayUserName(true)
  76.             ->displayUserAvatar(false)
  77.             ->addMenuItems([
  78.                 // MenuItem::linkToRoute('My Profile', 'fa fa-id-card', '...', ['...' => '...']),
  79.                 // MenuItem::linkToRoute('Settings', 'fa fa-user-cog', '...', ['...' => '...']),
  80.                 // MenuItem::section(),
  81.                 // MenuItem::linkToLogout('Logout', 'fa fa-sign-out'),
  82.             ])
  83.         ;
  84.     }
  85. }