namespace ; use App\Core\Controller\Admin\Crud\CrudController; use App\Core\Crud\CrudConfiguration; use App\Core\Crud\Field; use App\Core\Entity\EntityInterface; use App\Core\Manager\EntityManager; use as Entity; use as Factory; use as Type; use as RepositoryQuery; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\Session\Session; use Symfony\Component\Routing\Annotation\Route; class extends CrudController { /** * @Route("/admin//{page}", name="admin__index", methods={"GET"}, requirements={"page":"\d+"}) */ public function index(int $page = 1, RepositoryQuery $query, Request $request, Session $session): Response { return $this->doIndex($page, $query, $request, $session); } /** * @Route("/admin//new", name="admin__new", methods={"GET", "POST"}) */ public function new(Factory $factory, EntityManager $entityManager, Request $request): Response { return $this->doNew($factory->create(), $entityManager, $request); } /** * @Route("/admin//show/{entity}", name="admin__show", methods={"GET"}) */ public function show(Entity $entity): Response { return $this->doShow($entity); } /** * @Route("/admin//filter", name="admin__filter", methods={"GET"}) */ public function filter(Session $session): Response { return $this->doFilter($session); } /** * @Route("/admin//edit/{entity}", name="admin__edit", methods={"GET", "POST"}) */ public function edit(Entity $entity, EntityManager $entityManager, Request $request): Response { return $this->doEdit($entity, $entityManager, $request); } /** * @Route("/admin//sort/{page}", name="admin__sort", methods={"POST"}) */ public function sort(int $page = 1, RepositoryQuery $query, EntityManager $entityManager, Request $request, Session $session): Response { return $this->doSort($page, $query, $entityManager, $request, $session); } /** * @Route("/admin//delete/{entity}", name="admin__delete", methods={"DELETE"}) */ public function delete(Entity $entity, EntityManager $entityManager, Request $request): Response { return $this->doDelete($entity, $entityManager, $request); } protected function getConfiguration(): CrudConfiguration { return CrudConfiguration::create() ->setPageTitle('index', 'List of ') ->setPageTitle('edit', 'Edition of {id}') ->setPageTitle('new', 'New ') ->setPageTitle('show', 'View of {id}') ->setPageRoute('index', 'admin__index') ->setPageRoute('new', 'admin__new') ->setPageRoute('edit', 'admin__edit') ->setPageRoute('show', 'admin__show') ->setPageRoute('delete', 'admin__delete') ->setPageRoute('filter', 'admin__filter') ->setForm('edit', Type::class, []) ->setForm('new', Type::class) // ->setForm('filter', Type::class) // ->setMaxPerPage('index', 20) // ->setAction('index', 'new', true) // ->setAction('index', 'show', true) // ->setAction('index', 'edit', true) // ->setAction('index', 'delete', true) // ->setAction('edit', 'back', true) // ->setAction('edit', 'show', true) // ->setAction('edit', 'delete', true) // ->setField('index', 'Label', Field\TextField::class, [ // 'property' => 'label', // ]) ; } protected function getSection(): string { return ''; } }