fix: ajax form submit, alert render on mobile

This commit is contained in:
2025-07-23 22:48:36 -05:00
parent 75e9c1e8c3
commit d1ae26db45
4 changed files with 9 additions and 42 deletions

View File

@@ -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,

View File

@@ -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