src/Controller/Admin/DashboardController.php line 64

  1. <?php
  2. namespace App\Controller\Admin;
  3. use EasyCorp\Bundle\EasyAdminBundle\Config\Dashboard;
  4. use EasyCorp\Bundle\EasyAdminBundle\Config\MenuItem;
  5. use EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractDashboardController;
  6. use EasyCorp\Bundle\EasyAdminBundle\Router\AdminUrlGenerator;
  7. use Symfony\Component\HttpFoundation\Response;
  8. use Symfony\Component\Routing\Annotation\Route;
  9. use App\Entity\Company;
  10. use App\Entity\Employee;
  11. use App\Entity\ExchangeRate;
  12. use App\Entity\GeneralInvoice;
  13. use App\Entity\Invoice;
  14. use App\Entity\InvoiceDetail;
  15. use App\Entity\Services;
  16. use App\Entity\User;
  17. use App\Entity\ServiceCategories;
  18. use EasyCorp\Bundle\EasyAdminBundle\Config\Assets;
  19. class DashboardController extends AbstractDashboardController
  20. {
  21.     public function __construct(
  22.         private AdminUrlGenerator $adminUrlGenerator
  23.     ) {
  24.         
  25.     }
  26.     #[Route('/admin'name'admin')]
  27.     public function index(): Response
  28.     {
  29.         $url $this->adminUrlGenerator->setController(EmployeeCrudController::class)->generateUrl();
  30.         return $this->redirect($url);
  31.         // return parent::index();
  32.         // Option 1. You can make your dashboard redirect to some common page of your backend
  33.         //
  34.         // $adminUrlGenerator = $this->container->get(AdminUrlGenerator::class);
  35.         // return $this->redirect($adminUrlGenerator->setController(CompanyCrudController::class)->generateUrl());
  36.         // Option 2. You can make your dashboard redirect to different pages depending on the user
  37.         //
  38.         // if ('jane' === $this->getUser()->getUsername()) {
  39.         //     return $this->redirect('...');
  40.         // }
  41.         // Option 3. You can render some custom template to display a proper dashboard with widgets, etc.
  42.         // (tip: it's easier if your template extends from @EasyAdmin/page/content.html.twig)
  43.         //
  44.         // return $this->render('some/path/my-dashboard.html.twig');
  45.     }
  46.     public function configureDashboard(): Dashboard
  47.     {
  48.         return Dashboard::new()
  49.             ->setTitle('<img src="images\favicon-32x32.png"> AVDB <span class="text-small">invoices</span>');
  50.     }
  51.     protected function render(string $view, array $parameters = [], Response $response null): Response
  52.     {
  53.         $parameters['template_path'] = 'admin\app_dashboard.html.twig';
  54.         return parent::render($view$parameters$response);
  55.     }
  56.     public function configureMenuItems(): iterable
  57.     {
  58.         yield MenuItem::linkToDashboard('Dashboard''fa fa-home');
  59.         yield MenuItem::section('Company details');
  60.             
  61.         yield MenuItem::linkToCrud('Company''fa fa-tags'Company::class);
  62.         
  63.         yield MenuItem::linkToCrud('Employee''fa fa-user'Employee::class);
  64.         yield MenuItem::section('Service details');
  65.         yield MenuItem::linkToCrud('Categories''fa fa-file-text'ServiceCategories::class);
  66.         yield MenuItem::linkToCrud('Services''fa fa-file-text'Services::class);
  67.         yield MenuItem::section('Employee Invoices');
  68.             
  69.         yield MenuItem::linkToCrud('Invoice''fa fa-file-text'Invoice::class);
  70.             
  71.         yield MenuItem::linkToCrud('Invoice Detail''fa fa-comment'InvoiceDetail::class)->setPermission('ROLE_SUPER_ADMIN');
  72.         // yield MenuItem::linkToRoute('Invoice admin','fa fa-file-text','custom_page_route')->setPermission('ROLE_SUPER_ADMIN');
  73.         yield MenuItem::section('Company Invoices');
  74.             
  75.         yield MenuItem::linkToCrud('General Invoices''fa fa-tags'GeneralInvoice::class);
  76.         yield MenuItem::section('Exhange Rates');
  77.         
  78.         yield MenuItem::linkToCrud('Exchange Rates''fa fa-user'ExchangeRate::class);
  79.         yield MenuItem::section('Users')->setPermission('ROLE_SUPER_ADMIN');
  80.             
  81.         yield MenuItem::linkToCrud('User Table''fa fa-file-text'User::class)->setPermission('ROLE_SUPER_ADMIN');
  82.         yield MenuItem::linkToRoute('New user','fa fa-file-text','app_register')->setPermission('ROLE_SUPER_ADMIN');
  83.     
  84.     
  85.         // yield MenuItem::linkToCrud('The Label', 'fas fa-list', EntityClass::class);
  86.     }
  87.     public function configureAssets(): Assets
  88.     {
  89.         return parent::configureAssets()
  90.             ->addWebpackEncoreEntry('invoicedetails');
  91.     }
  92. }