diff --git a/src/User/Framework/Controller/Web/PreferencesController.php b/src/User/Framework/Controller/Web/PreferencesController.php index 5630276..f2ef2bc 100644 --- a/src/User/Framework/Controller/Web/PreferencesController.php +++ b/src/User/Framework/Controller/Web/PreferencesController.php @@ -45,7 +45,7 @@ class PreferencesController extends AbstractController ); } - #[Route('/user/preferences', 'app_user_preferences_submit', methods: ['POST'])] + #[Route('/user/preferences/media', 'app_user_media_preferences_submit', methods: ['POST'])] public function mediaPreferencesSubmit( Request $request, SaveUserMediaPreferencesHandler $saveUserMediaPreferencesHandler @@ -56,14 +56,12 @@ class PreferencesController extends AbstractController $form = $this->createForm(UserMediaPreferencesForm::class, $formData); $form->handleRequest($request); + if ($form->isSubmitted() && $form->isValid()) { $saveUserMediaPreferencesHandler->handle( SaveUserMediaPreferencesCommand::fromUserMediaPreferencesForm($form) ); - $this->broadcaster->alert( - title: 'Success', - message: 'Your media preferences have been saved.' - ); + $this->broadcaster->alert('Success', 'Your media preferences have been saved.'); } return $this->render( @@ -75,38 +73,6 @@ class PreferencesController extends AbstractController ); } - #[Route('/user/preferences/media', 'app_save_media_preferences', methods: ['POST'])] - public function saveMediaPreferences( - SaveUserMediaPreferencesInput $input, - SaveUserMediaPreferencesHandler $saveUserMediaPreferencesHandler, - ): Response - { - $saveUserMediaPreferencesHandler->handle($input->toCommand()); - $mediaPreferences = $this->getUser()->getMediaPreferences(); - $downloadPreferences = $this->getUser()->getDownloadPreferences(); - - $languages = CountryLanguages::$languages; - sort($languages); - - $this->broadcaster->alert( - title: 'Success', - message: 'Your media preferences have been saved.' - ); - - return $this->render( - 'user/preferences.html.twig', - [ - 'preferences' => $this->preferencesRepository->findEnabled(), - 'languages' => $languages, - 'providers' => ProviderList::$providers, - 'qualities' => QualityList::getBaseQualities(), - 'mediaPreferences' => $mediaPreferences, - 'downloadPreferences' => $downloadPreferences, - 'filterForm' => $this->createForm(GettingStartedFilterForm::class ?? null), - ] - ); - } - #[Route('/user/preferences/download', 'app_save_download_preferences', methods: ['POST'])] public function saveDownloadPreferences( SaveUserDownloadPreferencesInput $input, diff --git a/src/User/Framework/Form/UserMediaPreferencesForm.php b/src/User/Framework/Form/UserMediaPreferencesForm.php index 29626fd..c194a98 100644 --- a/src/User/Framework/Form/UserMediaPreferencesForm.php +++ b/src/User/Framework/Form/UserMediaPreferencesForm.php @@ -33,7 +33,6 @@ class UserMediaPreferencesForm extends AbstractType private function addChoiceField(FormBuilderInterface $builder, string $fieldName, array $choices): void { $question = [ - 'action' => $this->urlGenerator->generate('app_user_preferences_submit'), 'attr' => ['class' => 'w-64 text-input mb-4'], 'label_attr' => ['class' => 'w-64 text-white block font-semibold mb-2'], 'choices' => $this->addDefaultChoice($choices), @@ -44,7 +43,9 @@ class UserMediaPreferencesForm extends AbstractType public function configureOptions(OptionsResolver $resolver): void { - $resolver->setDefaults([]); + $resolver->setDefaults([ + 'action' => $this->urlGenerator->generate('app_user_media_preferences_submit'), + ]); } private function getPreferenceChoices(string $preference): array diff --git a/templates/components/Alert.html.twig b/templates/components/Alert.html.twig index bba739e..69b85a3 100644 --- a/templates/components/Alert.html.twig +++ b/templates/components/Alert.html.twig @@ -1,6 +1,6 @@ \ No newline at end of file diff --git a/templates/components/Header.html.twig b/templates/components/Header.html.twig index 73995d8..814a50e 100644 --- a/templates/components/Header.html.twig +++ b/templates/components/Header.html.twig @@ -26,7 +26,7 @@ -
+
    {% for message in app.flashes('warning') %}