getUser()->getDownloadPreferences(); $formData = (array) UserPreferencesFactory::createFromUser($this->getUser()); $form = $this->createForm(UserMediaPreferencesForm::class, $formData); return $this->render( 'user/preferences.html.twig', [ 'downloadPreferences' => $downloadPreferences, 'preferences_form' => $form, ] ); } #[Route('/user/preferences/media', 'app_user_media_preferences_submit', methods: ['POST'])] public function mediaPreferencesSubmit( Request $request, SaveUserMediaPreferencesHandler $saveUserMediaPreferencesHandler ): Response { $downloadPreferences = $this->getUser()->getDownloadPreferences(); $formData = (array) UserPreferencesFactory::createFromUser($this->getUser()); $form = $this->createForm(UserMediaPreferencesForm::class, $formData); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $saveUserMediaPreferencesHandler->handle( SaveUserMediaPreferencesCommand::fromUserMediaPreferencesForm($form) ); $this->broadcaster->alert('Success', 'Your media preferences have been saved.'); } return $this->render( 'user/preferences.html.twig', [ 'downloadPreferences' => $downloadPreferences, 'preferences_form' => $form, ] ); } #[Route('/user/preferences/download', 'app_save_download_preferences', methods: ['POST'])] public function saveDownloadPreferences( SaveUserDownloadPreferencesInput $input, SaveUserDownloadPreferencesHandler $saveUserDownloadPreferencesHandler, ): Response { $downloadPreferences = $saveUserDownloadPreferencesHandler->handle($input->toCommand())->downloadPreferences; $mediaPreferences = $this->getUser()->getMediaPreferences(); $languages = CountryLanguages::$languages; sort($languages); $this->broadcaster->alert( title: 'Success', message: 'Your download preferences have been saved.' ); return $this->render( 'user/preferences.html.twig', [ 'preferences' => $this->preferencesRepository->findEnabled(), 'languages' => $languages, 'providers' => ProviderList::getProviders(), 'qualities' => QualityList::getBaseQualities(), 'mediaPreferences' => $mediaPreferences, 'downloadPreferences' => $downloadPreferences, ] ); } }