feat: stores user's media preferences

This commit is contained in:
2025-04-29 16:17:40 -05:00
parent 0225bead60
commit c3eaf109e3
15 changed files with 429 additions and 31 deletions

View File

@@ -59,7 +59,7 @@
<li>
<a
href="#"
href="{{ path('app_media_preferences') }}"
class="block rounded-lg px-4 py-2 text-sm font-medium text-gray-50 hover:bg-gray-100 hover:text-stone-700"
>
Preferences

View File

@@ -7,29 +7,48 @@
<twig:Card title="Choose your preferences">
<p class="text-gray-50 mb-2">Define a set of filters to apply to your media download option results.</p>
<form id="media_preferences" class="flex flex-col max-w-64" name="media_preferences" method="post" action="{{ path('app_media_preferences') }}">
{% for preference in preferences %}
<label class="text-gray-50" for="{{ preference.name }}">{{ preference.name }}</label>
{% if preference.name|lower == "language" %}
<select class="p-1.5 rounded-md mb-2" name="{{ preference.name|lower }}" id="{{ preference.name }}">
{% for key, value in languages %}
<option class="text-gray-800" value="{{ key }}">{{ value }}</option>
{% endfor %}
</select>
{% elseif preference.name|lower == "provider" %}
<select class="p-1.5 rounded-md mb-2" name="{{ preference.name|lower }}" id="{{ preference.name }}">
{% for key, value in providers %}
<option class="text-gray-800" value="{{ key }}">{{ value }}</option>
{% endfor %}
</select>
{% else %}
<select class="p-1.5 rounded-md mb-2" name="{{ preference.name|lower }}" id="{{ preference.name }}">
{% for option in preference.preferenceOptions %}
<option class="text-gray-800" value="{{ option.id }}">{{ option.name }}</option>
{% endfor %}
</select>
{% endif %}
{% endfor %}
<label class="text-gray-50" for="resolution">Resolution</label>
<select class="p-1.5 rounded-md mb-2" name="resolution" id="resolution" value="{{ userPreferences['resolution'].getPreferenceValue() }}">
{% for pref in userPreferences['resolution'].getPreference().getPreferenceOptions() %}
<option class="text-gray-800"
value="{{ pref.id }}"
{{ pref.id == userPreferences['resolution'].getPreferenceValue() ? "selected" }}
>{{ pref.name }}</option>
{% endfor %}
</select>
<label class="text-gray-50" for="codec">Codec</label>
<select class="p-1.5 rounded-md mb-2" name="codec" id="codec" value="{{ userPreferences['codec'].getPreferenceValue() }}">
{% for pref in userPreferences['codec'].getPreference().getPreferenceOptions() %}
<option class="text-gray-800"
value="{{ pref.id }}"
{{ pref.id == userPreferences['codec'].getPreferenceValue() ? "selected" }}
>{{ pref.name }}</option>
{% endfor %}
</select>
<label class="text-gray-50" for="provider">Provider</label>
<select class="p-1.5 rounded-md mb-2" name="provider" id="provider" value="{{ userPreferences['provider'].getPreferenceValue() }}">
{% for key, value in providers %}
<option class="text-gray-800"
value="{{ key }}"
{{ key == userPreferences['provider'].getPreferenceValue() ? "selected" }}
>{{ value }}</option>
{% endfor %}
</select>
<label class="text-gray-50" for="language">Language</label>
<select class="p-1.5 rounded-md mb-2" name="language" id="language" value="{{ userPreferences['language'].getPreferenceValue() }}">
{% for key, value in languages %}
<option class="text-gray-800"
value="{{ key }}"
{{ key == userPreferences['language'].getPreferenceValue() ? "selected" }}
>{{ value }}</option>
{% endfor %}
</select>
<button class="px-1.5 py-1 max-w-20 rounded-md bg-green-600 text-white" type="submit">Submit</button>
</form>
</twig:Card>