<?php
declare(strict_types=1);
namespace App\Menu;
use App\Entity\User\AdminUser;
use Arobases\SyliusRightsManagementPlugin\Provider\CurrentAdminUserProviderInterface;
use Sylius\Bundle\UiBundle\Menu\Event\MenuBuilderEvent;
final class AdminMenuListener
{
private CurrentAdminUserProviderInterface $currentAdminUserProvider;
public function __construct(CurrentAdminUserProviderInterface $currentAdminUserProvider)
{
$this->currentAdminUserProvider = $currentAdminUserProvider;
}
public function addAdminMenuItems(MenuBuilderEvent $event): void
{
$menu = $event->getMenu();
// CATALOGUE
$menu->getChild('catalog')->addChild('product_files', [
'route' => 'app_admin_product_file_index',
])->setLabel('app.menu.admin.product_files')->setLabelAttribute('icon', 'file');
$menu->getChild('catalog')->addChild('supplier', [
'route' => 'app_admin_supplier_index',
])->setLabel('app.ui.suppliers')->setLabelAttribute('icon', 'users');
$menu->getChild('catalog')->addChild('brand', [
'route' => 'app_admin_brand_index',
])->setLabel('app.menu.admin.brands')->setLabelAttribute('icon', 'building');
$menu->getChild('catalog')->addChild('imports', [
'route' => 'app_admin_imports_index',
])->setLabel('app.menu.admin.imports')->setLabelAttribute('icon', 'upload');
$menu->getChild('catalog')->addChild('exports', [
'route' => 'app_admin_export_index',
])->setLabel('app.menu.admin.exports')->setLabelAttribute('icon', 'download');
// VENTES
$menu->getChild('sales')->addChild('forgotten_cart', [
'route' => 'app_admin_forgotten_cart_index',
])->setLabel('app.menu.admin.list_forgotten_carts')->setLabelAttribute('icon', 'cart');
$menu->getChild('sales')->addChild('order_status', [
'route' => 'app_admin_order_status_index',
])->setLabel('app.menu.admin.order_status')->setLabelAttribute('icon', 'cart');
$menu->getChild('sales')->addChild('availability_notifier', [
'route' => 'app_admin_availability_notifier_index',
])->setLabel('app.menu.admin.availability_notifier')->setLabelAttribute('icon', 'users');
$menu->getChild('sales')->addChild('accounting_export', [
'route' => 'app_admin_accounting_export_index',
])->setLabel('app.menu.admin.accounting_export')->setLabelAttribute('icon', 'barcode');
$menu->getChild('sales')->addChild('reliquat', [
'route' => 'app_admin_reliquat_index',
])->setLabel('app.ui.reliquats')->setLabelAttribute('icon', 'options');
// MARKETING
$menu->getChild('monsieurbiz.statistics')->addChild('activity_report', [
'route' => 'app_admin_statistic_report_index',
])->setLabel('app.menu.admin.activity_report')->setLabelAttribute('icon', 'barcode');
$menu->getChild('monsieurbiz.statistics')->addChild('sales_journal', [
'route' => 'app_admin_statistics_sales_index',
])->setLabel('app.menu.admin.sales_journal')->setLabelAttribute('icon', 'cart');
// CONFIGURATION
$menu->getChild('configuration')->addChild('parameter', [
'route' => 'app_admin_parameter_index',
])->setLabel('app.menu.admin.parameters')->setLabelAttribute('icon', 'users');
$menu->getChild('configuration')->addChild('shipping_delays', [
'route' => 'app_admin_shipping_delays_dispatch_index',
])->setLabel('app.menu.admin.shipping_delays')->setLabelAttribute('icon', 'time');
// GESTION DE CONTENTU
$cms_menu = $menu->getChild('bitbag_cms');
$menu->getChild('bitbag_cms')->addChild('partners', [
'route' => 'app_admin_partner_index',
])->setLabel('app.menu.admin.partners')->setLabelAttribute('icon', 'users');
$menu->getChild('bitbag_cms')->addChild('email', [
'route' => 'app_admin_email_index',
])->setLabel('app.menu.admin.emails')->setLabelAttribute('icon', 'users');
$menu->getChild('bitbag_cms')->addChild('form_response', [
'route' => 'app_admin_form_response_index',
])->setLabel('app.menu.admin.form_response')->setLabelAttribute('icon', 'users');
$menu->getChild('bitbag_cms')->addChild('contact_subject', [
'route' => 'app_admin_contact_subject_index',
])->setLabel('app.menu.admin.contact_subject')->setLabelAttribute('icon', 'users');
$menu->getChild('bitbag_cms')->addChild('page_meta', [
'route' => 'app_admin_page_meta_index',
])->setLabel('app.ui.page_metas')->setLabelAttribute('icon', 'file');
$menu->getChild('bitbag_cms')->addChild('popup', [
'route' => 'app_admin_popup_index',
])->setLabel('app.menu.admin.popups')->setLabelAttribute('icon', 'window restore');
$menu->getChild('bitbag_cms')->addChild('faq_category', [
'route' => 'app_admin_faq_category_index',
])->setLabel('app.menu.admin.faq_category')->setLabelAttribute('icon', 'users');
$cms_menu->reorderChildren(['partners', 'contact_subject', 'email', 'form_response', 'blocks', 'media', 'pages', 'faq', 'faq_category', 'sections', 'page_meta', 'popup']);
// STATISTIQUES
$statistics_menu = $menu->getChild('monsieurbiz.statistics');
$statistics_menu->addChild('no_result_search', [
'route' => 'app_admin_no_result_search_index',
])->setLabel('app.menu.admin.no_result_search')->setLabelAttribute('icon', 'help');
// Newsletter
$menu->addChild('mailchimp')->setLabel('app.menu.admin.newsletters');
$menu->getChild('mailchimp')->addChild('newsletter', [
'route' => 'app_admin_newsletter_index',
])->setLabel('app.menu.admin.newsletters')->setLabelAttribute('icon', 'mail');
$menu->getChild('mailchimp')->addChild('newsletter_scheduler', [
'route' => 'app_admin_newsletter_scheduler_index',
])->setLabel('app.menu.admin.newsletters_scheduler')->setLabelAttribute('icon', 'time');
}
}