<?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\Controller\AbstractCrudController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use App\Entity\Alergeno;
use App\Entity\CategoriaComida;
use App\Entity\CategoriaIngrediente;
use App\Entity\Coletilla;
use App\Entity\Comida;
use App\Entity\ComidaIngredientesReceta;
use App\Entity\Consejo;
use App\Entity\Conversacion;
use App\Entity\DatoCurioso;
use App\Entity\Feed;
use App\Entity\Imagen;
use App\Entity\Ingrediente;
use App\Entity\PerfilAlimentacion;
use App\Entity\Pregunta;
use App\Entity\Respuesta;
use App\Entity\TomasComida;
use App\Entity\User;
use EasyCorp\Bundle\EasyAdminBundle\Config\UserMenu;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\RequestStack;
use Symfony\Component\Security\Core\User\UserInterface;
class DashboardController extends AbstractDashboardController
{
public function __construct(RequestStack $requestStack)
{
$this->request = $requestStack->getCurrentRequest();
}
/**
* @Route("/admin", name="admin")
*/
public function index(): Response
{
return parent::index();
}
public function configureDashboard(): Dashboard
{
return Dashboard::new()
->setTitle('Comoconsalud');
}
public function configureUserMenu(UserInterface $user): UserMenu
{
$locale = $this->request->getLocale();
return parent::configureUserMenu($user)
->addMenuItems([
MenuItem::linkToRoute('Español', 'fa fa-language', 'lang', ['_locale' => 'es'])->setCssClass($locale == 'es' ? 'active' : ''),
MenuItem::linkToRoute('Italiano', 'fa fa-language', 'lang', ['_locale' => 'it'])->setCssClass($locale == 'it' ? 'active' : ''),
MenuItem::linkToRoute('Ingles', 'fa fa-language', 'lang', ['_locale' => 'en'])->setCssClass($locale == 'en' ? 'active' : ''),
])
->setAvatarUrl('assets/images/flags/'. strtoupper($locale) .'.png')
;
}
public function configureMenuItems(): iterable
{
yield MenuItem::linkToDashboard('Dashboard', 'fa fa-home');
// yield MenuItem::linkToCrud('The Label', 'fas fa-list', EntityClass::class);
yield MenuItem::section('Contacto');
yield MenuItem::linkToCrud('Feedback', 'fa fa-inbox', Feed::class);
yield MenuItem::section('Probar');
yield MenuItem::linkToRoute('Alexa', 'fab fa-amazon', 'app_alexa');
yield MenuItem::linkToRoute('Chat debug', 'fab fa-whatsapp', 'app_jovo');
yield MenuItem::linkToRoute('FB messenger', 'fab fa-facebook-messenger', 'app_messenger');
yield MenuItem::linkToUrl('Telegram bot', 'fab fa-telegram', 'https://t.me/comoconsalud_bot')->setLinkTarget('_blank');
yield MenuItem::section('Datos');
yield MenuItem::linkToCrud('Usuarios', 'fa fa-user', User::class);
yield MenuItem::linkToCrud('Perfiles de usuario', 'fa fa-id-card', PerfilAlimentacion::class)->setQueryParameter('filters[tipo][comparison]', '=')->setQueryParameter('filters[tipo][value]', '1');
yield MenuItem::section('Conversación');
yield MenuItem::linkToCrud('Conversaciones', 'fa fa-comment', Conversacion::class);
yield MenuItem::linkToCrud('Respuestas', 'fa fa-align-left', Respuesta::class);
yield MenuItem::linkToCrud('Coletillas', 'fa fa-comment-dots', Coletilla::class);
yield MenuItem::linkToCrud('Datos curiosos', 'fa fa-comment-smile', DatoCurioso::class);
yield MenuItem::linkToCrud('Consejos', 'fa fa-comment-check', Consejo::class);
yield MenuItem::linkToCrud('Preguntas', 'fa fa-question-circle', Pregunta::class);
yield MenuItem::section('Alimentación');
yield MenuItem::linkToCrud('Categorias', 'fa fa-egg', CategoriaComida::class);
yield MenuItem::linkToCrud('Grupo de ingredientes', 'fa fa-egg', CategoriaIngrediente::class);
yield MenuItem::linkToCrud('Comidas', 'fa fa-bread-slice', Comida::class);
yield MenuItem::linkToCrud('Perfiles de comida', 'fa fa-bread-slice', PerfilAlimentacion::class)->setQueryParameter('filters[tipo][comparison]', '=')->setQueryParameter('filters[tipo][value]', '2');
yield MenuItem::linkToCrud('Ingredientes', 'fa fa-carrot', Ingrediente::class);
yield MenuItem::linkToCrud('Comida-ingredientes', 'fa fa-carrot', ComidaIngredientesReceta::class);
yield MenuItem::linkToCrud('Perfiles de ingredientes', 'fa fa-carrot', PerfilAlimentacion::class)->setQueryParameter('filters[tipo][comparison]', '=')->setQueryParameter('filters[tipo][value]', '3');
yield MenuItem::linkToCrud('Alergenos', 'fa fa-pepper-hot', Alergeno::class);
yield MenuItem::linkToCrud('Tomas diarias', 'fa fa-chart-pie', TomasComida::class);
yield MenuItem::section('Media');
yield MenuItem::linkToCrud('Imagenes', 'fa fa-file-image', Imagen::class);
yield MenuItem::linkToRoute('Vídeos', 'fa fa-file-video', 'route_name');
yield MenuItem::linkToRoute('Audio', 'fa fa-file-audio', 'route_name');
yield MenuItem::section('');
yield MenuItem::linkToLogout('Logout', 'fa fa-sign-out-alt');
}
}