<?php
namespace App\Controller\Admin;
use App\Entity\Activity;
use App\Entity\Ad;
use App\Entity\AdCategory;
use App\Entity\Address;
use App\Entity\Alert;
use App\Entity\AlertCategory;
use App\Entity\ClaimingRequest;
use App\Entity\Club;
use App\Entity\ClubPresentation;
use App\Entity\Company;
use App\Entity\Deal;
use App\Entity\Keyword;
use App\Entity\Photo;
use App\Entity\Post;
use App\Entity\ResetPasswordRequest;
use App\Entity\User;
use App\Entity\UserClub;
use App\Entity\Widget;
use App\Form\Admin\EditPasswordFormType;
use App\Repository\UserRepository;
use Doctrine\ORM\EntityManagerInterface;
use EasyCorp\Bundle\EasyAdminBundle\Config\Crud;
use EasyCorp\Bundle\EasyAdminBundle\Config\Dashboard;
use EasyCorp\Bundle\EasyAdminBundle\Config\MenuItem;
use EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractDashboardController;
use EasyCorp\Bundle\EasyAdminBundle\Router\AdminUrlGenerator;
use Symfony\Component\Form\Exception\LogicException;
use Symfony\Component\Form\Exception\RuntimeException;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
use Symfony\Component\Routing\Annotation\Route;
class DashboardController extends AbstractDashboardController
{
public function __construct(
private readonly UserPasswordHasherInterface $passwordHasher,
private readonly EntityManagerInterface $em,
) {
}
#[Route('/admin', name: 'admin')]
public function index(): Response
{
$adminUrlGenerator = $this->container->get(AdminUrlGenerator::class);
return $this->redirect($adminUrlGenerator->setController(UserCrudController::class)->generateUrl());
}
public function configureDashboard(): Dashboard
{
return Dashboard::new()
->setTitle('Assopro');
}
public function configureMenuItems(): iterable
{
yield MenuItem::linkToDashboard('Dashboard', 'fa fa-home');
yield MenuItem::linkToCrud('Users', 'fas fa-list', User::class);
yield MenuItem::linkToCrud('Clubs', 'fas fa-list', Club::class);
yield MenuItem::linkToCrud('Companies', 'fas fa-list', Company::class);
yield MenuItem::linkToCrud('Activities', 'fas fa-list', Activity::class);
yield MenuItem::linkToCrud('Photos', 'fas fa-list', Photo::class);
yield MenuItem::linkToCrud('ResetPasswordReqs', 'fas fa-list', ResetPasswordRequest::class);
yield MenuItem::linkToCrud('Posts', 'fas fa-list', Post::class);
yield MenuItem::linkToCrud('Ads', 'fas fa-list', Ad::class);
yield MenuItem::linkToCrud('AdCategories', 'fas fa-list', AdCategory::class);
yield MenuItem::linkToCrud('Address', 'fas fa-list', Address::class);
yield MenuItem::linkToCrud('Keywords', 'fas fa-list', Keyword::class);
yield MenuItem::linkToCrud('Widget', 'fas fa-list', Widget::class);
yield MenuItem::linkToCrud('Claiming Request', 'fas fa-list', ClaimingRequest::class);
yield MenuItem::linkToCrud('Deals', 'fas fa-list', Deal::class);
yield MenuItem::linkToCrud('Alerts', 'fas fa-list', Alert::class);
yield MenuItem::linkToCrud('AlertCategories', 'fas fa-list', AlertCategory::class);
yield MenuItem::linkToCrud('ClubPresentation', 'fas fa-list', ClubPresentation::class);
yield MenuItem::section('---');
yield MenuItem::linkToRoute('Retour à l\'application', 'fa fa-reply', 'home');
}
}