add inline forms
ci/woodpecker/push/woodpecker Pipeline was successful Details
ci/woodpecker/deployment/woodpecker Pipeline was successful Details

This commit is contained in:
Simon Vieille 2023-04-14 11:31:13 +02:00
parent e3a909f18c
commit a1d889e7df
Signed by: deblan
GPG Key ID: 579388D585F70417
2 changed files with 49 additions and 0 deletions

View File

@ -43,6 +43,7 @@ class CategoryAdminController extends CrudController
->setMaxPerPage('index', 100)
->setView('form', 'blog/category_admin/_form.html.twig')
->setDoubleClick('index', true)
->setDefaultSort('index', 'title', 'asc')

View File

@ -23,6 +23,10 @@ use App\Core\Entity\EntityInterface;
use App\Entity\Blog\Post;
use App\Analytic\DateRangeAnalytic;
use App\Core\Repository\Site\NodeRepository;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\Extension\Core\Type\DateTimeType;
use Symfony\Component\Validator\Constraints\NotBlank;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
#[Route(path: '/admin/blog/post')]
class PostAdminController extends CrudController
@ -37,6 +41,7 @@ class PostAdminController extends CrudController
->setPageRoute('index', 'admin_blog_post_index')
->setPageRoute('edit', 'admin_blog_post_edit')
->setPageRoute('inline_edit', 'admin_blog_post_inline_edit')
->setPageRoute('new', 'admin_blog_post_new')
->setPageRoute('show', 'admin_blog_post_show')
->setPageRoute('delete', 'admin_blog_post_delete')
@ -54,6 +59,7 @@ class PostAdminController extends CrudController
->setView('edit', 'blog/post_admin/edit.html.twig')
->setView('show', 'blog/post_admin/show.html.twig')
->setView('index', 'blog/post_admin/index.html.twig')
->setDoubleClick('index', true)
->setDefaultSort('index', 'id', 'desc')
->setField('index', 'Titre', TextField::class, [
@ -79,11 +85,47 @@ class PostAdminController extends CrudController
'format' => 'd/m/Y H:i',
'sort' => ['publishedAt', '.publishedAt'],
'attr' => ['class' => 'miw-200'],
'inline_form' => function(FormBuilderInterface $builder) {
$builder->add(
'publishedAt',
DateTimeType::class,
[
'label' => 'Date de publication',
'required' => false,
'html5' => true,
'widget' => 'single_text',
'attr' => [
'data-datetime' => '',
],
'constraints' => [
],
]
);
},
])
->setField('index', 'Status', TextField::class, [
'view' => 'blog/post_admin/field/status.html.twig',
'sort' => ['status', '.status'],
'attr' => ['class' => 'miw-100'],
'inline_form' => function(FormBuilderInterface $builder) {
$builder->add(
'status',
ChoiceType::class,
[
'label' => 'Statut',
'required' => true,
'choices' => [
'Brouillon' => Entity::DRAFT,
'Publié' => Entity::PUBLISHED,
],
'attr' => [
],
'constraints' => [
new NotBlank(),
],
]
);
}
])
->setBatchAction('index', 'delete', 'Delete', function(EntityInterface $entity, EntityManager $manager) {
$manager->delete($entity);
@ -145,6 +187,12 @@ class PostAdminController extends CrudController
);
}
#[Route(path: "/inline_edit/{entity}/{context}/{label}", name: 'admin_blog_post_inline_edit', methods: ['GET', 'POST'])]
public function inlineEdit(string $context, string $label, Entity $entity, EntityManager $entityManager, Request $request): Response
{
return $this->doInlineEdit($context, $label, $entity, $entityManager, $request);
}
#[Route(path: '/show/{entity}', name: 'admin_blog_post_show')]
public function show(Entity $entity): Response
{