<?php
namespace App\Controller\Admin;
use App\Entity\Admin;
use App\Entity\Comanda\Comanda;
use App\Entity\Comanda\ComandaStatus;
use App\Entity\Cont;
use App\Entity\Produs\Produs;
use App\Entity\Roveli\Produs\RoveliCaracteristica;
use App\Entity\Roveli\Produs\RoveliCategorie;
use App\Manager\Ping\PingComandaManager;
use App\Manager\Ping\PingRoveliManager;
use EasyCorp\Bundle\EasyAdminBundle\Config\Action;
use EasyCorp\Bundle\EasyAdminBundle\Config\Actions;
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 Symfony\Bridge\Twig\Extension\TranslationExtension;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class DashboardController extends AbstractDashboardController
{
private $pingComandaManager;
private $pingRoveliManager;
public function __construct(PingComandaManager $pingComandaManager, PingRoveliManager $pingRoveliManager)
{
$this->pingComandaManager = $pingComandaManager;
$this->pingRoveliManager = $pingRoveliManager;
}
/**
* @Route("/", name="admin")
* @Route("/", name="admin_dashboard")
*/
public function index(): Response
{
$params = ['sumar' => []];
$params['sumar']['pingComanda'] = [
'nume' => 'Queue API Vanzatori',
'statsCnt' => $this->pingComandaManager->getRamaseDeRulatCount(),
'url' => '',
'icon' => 'fa-cloud-upload',
'background' => 'bg-secondary',
'color' => '',
];
$params['sumar']['pingRoveli'] = [
'nume' => 'Queue API ROVELI',
'statsCnt' => $this->pingRoveliManager->getRamaseDeRulatCount(),
'url' => '',
'icon' => 'fa-upload',
'background' => 'bg-secondary',
'color' => '',
];
return $this->render('admin/dashboard.html.twig', $params);
}
public function configureCrud(): Crud
{
return parent::configureCrud()
->setDateFormat('dd.MM.y')
->setTimeFormat('HH:mm')
->setDateTimeFormat('dd.MM.y HH:mm')
->setDateIntervalFormat('%%d zile %%m luni %%y ani')
->setNumberFormat('%.2d')
->setPaginatorPageSize(50)
->setDefaultSort(['id' => 'DESC'])
->showEntityActionsInlined(true)
;
}
public function configureActions(): Actions
{
$actions = parent::configureActions();
$actions->update(Crud::PAGE_INDEX, Action::EDIT, function (Action $action) {
return $action->setIcon('fa fa-edit')->setLabel(false)->addCssClass('btn btn-sm btn-outline-primary');
});
// $actions->update(Crud::PAGE_DETAIL, Action::EDIT, function (Action $action) {
// return $action->setIcon('fa fa-edit')->setLabel(false)->addCssClass('btn btn-sm btn-outline-primary');
// });
$actions->update(Crud::PAGE_INDEX, Action::DELETE, function (Action $action) {
return $action->setIcon('fa fa-trash')->setLabel(false)->setCssClass('action-delete btn btn-sm btn-outline-danger');
});
// $actions->update(Crud::PAGE_DETAIL, Action::DELETE, function (Action $action) {
// return $action->setIcon('fa fa-trash')->setLabel(false)->setCssClass('action-delete btn btn-sm btn-outline-danger');
// });
return $actions;
}
public function configureDashboard(): Dashboard
{
return Dashboard::new()
->setTitle($this->get('twig')->getExtension(TranslationExtension::class)->trans('site.nume', [], 'admin'))
->setTranslationDomain('admin')
->renderContentMaximized(true)
->renderSidebarMinimized(true)
;
}
public function configureMenuItems(): iterable
{
// yield MenuItem::linkToDashboard('Dashboard', 'fa fa-home');
yield MenuItem::subMenu('meniu.sectiune.vanzari', 'fa fa-store')->setSubItems([
MenuItem::linkToCrud('meniu.comanda', 'fa fa-shopping-cart', Comanda::class),
])->setPermission('ROLE_SUPER_ADMIN');
yield MenuItem::subMenu('meniu.sectiune.catalog.roveli', 'fa fa-bank')->setSubItems([
MenuItem::linkToCrud('meniu.roveli.categorie', 'fa fa-th-large', RoveliCategorie::class),
MenuItem::linkToCrud('meniu.roveli.caracteristica', 'fa fa-th', RoveliCaracteristica::class),
])->setPermission('ROLE_SUPER_ADMIN');
yield MenuItem::subMenu('meniu.sectiune.catalog.vanzator', 'fa fa-book')->setSubItems([
MenuItem::linkToCrud('meniu.produs', 'fa fa-boxes', Produs::class),
])->setPermission('ROLE_SUPER_ADMIN');
yield MenuItem::subMenu('meniu.sectiune.super_setari', 'fa fa-cogs')->setSubItems([
MenuItem::linkToCrud('meniu.cont', 'fa fa-briefcase', Cont::class),
MenuItem::linkToCrud('meniu.admin', 'fa fa-users', Admin::class),
MenuItem::linkToCrud('meniu.comandaStatus', 'fa fa-tag', ComandaStatus::class),
])->setPermission('ROLE_SUPER_ADMIN');
// yield MenuItem::linkToCrud('The Label', 'fas fa-list', EntityClass::class);
}
}