fix: prefills provider preference on filter

This commit is contained in:
2025-04-30 22:23:42 -05:00
parent bfd5f53d67
commit b23d8a2ba3
5 changed files with 59 additions and 11 deletions

View File

@@ -73,7 +73,7 @@ export default class extends Controller {
.map((language) => {
const preferred = this.languageTarget.dataset.preferred;
if (preferred === language) {
return '<option value="'+preferred+'" selected>'+preferred+'</option>';
return;
}
return '<option value="'+language+'">'+language+'</option>';
})
@@ -85,9 +85,22 @@ export default class extends Controller {
this.providers.push(props['provider']);
}
this.providerTarget.innerHTML = '<option value="">n/a</option>';
const preferred = this.providerTarget.dataset.preferred;
if (preferred) {
this.providerTarget.innerHTML = '<option value="'+preferred+'" selected>'+preferred+'</option>';
this.providerTarget.innerHTML += '<option value="">n/a</option>';
} else {
this.providerTarget.innerHTML = '<option value="">n/a</option>';
}
this.providerTarget.innerHTML += this.providers.sort()
.map((provider) => '<option value="'+provider+'">'+provider+'</option>')
.map((provider) => {
const preferred = this.languageTarget.dataset.preferred;
if (preferred === provider) {
return;
}
return '<option value="' + provider + '">' + provider + '</option>'
})
.join();
}

View File

@@ -12,6 +12,7 @@ use App\User\Framework\Entity\UserPreference;
use App\User\Framework\Repository\PreferencesRepository;
use App\Util\CountryCodes;
use App\Util\CountryLanguages;
use App\Util\ProviderList;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Bundle\SecurityBundle\Security;
use Symfony\Component\HttpFoundation\Response;
@@ -45,7 +46,7 @@ class PreferencesController extends AbstractController
[
'preferences' => $this->preferencesRepository->findEnabled(),
'languages' => $languages,
'providers' => ['test' => 'Test'],
'providers' => ProviderList::$providers,
'userPreferences' => $userPreferences->toArray(),
]
);
@@ -67,7 +68,7 @@ class PreferencesController extends AbstractController
[
'preferences' => $this->preferencesRepository->findEnabled(),
'languages' => $languages,
'providers' => ['test' => 'Test'],
'providers' => ProviderList::$providers,
'userPreferences' => $userPreferences->toArray(),
]
);

26
src/Util/ProviderList.php Normal file
View File

@@ -0,0 +1,26 @@
<?php
namespace App\Util;
class ProviderList
{
public static $providers = [
'1337x',
'Comando',
'EZTV',
'ilCorSaRoNeRo',
'MagnetDL',
'MejorTorrent',
'RARBG',
'Rutor',
'Rutracker',
'ThePirateBay',
'Torrent9',
'TorrentGalaxy',
];
public static function getProviders()
{
return self::$providers;
}
}

View File

@@ -45,8 +45,13 @@
</label>
<label for="provider">
Provider
<select id="provider" data-result-filter-target="provider" class="px-1 py-0.5 bg-stone-100 text-gray-800 rounded-md">
<option selected value="">n/a</option>
<select id="provider"
data-result-filter-target="provider"
class="px-1 py-0.5 bg-stone-100 text-gray-800 rounded-md"
{% if this.userPreferences['provider'] != null %}
data-preferred="{{ this.userPreferences['provider'] }}"
{% endif %}
>
</select>
</label>
{% if results.media.mediaType == "tvshows" %}

View File

@@ -30,11 +30,14 @@
<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=""
{{ "" == userPreferences['provider'].getPreferenceValue() ? "selected" }}
>n/a</option>
{% for provider in providers %}
<option class="text-gray-800"
value="{{ key }}"
{{ key == userPreferences['provider'].getPreferenceValue() ? "selected" }}
>{{ value }}</option>
value="{{ provider }}"
{{ provider == userPreferences['provider'].getPreferenceValue() ? "selected" }}
>{{ provider }}</option>
{% endfor %}
</select>