WIP: Implement frontend

This commit is contained in:
Björn Fromme committed 2023-09-18 13:10:20 +02:00
1 parent bfc5e5e242
commit ce97017ac4
70 files changed
+8751 -337

No files matched your search

@@ -0,0 +1,32 @@
<?php
namespace App\Form\Extension;
use Symfony\Component\Form\AbstractTypeExtension;
use Symfony\Component\Form\Extension\Core\Type\FormType;
use Symfony\Component\Form\FormInterface;
use Symfony\Component\Form\FormView;
use Symfony\Component\OptionsResolver\OptionsResolver;
class AjaxSubmitExtension extends AbstractTypeExtension
{
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'ajax_submit' => false,
'ajax_action' => 'ajax-modal#submitForm',
]);
}
public function buildView(FormView $view, FormInterface $form, array $options): void
{
if (true === $options['ajax_submit']) {
$view->vars['attr'] = array_merge($view->vars['attr'], ['data-action' => $options['ajax_action']]);
}
}
public static function getExtendedTypes(): iterable
{
return [FormType::class];
}
}
@@ -0,0 +1,29 @@
<?php
namespace App\Form\Extension;
use Symfony\Component\Form\AbstractTypeExtension;
use Symfony\Component\Form\Extension\Core\Type\FormType;
use Symfony\Component\Form\FormInterface;
use Symfony\Component\Form\FormView;
use Symfony\Component\OptionsResolver\OptionsResolver;
class NoValidateExtension extends AbstractTypeExtension
{
public function buildView(FormView $view, FormInterface $form, array $options): void
{
if (false === $options['clientside_validation'] && $form->isRoot()) {
$view->vars['attr'] = array_merge($view->vars['attr'], ['novalidate' => 'novalidate']);
}
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefault('clientside_validation', false);
}
public static function getExtendedTypes(): iterable
{
return [FormType::class];
}
}