UX: fusion des réglages de cache en un seul sélecteur

Les deux cases "Uniquement en cache" / "Afficher les non-cachés" étaient un
choix binaire confus. Remplacées par un sélecteur "Résultats débrideur" :
cache seul ou cache + non-cachés (ajout au débrideur au clic). Le backend
(cached_only / show_uncached) est inchangé.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Valentin 2026-07-17 20:21:31 +02:00
parent ce54b92bf9
commit 7babe764bc

View file

@ -201,11 +201,15 @@
<label>Langues autorisées</label>
<div class="chips" id="langChips"></div>
<label style="margin-top:14px">Résultats débrideur</label>
<select id="cache_mode">
<option value="all">Cache + non-cachés (le clic ajoute au débrideur)</option>
<option value="cached">Uniquement les torrents en cache</option>
</select>
<div style="margin-top:14px" class="grid2">
<label class="check"><input type="checkbox" id="exclude_cam" checked> Exclure les CAM/TS</label>
<label class="check"><input type="checkbox" id="exclude_packs"> Exclure les packs de saison</label>
<label class="check"><input type="checkbox" id="cached_only"> Uniquement en cache débrideur</label>
<label class="check"><input type="checkbox" id="show_uncached" checked> Afficher les non-cachés (ajout au débrideur)</label>
<label class="check"><input type="checkbox" id="show_p2p"> Afficher les liens P2P (sans débrideur)</label>
</div>
</div>
@ -465,8 +469,8 @@ function buildConfig() {
exclude_season_packs: document.getElementById("exclude_packs").checked,
max_results: parseInt(document.getElementById("max_results").value) || 30,
max_per_resolution: parseInt(document.getElementById("max_per_res").value) || 0,
cached_only: document.getElementById("cached_only").checked,
show_uncached: document.getElementById("show_uncached").checked,
cached_only: document.getElementById("cache_mode").value === "cached",
show_uncached: document.getElementById("cache_mode").value === "all",
show_p2p: document.getElementById("show_p2p").checked,
},
sort: sortOrder,
@ -536,7 +540,7 @@ function applyPrefill(cfg) {
setVal("min_size", f.min_size_gb); setVal("max_size", f.max_size_gb);
setVal("max_results", f.max_results); setVal("max_per_res", f.max_per_resolution);
setChk("exclude_cam", f.exclude_cam); setChk("exclude_packs", f.exclude_season_packs);
setChk("cached_only", f.cached_only); setChk("show_uncached", f.show_uncached); setChk("show_p2p", f.show_p2p);
setVal("cache_mode", f.cached_only ? "cached" : "all"); setChk("show_p2p", f.show_p2p);
}
function applyPrefillCheckboxes(cfg) {
@ -575,7 +579,7 @@ renderSortable("provOrder", provOrder, k => SOURCE_LABELS[k] || k);
applyPrefillCheckboxes(PREFILL);
["tmdb_key","stremthru_url","stremthru_auth","abn_user","abn_pass","debrid_mode",
"min_size","max_size","max_results","max_per_res","exclude_cam","exclude_packs",
"cached_only","show_uncached","show_p2p"].forEach(id => {
"cache_mode","show_p2p"].forEach(id => {
const el = document.getElementById(id);
el.addEventListener("input", update);
el.addEventListener("change", update);