<?php
namespace App\Admin\Controller;
use App\Entity\Agreement;
use App\Entity\AvailableItem;
use App\Entity\AvailableList;
use App\Entity\Branch;
use App\Entity\Brand;
use App\Entity\Constant;
use App\Entity\Counterparty;
use App\Entity\Currency;
use App\Entity\Customer;
use App\Entity\DeliveryMethod;
use App\Entity\DocumentType;
use App\Entity\Alert;
use App\Entity\Manager;
use App\Entity\OrderStatus;
use App\Entity\Organization;
use App\Entity\PriceType;
use App\Entity\Product;
use App\Entity\ProductCategory;
use App\Entity\ProductRelated;
use App\Entity\ProductType;
use App\Entity\PromoLabel;
use App\Entity\Property;
use App\Entity\PropertyValue;
use App\Entity\SignatureStatus;
use App\Entity\SignupRequest;
use App\Entity\StoreMap;
use App\Entity\Uom;
use App\Entity\User;
use App\Entity\WaitList;
use App\Zet\ContentBundle\Entity\Banner;
use App\Zet\ContentBundle\Entity\Category;
use App\Zet\ContentBundle\Entity\Content;
use App\Zet\ContentBundle\Entity\ContentBlock;
use App\Zet\DeliveryServiceBundle\Entity\DeliveryCity;
use App\Zet\DeliveryServiceBundle\Entity\DeliveryPoint;
use App\Zet\DeliveryServiceBundle\Entity\DeliveryService;
use App\Zet\V8Bundle\Entity\BadLink;
use App\Zet\V8Bundle\Entity\BadRequest;
use App\Zet\V8Bundle\Entity\Entity1C;
use EasyCorp\Bundle\EasyAdminBundle\Config\Action;
use EasyCorp\Bundle\EasyAdminBundle\Config\Actions;
use EasyCorp\Bundle\EasyAdminBundle\Config\Assets;
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\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use EasyCorp\Bundle\EasyAdminBundle\Router\AdminUrlGenerator;
class DashboardController extends AbstractDashboardController
{
/**
* @Route("/admin", name="admin")
*/
public function index(): Response
{
$routeBuilder = $this->get(AdminUrlGenerator::class);
return $this->redirect($routeBuilder->setController(UserCrudController::class)->generateUrl());
}
public function configureDashboard(): Dashboard
{
return Dashboard::new()
->setTitle('Sexopt');
}
public function configureMenuItems(): iterable
{
yield MenuItem::linkToCrud('Users', 'fa fa-users', User::class);
//SX00016 hide this feature
//yield MenuItem::linkToCrud('Signup requests', 'fa fa-user-plus', SignupRequest::class);
yield MenuItem::linkToCrud('Constants', 'fa fa-fw fa-wrench', Constant::class);
yield MenuItem::linkToCrud('Customers', 'fas fa-user-tie', Customer::class);
yield MenuItem::linkToCrud('Agreements', 'fas fa-handshake', Agreement::class);
yield MenuItem::linkToCrud('Products', 'fa fa-fw fa-file-invoice', Product::class);
yield MenuItem::linkToCrud('WaitList', 'fa fa-book', WaitList::class);
yield MenuItem::section('Settings');
yield MenuItem::linkToCrud('Branches', 'fa fa-fw fa-store', Branch::class);
yield MenuItem::linkToCrud('Product types', 'fa fa-fw fa-layer-group', ProductType::class);
yield MenuItem::linkToCrud('Promo labels', 'fa fa-fw fa-percent', PromoLabel::class);
yield MenuItem::linkToCrud('Delivery methods', 'fa fa-fw fa-truck', DeliveryMethod::class);
yield MenuItem::linkToCrud('Document types', 'fa fa-fw fa-file', DocumentType::class);
yield MenuItem::linkToCrud('Order statuses', 'fa fa-fw fa-money-check', OrderStatus::class);
yield MenuItem::linkToCrud('Alert', 'fa fa-fw fa-exclamation-circle', Alert::class);
yield MenuItem::section('Catalog');
yield MenuItem::linkToCrud('Organizations', 'fa fa-fw fa-building', Organization::class);
yield MenuItem::linkToCrud('Currencies', 'fa fa-fw fa-dollar', Currency::class);
yield MenuItem::linkToCrud('Brands', 'fa fa-fw fa-trademark', Brand::class);
yield MenuItem::linkToCrud('Managers', 'fa fa-fw fa-address-card', Manager::class);
yield MenuItem::linkToCrud('Price types', 'fa fa-fw fa-money-bill', PriceType::class);
yield MenuItem::linkToCrud('Categories', 'fa fa-fw fa-tree', ProductCategory::class);
yield MenuItem::linkToCrud('Properties', 'fa fa-fw fa-grip-horizontal', Property::class);
yield MenuItem::linkToCrud('Product related', 'fa fa-fw fa-link', ProductRelated::class);
yield MenuItem::linkToCrud('Property values', 'fas fa-receipt', PropertyValue::class);
yield MenuItem::linkToCrud('UOM', 'fa fa-fw fa-balance-scale', Uom::class);
yield MenuItem::linkToCrud('Store map', 'fa fa-fw fa-store', StoreMap::class);
yield MenuItem::section('Delivery service');
yield MenuItem::linkToCrud('Services', 'fa fa-fw fa-truck', DeliveryService::class);
yield MenuItem::linkToCrud('Cities', 'fa fa-fw fa-globe', DeliveryCity::class);
yield MenuItem::linkToCrud('Points', 'fa fa-fw fa-map-marker-alt', DeliveryPoint::class);
yield MenuItem::section('Content');
yield MenuItem::linkToCrud('Banners', 'fas fa-flag', Banner::class);
yield MenuItem::linkToCrud('Categories', 'fa fa-fw fa-boxes', Category::class);
yield MenuItem::linkToCrud('Content blocks', 'fa fa-fw fa-comment-alt', ContentBlock::class);
yield MenuItem::linkToCrud('Content', 'fa fa-fw fa-file-alt', Content::class);
yield MenuItem::linkToRoute('File Manager','fa fa-fw fa-files-o ','files');
yield MenuItem::section('V8');
yield MenuItem::linkToCrud('Entities', 'fa fa-fw fa-database', Entity1C::class);
yield MenuItem::linkToCrud('Bad links', 'fa fa-fw fa-link', BadLink::class);
yield MenuItem::linkToCrud('Bad requests', 'fa fa-fw fa-reply', BadRequest::class);
// yield MenuItem::linkToCrud('The Label', 'fas fa-list', EntityClass::class);
}
function configureAssets(): Assets
{
return parent::configureAssets()
->addCssFile('css/admin.css')
->addJsFile('js/admin.js');
#->addJsFile("https://cdnjs.cloudflare.com/ajax/libs/dropzone/5.5.1/min/dropzone.min.js")
#->addCssFile("https://cdnjs.cloudflare.com/ajax/libs/dropzone/5.5.1/min/dropzone.min.css");
}
function configureCrud(): Crud
{
return parent::configureCrud()->setFormThemes(
[
'@A2lixTranslationForm/bootstrap_4_layout.html.twig',
'@EasyAdmin/crud/form_theme.html.twig',
'@FOSCKEditor/Form/ckeditor_widget.html.twig',
'admin/form/fields.html.twig',
'@ZetV8/Form/fields.html.twig',
'@ZetContent/Form/fields.html.twig'
]
);
}
function configureActions(): Actions
{
return parent::configureActions()
->disable('show')
->update(Crud::PAGE_INDEX, Action::EDIT, function ($action) {
/** @var $action Action */
return $action->setIcon('fa fa-fw fa-edit')->setLabel(false);
})->update(Crud::PAGE_INDEX, Action::DELETE, function ($action) {
/** @var $action Action */
return $action->setIcon('fa fa-fw fa-trash')->setLabel(false);
});
}
}