diff --git a/assets/controllers/loading_controller.js b/assets/controllers/loading_controller.js new file mode 100644 index 0000000..ec87b76 --- /dev/null +++ b/assets/controllers/loading_controller.js @@ -0,0 +1,11 @@ +import { Controller} from '@hotwired/stimulus' + +export default class extends Controller { + + static targets = [ 'indicator' ] + static classes = [ 'hidden' ] + + toggle() { + this.indicatorTarget.classList.remove(this.hiddenClass) + } +} \ No newline at end of file diff --git a/src/Controller/Booking/EditController.php b/src/Controller/Booking/EditController.php index 61b3a4f..2b59da4 100644 --- a/src/Controller/Booking/EditController.php +++ b/src/Controller/Booking/EditController.php @@ -82,8 +82,6 @@ class EditController extends AbstractController $form = $this->createForm(BookingType::class, $formData, [ 'attr' => ['novalidate' => 'novalidate'], - 'hx_post' => $this->generateUrl('app_booking_edit', ['id' => $id]), - 'hx_target' => '#myep', ]); $form->handleRequest($request); diff --git a/src/Controller/IndexController.php b/src/Controller/IndexController.php deleted file mode 100644 index 4b88b2c..0000000 --- a/src/Controller/IndexController.php +++ /dev/null @@ -1,18 +0,0 @@ -render('index/index.html.twig'); - } -} \ No newline at end of file diff --git a/src/Controller/PersonalDataController.php b/src/Controller/PersonalDataController.php index d7adc7a..e7f0506 100644 --- a/src/Controller/PersonalDataController.php +++ b/src/Controller/PersonalDataController.php @@ -34,8 +34,6 @@ class PersonalDataController extends AbstractController $personalDataForm = $this->createForm(PersonalDataType::class, $personalData, [ 'attr' => ['novalidate' => 'novalidate'], - 'hx_post' => $this->generateUrl('app_personal_data'), - 'hx_target' => '#myep', ]); $personalDataForm->handleRequest($request); diff --git a/src/Controller/SecurityController.php b/src/Controller/SecurityController.php index 0bba6db..0f25ab0 100644 --- a/src/Controller/SecurityController.php +++ b/src/Controller/SecurityController.php @@ -10,7 +10,7 @@ use Symfony\Component\Security\Http\Authentication\AuthenticationUtils; class SecurityController extends AbstractController { - #[Route('/login', name: 'app_login')] + #[Route('/', name: 'app_login')] #[IsGranted('PUBLIC_ACCESS')] public function login(AuthenticationUtils $authenticationUtils): Response { diff --git a/src/EventListener/LogoutListener.php b/src/EventListener/LogoutListener.php deleted file mode 100644 index e224d40..0000000 --- a/src/EventListener/LogoutListener.php +++ /dev/null @@ -1,21 +0,0 @@ -setResponse(new HxRedirectResponse($this->urlGenerator->generate('app_index'))); - } -} diff --git a/src/Form/Extension/HtmxSubmitExtension.php b/src/Form/Extension/HtmxSubmitExtension.php deleted file mode 100644 index a57fdec..0000000 --- a/src/Form/Extension/HtmxSubmitExtension.php +++ /dev/null @@ -1,50 +0,0 @@ -setDefaults([ - 'hx_post' => null, - 'hx_target' => '#htmx-modal', - 'hx_swap' => 'outerHTML', - 'hx_indicator' => '#loading-indicator', - 'hx_trigger' => null, - 'hx_select' => null, - ]); - } - - public function buildView(FormView $view, FormInterface $form, array $options): void - { - if (null !== $options['hx_post']) { - $attr = [ - 'hx-post' => $options['hx_post'], - 'hx-target' => $options['hx_target'], - 'hx-swap' => $options['hx_swap'], - ]; - if (null !== $options['hx_indicator']) { - $attr['hx-indicator'] = $options['hx_indicator']; - } - if (null !== $options['hx_trigger']) { - $attr['hx-trigger'] = $options['hx_trigger']; - } - if (null !== $options['hx_select']) { - $attr['hx-select'] = $options['hx_select']; - } - $view->vars['attr'] = array_merge($view->vars['attr'], $attr); - } - } - - public static function getExtendedTypes(): iterable - { - return [FormType::class]; - } -} diff --git a/src/Htmx/HxRedirectResponse.php b/src/Htmx/HxRedirectResponse.php deleted file mode 100644 index 92d6361..0000000 --- a/src/Htmx/HxRedirectResponse.php +++ /dev/null @@ -1,13 +0,0 @@ - $url]); - } -} \ No newline at end of file diff --git a/src/Htmx/HxTriggerResponse.php b/src/Htmx/HxTriggerResponse.php deleted file mode 100644 index fc96535..0000000 --- a/src/Htmx/HxTriggerResponse.php +++ /dev/null @@ -1,13 +0,0 @@ - $trigger]); - } -} diff --git a/src/Menu/MenuBuilder.php b/src/Menu/MenuBuilder.php index 4541aba..986b799 100644 --- a/src/Menu/MenuBuilder.php +++ b/src/Menu/MenuBuilder.php @@ -24,12 +24,14 @@ class MenuBuilder 'route' => 'app_personal_data', 'linkAttributes' => [ 'title' => 'Persönliche Daten', + 'data-action' => 'loading#toggle', ], ]); $menu->addChild('Meine Buchungen', [ 'route' => 'app_bookings', 'linkAttributes' => [ 'title' => 'Meine Buchungen', + 'data-action' => 'loading#toggle', ], 'extras' => [ 'routes' => [ @@ -41,6 +43,7 @@ class MenuBuilder 'route' => 'app_logout', 'linkAttributes' => [ 'title' => 'Logout', + 'data-action' => 'loading#toggle', ], ]); diff --git a/templates/_partials/_loading_indicator.html.twig b/templates/_partials/_loading_indicator.html.twig new file mode 100644 index 0000000..08857bb --- /dev/null +++ b/templates/_partials/_loading_indicator.html.twig @@ -0,0 +1,4 @@ +