<?php
namespace App\Controller\Admin;
use App\Entity\Incident;
use App\Entity\Sat;
use App\Entity\Status;
use App\Entity\Category;
use App\Entity\Supplier;
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;
class DashboardController extends AbstractDashboardController
{
#[Route('/admin', name: 'admin')]
public function index(): Response
{
return $this->render('admin/dashboard.html.twig');
}
public function configureDashboard(): Dashboard
{
return Dashboard::new()
->setTitle('<img src="/img/logo.png" height="32" class="d-inline-block align-bottom"><span class="fs-4"> S.A.T </span><span class="fs-6 fw-light"> Search</span>')
->setFaviconPath('favicon.png');
}
public function configureMenuItems(): iterable
{
return [
MenuItem::linkToDashboard('Dashboard', 'fa fa-home'),
MenuItem::section('Incidencias'),
MenuItem::linkToCrud('Incidencias', 'fa fa-triangle-exclamation', Incident::class)->setBadge(14, 'warning'),
MenuItem::linkToCrud('S.A.T', 'fa fa-users-gear', Sat::class)->setBadge(10, 'success'),
// MenuItem::linkToCrud('Gestión Avisos', 'fa fa-comments', Sat::class)->setBadge(25, 'info'),
MenuItem::section('Gestión'),
MenuItem::linkToCrud('Usuarios', 'fa fa-user', User::class),
MenuItem::linkToCrud('Categorías', 'fa fa-laptop', Category::class),
MenuItem::linkToCrud('Proveedores', 'fa fa-cubes', Supplier::class),
MenuItem::linkToCrud('Estados', 'fas fa-tasks', Status::class),
];
}
public function configureUserMenu(UserInterface $user): UserMenu
{
// Usually it's better to call the parent method because that gives you a
// user menu with some menu items already created ("sign out", "exit impersonation", etc.)
// if you prefer to create the user menu from scratch, use: return UserMenu::new()->...
return parent::configureUserMenu($user)
// use the given $user object to get the user name
->setName($user->getFirstName())
// use this method if you don't want to display the name of the user
->displayUserName(false)
// you can also pass an email address to use gravatar's service
->setGravatarEmail($user->getEmail())
// you can use any type of menu item, except submenus
->addMenuItems([
MenuItem::linkToCrud('Perfil', 'fa fa-id-card', User::class)->setAction('edit')->setEntityId($user->getId()),
]);
}
}