src/Controller/Admin/DashboardController.php line 54

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Admin;
  3. use App\Entity\SEO;
  4. use App\Entity\User;
  5. use App\Entity\Legal;
  6. use App\Entity\Video;
  7. use App\Entity\Booking;
  8. use App\Entity\Privacy;
  9. use App\Entity\Profile;
  10. use App\Entity\AboutArea;
  11. use App\Entity\AboutInfo;
  12. use App\Entity\HobbyArea;
  13. use App\Entity\IntroArea;
  14. use App\Entity\PageHeader;
  15. use App\Entity\BookingMail;
  16. use App\Entity\ContactForm;
  17. use App\Entity\GalleryArea;
  18. use App\Entity\HobbySingle;
  19. use App\Entity\ProcessLogs;
  20. use App\Entity\ServiceArea;
  21. use App\Entity\Testimonial;
  22. use App\Entity\GalleryImage;
  23. use App\Entity\ServiceSingle;
  24. use App\Service\StatsService;
  25. use App\Entity\HomeMainSlider;
  26. use App\Entity\BookingContract;
  27. use App\Entity\GalleryCategory;
  28. use App\Entity\ServiceCategory;
  29. use App\Entity\TestimonialArea;
  30. use App\Entity\BookingConstraint;
  31. use Symfony\Component\HttpFoundation\Response;
  32. use Symfony\Component\Routing\Annotation\Route;
  33. use EasyCorp\Bundle\EasyAdminBundle\Config\Assets;
  34. use EasyCorp\Bundle\EasyAdminBundle\Config\MenuItem;
  35. use EasyCorp\Bundle\EasyAdminBundle\Config\UserMenu;
  36. use EasyCorp\Bundle\EasyAdminBundle\Config\Dashboard;
  37. use Symfony\Component\Security\Core\User\UserInterface;
  38. use EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractDashboardController;
  39. class DashboardController extends AbstractDashboardController
  40. {
  41.     private $statService;    
  42.     public function __construct(StatsService $statService)
  43.     {
  44.         $this->statService $statService;
  45.     }
  46.     /**
  47.      * @Route("/admin1807", name="admin_dashboard")
  48.      */
  49.     public function index(): Response
  50.     {
  51.         $stats $this->statService->getStats();
  52.         return $this->render('bundles/EasyAdminBundle/page/content.html.twig', [
  53.             'stats'=>$stats,
  54.         ]);
  55.     }
  56.     public function configureDashboard(): Dashboard
  57.     {
  58.         return Dashboard::new()
  59.             ->setTitle('<img src="images/about/logo-admin-dark-h.png" width="175">')
  60.             ->setFaviconPath('images/favicon.png')
  61.             ->disableUrlSignatures()
  62.             ->setTranslationDomain('admin_dashboard')
  63.         ;
  64.     }
  65.     
  66.     public function configureAssets(): Assets
  67.     {
  68.         return Assets::new()
  69.             ->addCssFile('css/admin/admin.css')
  70.             ->addJsFile('js/admin/Chart.min.js')
  71.             ->addJsFile('js/admin/admin.js')
  72.             ->addJsFile('js/admin/field-text-editor.js')
  73.             ->addJsFile('js/admin/field-collection.js')
  74.             ->addJsFile('js/admin/field-textarea.js')
  75.             ->addJsFile('js/admin/field-slug.js')
  76.             ->addJsFile('js/admin/field-image.js')
  77.             ->addJsFile('js/admin/field-file-upload.js')
  78.         ;
  79.     }
  80.     public function configureMenuItems(): iterable
  81.     {
  82.         yield MenuItem::linktoDashboard('Tableau de bord''fa fa-home');
  83.         yield MenuItem::linkToRoute('Retour au site''fas fa-arrow-alt-circle-left''home');
  84.         yield MenuItem::section('ACCES RAPIDE');
  85.             yield MenuItem::linkToCrud('Réservations''fas fa-calendar-day'Booking::class);
  86.             yield MenuItem::linkToCrud('Avis''fas fa-comment-dots'Testimonial::class);
  87.             yield MenuItem::linkToCrud('Messages''fas fa-envelope'ContactForm::class);
  88.         yield MenuItem::section('PRESENTATION');
  89.             yield MenuItem::linkToCrud('A propos''fas fa-question-circle'AboutInfo::class)
  90.                 ->setAction('detail')
  91.                 ->setEntityId(1);
  92.             yield MenuItem::linkToCrud('Vidéo''fab fa-youtube'Video::class)  
  93.                 ->setAction('detail')
  94.                 ->setEntityId(1);
  95.             
  96.         yield MenuItem::section('PRESTATIONS');
  97.             yield MenuItem::linkToCrud('Catégories''fas fa-box'ServiceCategory::class);
  98.             yield MenuItem::linkToCrud('Préstations''fas fa-th'ServiceSingle::class);
  99.         
  100.         yield MenuItem::section('HOBBIES');
  101.             yield MenuItem::linkToCrud('Activités''fas fa-futbol'HobbySingle::class);
  102.         yield MenuItem::section('GALERIE');
  103.             yield MenuItem::linkToCrud('Catégories''fas fa-box'GalleryCategory::class);
  104.             yield MenuItem::linkToCrud('Images''fas fa-image'GalleryImage::class);
  105.         yield MenuItem::section('PAGES & SECTIONS');
  106.             yield MenuItem::subMenu('Pages & En-têtes''fas fa-grip-lines')->setSubItems([
  107.                 MenuItem::linkToCrud('Accueil (slider)''fas fa-file'HomeMainSlider::class)
  108.                     ->setAction('detail')
  109.                     ->setEntityId(2),
  110.                 MenuItem::linkToCrud('Autres pages''fas fa-copy'PageHeader::class)
  111.             ]);
  112.             yield MenuItem::subMenu('Sections''fas fa-grip-lines')->setSubItems([
  113.                 MenuItem::linkToCrud('Introduction''fas fa-file'IntroArea::class)
  114.                     ->setAction('detail')
  115.                     ->setEntityId(1),
  116.                 MenuItem::linkToCrud('A propos''fas fa-file'AboutArea::class),
  117.                 MenuItem::linkToCrud('Prestation''fas fa-file'ServiceArea::class)
  118.                     ->setAction('detail')
  119.                     ->setEntityId(2),
  120.                 MenuItem::linkToCrud('Activités''fas fa-file'HobbyArea::class)
  121.                     ->setAction('detail')
  122.                     ->setEntityId(2),
  123.                 MenuItem::linkToCrud('Galerie''fas fa-file'GalleryArea::class)
  124.                     ->setAction('detail')
  125.                     ->setEntityId(1),
  126.                 MenuItem::linkToCrud('Avis''fas fa-file'TestimonialArea::class)
  127.                     ->setAction('detail')
  128.                     ->setEntityId(1)
  129.             ]);
  130.         yield MenuItem::section('RESERVATIONS');
  131.             yield MenuItem::linkToCrud('Réservations''fas fa-calendar-day'Booking::class);
  132.             yield MenuItem::linkToCrud('Contraintes & CGV''fas fa-clipboard-check'BookingConstraint::class)
  133.                 ->setAction('detail')
  134.                 ->setEntityId(1);
  135.             yield MenuItem::linkToCrud('Contrat''fas fa-file'BookingContract::class)
  136.                 ->setAction('detail')
  137.                 ->setEntityId(1);
  138.             yield MenuItem::linkToCrud('Mails''fas fa-envelope'BookingMail::class);
  139.             yield MenuItem::linkToCrud('Alertes''fas fa-exclamation-triangle'ProcessLogs::class);
  140.         yield MenuItem::section('OPTIONS');
  141.             yield MenuItem::linkToCrud('Sécurité''fas fa-user'User::class);
  142.             if ($this->getUser()->getProfile() != null) {
  143.                 yield MenuItem::linkToCrud('Profil''fas fa-address-card'Profile::class)
  144.                     ->setAction('detail')
  145.                     ->setEntityId($this->getUser()->getProfile()->getId());
  146.             }else {
  147.                 yield MenuItem::linkToCrud('Profil''fas fa-address-card'Profile::class)
  148.                     ->setAction('new');
  149.             }
  150.             yield MenuItem::linkToCrud('SEO''fab fa-searchengin'SEO::class)
  151.                 ->setAction('detail')
  152.                 ->setEntityId(1);
  153.             yield MenuItem::linkToCrud('Mentions legales''fas fa-align-left'Legal::class)
  154.                 ->setAction('detail')
  155.                 ->setEntityId(1);
  156.             yield MenuItem::linkToCrud('Confidentialité''fas fa-align-left'Privacy::class)
  157.                 ->setAction('detail')
  158.                 ->setEntityId(1);
  159.             yield MenuItem::linkToLogout('Déconnexion''fa fa-fw fa-sign-out');
  160.     }
  161.     public function configureUserMenu(UserInterface $user): UserMenu
  162.     {
  163.         $profile $user->getProfile();
  164.         if ($profile != null) {
  165.             return parent::configureUserMenu($user)
  166.                     ->setName($profile->getFirstName()." ".$profile->getLastName())
  167.                     ->setAvatarUrl('https://gite-colombine.fr/images/profile/'.$profile->getAvatar())
  168.                     ->addMenuItems([
  169.                         MenuItem::linkToRoute('Profil''fa fa-id-card''profile', ['...' => '...']),
  170.                         MenuItem::linkToRoute('Sécurité''fa fa-user-cog''user', ['...' => '...']),
  171.             ]);
  172.         }else {
  173.             return parent::configureUserMenu($user);
  174.         }
  175.         
  176.     }
  177. }