src/Controller/Admin/DashboardController.php line 40

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Admin;
  3. use App\Entity\Admin;
  4. use App\Entity\Comanda\Comanda;
  5. use App\Entity\Comanda\ComandaStatus;
  6. use App\Entity\Cont;
  7. use App\Entity\Produs\Produs;
  8. use App\Entity\Roveli\Produs\RoveliCaracteristica;
  9. use App\Entity\Roveli\Produs\RoveliCategorie;
  10. use App\Manager\Ping\PingComandaManager;
  11. use App\Manager\Ping\PingRoveliManager;
  12. use EasyCorp\Bundle\EasyAdminBundle\Config\Action;
  13. use EasyCorp\Bundle\EasyAdminBundle\Config\Actions;
  14. use EasyCorp\Bundle\EasyAdminBundle\Config\Crud;
  15. use EasyCorp\Bundle\EasyAdminBundle\Config\Dashboard;
  16. use EasyCorp\Bundle\EasyAdminBundle\Config\MenuItem;
  17. use EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractDashboardController;
  18. use Symfony\Bridge\Twig\Extension\TranslationExtension;
  19. use Symfony\Component\HttpFoundation\Response;
  20. use Symfony\Component\Routing\Annotation\Route;
  21. class DashboardController extends AbstractDashboardController
  22. {
  23.     private $pingComandaManager;
  24.     private $pingRoveliManager;
  25.     public function __construct(PingComandaManager $pingComandaManager, PingRoveliManager $pingRoveliManager)
  26.     {
  27.         $this->pingComandaManager = $pingComandaManager;
  28.         $this->pingRoveliManager = $pingRoveliManager;
  29.     }
  30.     /**
  31.      * @Route("/", name="admin")
  32.      * @Route("/", name="admin_dashboard")
  33.      */
  34.     public function index(): Response
  35.     {
  36.         $params = ['sumar' => []];
  37.         $params['sumar']['pingComanda'] = [
  38.             'nume' => 'Queue API Vanzatori',
  39.             'statsCnt' => $this->pingComandaManager->getRamaseDeRulatCount(),
  40.             'url' => '',
  41.             'icon' => 'fa-cloud-upload',
  42.             'background' => 'bg-secondary',
  43.             'color' => '',
  44.         ];
  45.         $params['sumar']['pingRoveli'] = [
  46.             'nume' => 'Queue API ROVELI',
  47.             'statsCnt' => $this->pingRoveliManager->getRamaseDeRulatCount(),
  48.             'url' => '',
  49.             'icon' => 'fa-upload',
  50.             'background' => 'bg-secondary',
  51.             'color' => '',
  52.         ];
  53.         return $this->render('admin/dashboard.html.twig', $params);
  54.     }
  55.     public function configureCrud(): Crud
  56.     {
  57.         return parent::configureCrud()
  58.                         ->setDateFormat('dd.MM.y')
  59.                         ->setTimeFormat('HH:mm')
  60.                         ->setDateTimeFormat('dd.MM.y HH:mm')
  61.                         ->setDateIntervalFormat('%%d zile %%m luni %%y ani')
  62.                         ->setNumberFormat('%.2d')
  63.                         ->setPaginatorPageSize(50)
  64.                         ->setDefaultSort(['id' => 'DESC'])
  65.                         ->showEntityActionsInlined(true)
  66.         ;
  67.     }
  68.     public function configureActions(): Actions
  69.     {
  70.         $actions = parent::configureActions();
  71.         $actions->update(Crud::PAGE_INDEX, Action::EDIT, function (Action $action) {
  72.             return $action->setIcon('fa fa-edit')->setLabel(false)->addCssClass('btn btn-sm btn-outline-primary');
  73.         });
  74. //        $actions->update(Crud::PAGE_DETAIL, Action::EDIT, function (Action $action) {
  75. //            return $action->setIcon('fa fa-edit')->setLabel(false)->addCssClass('btn btn-sm btn-outline-primary');
  76. //        });
  77.         $actions->update(Crud::PAGE_INDEX, Action::DELETE, function (Action $action) {
  78.             return $action->setIcon('fa fa-trash')->setLabel(false)->setCssClass('action-delete btn btn-sm btn-outline-danger');
  79.         });
  80. //        $actions->update(Crud::PAGE_DETAIL, Action::DELETE, function (Action $action) {
  81. //            return $action->setIcon('fa fa-trash')->setLabel(false)->setCssClass('action-delete btn btn-sm btn-outline-danger');
  82. //        });
  83.         return $actions;
  84.     }
  85.     public function configureDashboard(): Dashboard
  86.     {
  87.         return Dashboard::new()
  88.                         ->setTitle($this->get('twig')->getExtension(TranslationExtension::class)->trans('site.nume', [], 'admin'))
  89.                         ->setTranslationDomain('admin')
  90.                         ->renderContentMaximized(true)
  91.                         ->renderSidebarMinimized(true)
  92.         ;
  93.     }
  94.     public function configureMenuItems(): iterable
  95.     {
  96. //        yield MenuItem::linkToDashboard('Dashboard', 'fa fa-home');
  97.         yield MenuItem::subMenu('meniu.sectiune.vanzari', 'fa fa-store')->setSubItems([
  98.                     MenuItem::linkToCrud('meniu.comanda', 'fa fa-shopping-cart', Comanda::class),
  99.                 ])->setPermission('ROLE_SUPER_ADMIN');
  100.         yield MenuItem::subMenu('meniu.sectiune.catalog.roveli', 'fa fa-bank')->setSubItems([
  101.                     MenuItem::linkToCrud('meniu.roveli.categorie', 'fa fa-th-large', RoveliCategorie::class),
  102.                     MenuItem::linkToCrud('meniu.roveli.caracteristica', 'fa fa-th', RoveliCaracteristica::class),
  103.                 ])->setPermission('ROLE_SUPER_ADMIN');
  104.         yield MenuItem::subMenu('meniu.sectiune.catalog.vanzator', 'fa fa-book')->setSubItems([
  105.                     MenuItem::linkToCrud('meniu.produs', 'fa fa-boxes', Produs::class),
  106.                 ])->setPermission('ROLE_SUPER_ADMIN');
  107.         yield MenuItem::subMenu('meniu.sectiune.super_setari', 'fa fa-cogs')->setSubItems([
  108.                     MenuItem::linkToCrud('meniu.cont', 'fa fa-briefcase', Cont::class),
  109.                     MenuItem::linkToCrud('meniu.admin', 'fa fa-users', Admin::class),
  110.                     MenuItem::linkToCrud('meniu.comandaStatus', 'fa fa-tag', ComandaStatus::class),
  111.                 ])->setPermission('ROLE_SUPER_ADMIN');
  112.         // yield MenuItem::linkToCrud('The Label', 'fas fa-list', EntityClass::class);
  113.     }
  114. }