<?php
namespace App\Controller\Admin;
use App\Entity\Appointment;
use App\Entity\CapacityType;
use App\Entity\Card;
use App\Entity\CardType;
use App\Entity\CustomSchedule;
use App\Entity\DefaultSchedule;
use App\Entity\EventLog;
use App\Entity\News;
use App\Entity\NewsletterEntry;
use App\Entity\User;
use App\Entity\VehicleType;
use App\Entity\WasteType;
use EasyCorp\Bundle\EasyAdminBundle\Config\Action;
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\Provider\AdminContextProvider;
use EasyCorp\Bundle\EasyAdminBundle\Router\AdminUrlGenerator;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class DashboardController extends AbstractDashboardController
{
/**
* @Route("/%easyadmin_url%", name="admin_dashboard")
*/
public function index(): Response
{
// redirect to some CRUD controller
$routeBuilder = $this->get(AdminUrlGenerator::class);
return $this->redirect(
$routeBuilder
->setController(AppointmentCrudController::class)
->setAction('liveDashboard')
->generateUrl()
);
}
public function configureDashboard(): Dashboard
{
return Dashboard::new()
->setTitle('Sivec')
->setTranslationDomain('admin');
}
public function configureMenuItems(): iterable
{
// yield MenuItem::linktoDashboard('Dashboard', 'fa fa-home');
yield MenuItem::linktoRoute('Dashboard', 'fa fa-home', 'admin_dashboard_live');
yield MenuItem::linkToUrl('App', 'fa fa-mobile-alt', $_ENV['APP_URL'])->setLinkTarget('_blank');
if ($this->isGranted('ROLE_SIVEC_OPERATOR')) {
yield MenuItem::section('Listing');
yield MenuItem::linkToCrud('Appointment', 'fa fa-calendar-check', Appointment::class);
yield MenuItem::linkToCrud('Newsletter', 'fa fa-envelope', NewsletterEntry::class);
yield MenuItem::linkToCrud('News', 'fa fa-newspaper', News::class);
}
if ($this->isGranted('ROLE_SIVEC_MANAGER')) {
yield MenuItem::linkToCrud('Card', 'fa fa-id-card', Card::class);
yield MenuItem::section('Horaires');
yield MenuItem::linkToCrud('DefaultSchedule', 'fa fa-calendar', DefaultSchedule::class);
yield MenuItem::linkToCrud('CustomSchedule', 'fa fa-calendar-alt', CustomSchedule::class);
yield MenuItem::section('Configuration');
yield MenuItem::linkToCrud('CardType', 'fa fa-user-cog', CardType::class);
yield MenuItem::linkToCrud('Vehicle', 'fa fa-truck-pickup', VehicleType::class);
yield MenuItem::linkToCrud('WasteType', 'fa fa-dumpster', WasteType::class);
yield MenuItem::linkToCrud('CapacityType', 'fa fa-user', CapacityType::class);
yield MenuItem::linkToCrud('User', 'fa fa-truck', User::class);
yield MenuItem::linktoRoute('Parameters', 'fa fa-cogs', 'admin_project_parameter');
yield MenuItem::section('Admin');
yield MenuItem::linkToCrud('Log', 'fa fa-clipboard-list', EventLog::class)
->setPermission('ROLE_SUPER_ADMIN');
yield MenuItem::linkToUrl('Openapi doc', 'fa fa-book-atlas', '/swagger/index.html')
->setLinkTarget('_blank')
->setPermission('ROLE_SUPER_ADMIN');
}
}
public function configureAssets(): Assets
{
return
Assets::new()
->addCssFile('assets/admin/css/style.css');
}
}