<?php
namespace App\Controller\Admin;
use App\Entity\Campaign;
use App\Entity\Company;
use App\Entity\Email;
use App\Entity\EmailAttachment;
use App\Entity\Form;
use App\Entity\IndicatorAnnexTemplate;
use App\Entity\FormActionsSet;
use App\Entity\FormLead;
use App\Entity\MasterForm;
use App\Entity\User;
use EasyCorp\Bundle\EasyAdminBundle\Config\Dashboard;
use EasyCorp\Bundle\EasyAdminBundle\Config\MenuItem;
use EasyCorp\Bundle\EasyAdminBundle\Config\UserMenu;
use EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractDashboardController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Security\Core\User\UserInterface;
/**
* Clase que define el dashboard del administrador
*
* @see https://symfony.com/bundles/EasyAdminBundle/3.x/dashboards.html
*/
class DashboardController extends AbstractDashboardController
{
/**
* @Route("/admin", name="admin")
*/
public function index(): Response
{
return $this->render('admin/dashboard.html.twig');
}
/**
* @return Dashboard
*/
public function configureDashboard(): Dashboard
{
return Dashboard::new()
->setTitle($this->getParameter('app_name'))
->renderContentMaximized()
->setTranslationDomain('admin')
->setFaviconPath('images/icon.png')
;
}
/**
* @return iterable
*/
public function configureMenuItems(): iterable
{
return [
MenuItem::linkToDashboard('Dashboard', 'fa fa-home'),
MenuItem::section('Administración'),
MenuItem::linkToCrud('Usuarios', 'fa fa-users', User::class)->setPermission('ROLE_SUPERADMIN'),
MenuItem::linkToCrud('Empresas', 'fa fa-building', Company::class)->setPermission('ROLE_SUPERADMIN'),
MenuItem::section('Maestros'),
MenuItem::linkToCrud('Adjuntos', 'fa fa-envelope', EmailAttachment::class),
MenuItem::linkToCrud('Emails', 'fa fa-envelope', Email::class),
MenuItem::linkToCrud("Plantillas de Anexo de Indicadores", "fa fa-file-alt", IndicatorAnnexTemplate::class),
MenuItem::linkToCrud('Formularios maestros', 'fab fa-wpforms', MasterForm::class),
MenuItem::section('Campañas'),
MenuItem::linkToCrud('Campañas', 'fa fa-folder', Campaign::class),
MenuItem::linkToCrud('Formularios', 'fab fa-wpforms', Form::class),
MenuItem::linkToCrud('Acciones', 'fa fa-cogs', FormActionsSet::class)
];
}
/**
* @param UserInterface $user
* @return UserMenu
*/
public function configureUserMenu(UserInterface $user): UserMenu
{
return parent::configureUserMenu($user)
->setName($user->getUserIdentifier())
->displayUserName(true)
->displayUserAvatar(false)
->addMenuItems([
// MenuItem::linkToRoute('My Profile', 'fa fa-id-card', '...', ['...' => '...']),
// MenuItem::linkToRoute('Settings', 'fa fa-user-cog', '...', ['...' => '...']),
// MenuItem::section(),
// MenuItem::linkToLogout('Logout', 'fa fa-sign-out'),
])
;
}
}