src/Controller/Admin/DashboardController.php line 64
<?php
namespace App\Controller\Admin;
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 App\Entity\Company;
use App\Entity\Employee;
use App\Entity\ExchangeRate;
use App\Entity\GeneralInvoice;
use App\Entity\Invoice;
use App\Entity\InvoiceDetail;
use App\Entity\Services;
use App\Entity\User;
use App\Entity\ServiceCategories;
use EasyCorp\Bundle\EasyAdminBundle\Config\Assets;
class DashboardController extends AbstractDashboardController
{
public function __construct(
private AdminUrlGenerator $adminUrlGenerator
) {
}
#[Route('/admin', name: 'admin')]
public function index(): Response
{
$url = $this->adminUrlGenerator->setController(EmployeeCrudController::class)->generateUrl();
return $this->redirect($url);
// return parent::index();
// 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(CompanyCrudController::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)
//
// return $this->render('some/path/my-dashboard.html.twig');
}
public function configureDashboard(): Dashboard
{
return Dashboard::new()
->setTitle('<img src="images\favicon-32x32.png"> AVDB <span class="text-small">invoices</span>');
}
protected function render(string $view, array $parameters = [], Response $response = null): Response
{
$parameters['template_path'] = 'admin\app_dashboard.html.twig';
return parent::render($view, $parameters, $response);
}
public function configureMenuItems(): iterable
{
yield MenuItem::linkToDashboard('Dashboard', 'fa fa-home');
yield MenuItem::section('Company details');
yield MenuItem::linkToCrud('Company', 'fa fa-tags', Company::class);
yield MenuItem::linkToCrud('Employee', 'fa fa-user', Employee::class);
yield MenuItem::section('Service details');
yield MenuItem::linkToCrud('Categories', 'fa fa-file-text', ServiceCategories::class);
yield MenuItem::linkToCrud('Services', 'fa fa-file-text', Services::class);
yield MenuItem::section('Employee Invoices');
yield MenuItem::linkToCrud('Invoice', 'fa fa-file-text', Invoice::class);
yield MenuItem::linkToCrud('Invoice Detail', 'fa fa-comment', InvoiceDetail::class)->setPermission('ROLE_SUPER_ADMIN');
// yield MenuItem::linkToRoute('Invoice admin','fa fa-file-text','custom_page_route')->setPermission('ROLE_SUPER_ADMIN');
yield MenuItem::section('Company Invoices');
yield MenuItem::linkToCrud('General Invoices', 'fa fa-tags', GeneralInvoice::class);
yield MenuItem::section('Exhange Rates');
yield MenuItem::linkToCrud('Exchange Rates', 'fa fa-user', ExchangeRate::class);
yield MenuItem::section('Users')->setPermission('ROLE_SUPER_ADMIN');
yield MenuItem::linkToCrud('User Table', 'fa fa-file-text', User::class)->setPermission('ROLE_SUPER_ADMIN');
yield MenuItem::linkToRoute('New user','fa fa-file-text','app_register')->setPermission('ROLE_SUPER_ADMIN');
// yield MenuItem::linkToCrud('The Label', 'fas fa-list', EntityClass::class);
}
public function configureAssets(): Assets
{
return parent::configureAssets()
->addWebpackEncoreEntry('invoicedetails');
}
}