<?php
namespace App\Controller\Admin;
use App\Entity\Theme;
use App\Entity\Societe;
use App\Entity\Systeme;
use App\Entity\Typetext;
use App\Entity\Departement;
use App\Controller\Admin\UserCrudController;
use Symfony\Component\HttpFoundation\Response;
use App\Controller\Admin\SocieteCrudController;
use Symfony\Component\Routing\Annotation\Route;
use EasyCorp\Bundle\EasyAdminBundle\Config\Assets;
use EasyCorp\Bundle\EasyAdminBundle\Config\MenuItem;
use EasyCorp\Bundle\EasyAdminBundle\Config\UserMenu;
use App\Entity\PartiePrenante;
use App\Entity\User;
use EasyCorp\Bundle\EasyAdminBundle\Config\Dashboard;
use Symfony\Component\Security\Core\User\UserInterface;
use EasyCorp\Bundle\EasyAdminBundle\Router\CrudUrlGenerator;
use EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractDashboardController;
class DashboardAdminController extends AbstractDashboardController
{
private $crudUrlGenerator;
public function __construct(CrudUrlGenerator $crudUrlGenerator)
{
$this->crudUrlGenerator = $crudUrlGenerator;
}
/**
* @Route("/admin", name="admin")
*/
public function index(): Response
{
// redirect to some CRUD controller
$routeBuilder = $this->crudUrlGenerator->build();
return $this->redirect($routeBuilder->setController(TextLoiCrudController::class)->generateUrl());
}
public function configureDashboard(): Dashboard
{
return Dashboard::new()
//->setTitle('<img src="images/logosm.png"> HSE Conform Administrateur')
//->setTitle('<div class="p-3 mb-2 bg-primary text-white">HSE Conform</div>')
->setTitle('<strong style="background: linear-gradient(to right, #000,#36ecde);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
letter-spacing:5px;
text-shadow: 2px 4px 3px rgba(0,0,0,0.3);
font-size: 40px;"> HSE Conform (Admin)</strong>') //: '.$this->societe->getName().'</h1><span class="text-small"></span>')
->setFaviconPath('images/logosm.png')
;
}
public function configureMenuItems(): iterable
{
yield MenuItem::linktoDashboard('Base Générale', 'fas fa-database');
yield MenuItem::linkToCrud('Societés', 'fas fa-building', Societe::class)->setController(SocieteCrudController::class);
yield MenuItem::linkToCrud('Departements', 'fas fa-map', Departement::class);
yield MenuItem::linkToCrud('Thèmes', 'fas fa-list', Theme::class);
yield MenuItem::linkToCrud('Types de Text', 'fas fa-border-style', Typetext::class);
yield MenuItem::linkToCrud('Systèmes', 'fab fa-accusoft', Systeme::class);
yield MenuItem::linkToCrud('Parties Prenantes', 'fab fa-accusoft', PartiePrenante::class);
// yield MenuItem::linkToCrud('Utilisateurs', 'fas fa-user', User::class)->setController(UserCrudController::class);
yield MenuItem::linkToLogout('Déconnection', 'fas fa-sign-out-alt');
// Tache administratives (TacheAdminController)
//yield MenuItem::linkToRoute('verifier fichier source', 'fas fa-tasks','tache_admin_verifsource');
// yield MenuItem::linkToRoute('Création dossier pj', 'fas fa-tasks','tache_admin_dossierpj');
yield MenuItem::linkToRoute('Test envoi mail', 'fas fa-tasks','app_send_email');
yield MenuItem::linkToRoute('liste societes', 'fas fa-tasks','app_test_societes');
}
public function configureUserMenu(UserInterface $user): UserMenu
{
// Vérifier si $user est une instance de User
if (!$user instanceof User) {
throw new \LogicException('L\'utilisateur connecté n\'est pas une instance de User.');
}
return parent::configureUserMenu($user)
->setName($user->getUsername())
->setGravatarEmail($user->getSociete() ? $user->getSociete()->getEmail() : '');
}
public function configureAssets(): Assets
{
return Assets::new()->addCssFile('css/admin.css');
}
}