<?php
namespace App\Controller\Admin;
use App\Entity\Bewertung;
use App\Entity\BewertungKategorie;
use App\Entity\Fernsehserie;
use App\Entity\Film;
use App\Entity\Filmart;
use App\Entity\FilmPerson;
use App\Entity\Notiz;
use App\Entity\Person;
use App\Entity\Speicherort;
use App\Entity\Spiel;
use App\Entity\SpielGenre;
use App\Repository\NotizRepository;
use EasyCorp\Bundle\EasyAdminBundle\Config\Assets;
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\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class DashboardController extends AbstractDashboardController
{
private NotizRepository $notizRepository;
public function __construct(NotizRepository $notizRepository)
{
$this->notizRepository = $notizRepository;
}
#[Route('/', name: 'admin')]
public function index(): Response
{
// Option 1. You can make your dashboard redirect to some common page of your backend
//
// $adminUrlGenerator = $this->container->get(AdminUrlGenerator::class);
// return $this->redirect($adminUrlGenerator->setController(OneOfYourCrudController::class)->generateUrl());
// Option 2. You can make your dashboard redirect to different pages depending on the user
//
// if ('jane' === $this->getUser()->getUsername()) {
// return $this->redirect('...');
// }
// Option 3. You can render some custom template to display a proper dashboard with widgets, etc.
// (tip: it's easier if your template extends from @EasyAdmin/page/content.html.twig)
//
$notizen = $this->notizRepository->findAll();
return $this->render('dashboard.html.twig', [
'notizen' => $notizen,
]);
}
public function configureDashboard(): Dashboard
{
return Dashboard::new()
->setTitle('Intranet');
}
public function configureAssets(): Assets
{
$assets = parent::configureAssets();
$assets->addJsFile('js/jquery-3.6.1.min.js');
return $assets;
}
public function configureMenuItems(): iterable
{
yield MenuItem::linkToDashboard('Dashboard', 'fa fa-home');
yield MenuItem::section('Bewertungen');
yield MenuItem::linkToCrud('Bewertungen', 'fas fa-list', Bewertung::class);
yield MenuItem::linkToCrud('Kategorien', 'fas fa-list', BewertungKategorie::class);
yield MenuItem::section('Filme und Serien');
yield MenuItem::linkToCrud('Filme', 'fas fa-list', Film::class);
yield MenuItem::linkToCrud('Fernsehserien', 'fas fa-list', Fernsehserie::class);
yield MenuItem::linkToCrud('Filmarten', 'fas fa-list', Filmart::class);
yield MenuItem::linkToCrud('Speicherorte', 'fas fa-list', Speicherort::class);
yield MenuItem::linkToCrud('Personen', 'fas fa-list', Person::class);
yield MenuItem::section('Spiele');
yield MenuItem::linkToCrud('Spiele', 'fas fa-list', Spiel::class);
yield MenuItem::linkToCrud('Spiele-Genres', 'fas fa-list', SpielGenre::class);
yield MenuItem::section('Sonstiges');
yield MenuItem::linkToCrud('Notizen', 'fas fa-list', Notiz::class);
yield MenuItem::linkToCrud('FilmPerson', 'fas fa-list', FilmPerson::class);
yield MenuItem::linkToRoute('Geo', 'fas fa-map', 'geo');
}
}