<?php
namespace App\Controller\Admin;
use App\Entity\ActionLog;
use App\Entity\Building;
use App\Entity\Customer;
use App\Entity\Generator;
use App\Entity\GeneratorOptions;
use App\Entity\MonthlyMails;
use App\Entity\OptionName;
use App\Entity\PartnerTags;
use App\Entity\SeparateBill;
use App\Entity\User;
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\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use EasyCorp\Bundle\EasyAdminBundle\Config\Actions;
use EasyCorp\Bundle\EasyAdminBundle\Config\Action;
class DashboardController extends AbstractDashboardController
{
#[Route('/administrator', name: 'easyadmin')]
public function index(): Response
{
$adminUrlGenerator = $this->container->get(AdminUrlGenerator::class);
return $this->redirect($adminUrlGenerator->setController(BuildingCrudController::class)->generateUrl());
}
public function configureDashboard(): Dashboard
{
return Dashboard::new()
->setTitle('<a href="/dashboard">Troskovi</a>');
}
public function configureCrud(): Crud
{
return Crud::new()
->setPageTitle(Crud::PAGE_INDEX, 'Tabela %entity_label_singular%')
->showEntityActionsInlined()
->setDefaultSort(['id' => "DESC"])
->overrideTemplate('crud/field/id', '@views/Administrator/fields/_id.html.twig');
}
public function configureMenuItems(): iterable
{
yield MenuItem::linkToCrud('Building', 'fas fa-folder-open', Building::class);
yield MenuItem::linkToCrud('Customer', 'fas fa-folder-open', Customer::class);
yield MenuItem::linkToCrud('Generator', 'fas fa-folder-open', Generator::class);
yield MenuItem::linkToCrud('GeneratorOptions', 'fas fa-folder-open', GeneratorOptions::class);
yield MenuItem::linkToCrud('OptionName', 'fas fa-folder-open', OptionName::class);
yield MenuItem::linkToCrud('PartnerTags', 'fas fa-folder-open', PartnerTags::class);
yield MenuItem::linkToCrud('SeparateBill', 'fas fa-folder-open', SeparateBill::class);
yield MenuItem::linkToCrud('MonthlyMails', 'fas fa-folder-open', MonthlyMails::class);
yield MenuItem::linkToCrud('User', 'fas fa-folder-open', User::class);
yield MenuItem::linkToCrud('ActionLog', 'fas fa-folder-open', ActionLog::class);
}
public function configureActions(): Actions
{
return parent::configureActions()
->add(Crud::PAGE_INDEX, Action::DETAIL);
}
}