fix: auto applies filter on season change
This commit is contained in:
@@ -29,6 +29,11 @@ export default class extends Controller {
|
||||
}
|
||||
}
|
||||
|
||||
// Keeps compatible with Filter & TV Shows
|
||||
isActive() {
|
||||
return true;
|
||||
}
|
||||
|
||||
listTargetConnected(target) {
|
||||
// console.log(target);
|
||||
}
|
||||
|
||||
@@ -13,6 +13,13 @@ export default class extends Controller {
|
||||
providers = []
|
||||
seasons = []
|
||||
|
||||
activeFilter = {
|
||||
"resolution": "",
|
||||
"codec": "",
|
||||
"language": "",
|
||||
"provider": "",
|
||||
}
|
||||
|
||||
static outlets = ['movie-results', 'tv-results']
|
||||
static targets = ['resolution', 'codec', 'language', 'provider', 'season']
|
||||
static values = {
|
||||
@@ -20,6 +27,11 @@ export default class extends Controller {
|
||||
'episodes': Array,
|
||||
}
|
||||
|
||||
connect() {
|
||||
if (this.mediaTypeValue === "tvshows") {
|
||||
this.activeFilter['season'] = 1;}
|
||||
}
|
||||
|
||||
async movieResultsOutletConnected(outlet) {
|
||||
await this.parseDownloadOptionForFilter(outlet)
|
||||
}
|
||||
@@ -65,6 +77,8 @@ export default class extends Controller {
|
||||
}
|
||||
|
||||
async filter() {
|
||||
const currentSeason = this.activeFilter['season'];
|
||||
|
||||
let results = [];
|
||||
this.activeFilter = {
|
||||
"resolution": this.resolutionTarget.value,
|
||||
@@ -80,8 +94,16 @@ export default class extends Controller {
|
||||
this.activeFilter.season = this.seasonTarget.value;
|
||||
}
|
||||
|
||||
const filterOperation = (resultList) => {
|
||||
if (false === resultList.isActive) {
|
||||
const filterOperation = async (resultList, currentSeason) => {
|
||||
if ("tvshows" === this.mediaTypeValue && currentSeason !== this.activeFilter['season']) {
|
||||
if (resultList.seasonValue === this.seasonTarget.value) {
|
||||
await resultList.setActive();
|
||||
} else {
|
||||
resultList.setInActive();
|
||||
}
|
||||
}
|
||||
|
||||
if (false === resultList.isActive()) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -101,7 +123,7 @@ export default class extends Controller {
|
||||
option.classList.remove('hidden');
|
||||
|
||||
for (let [key, value] of Object.entries(this.activeFilter)) {
|
||||
if (value === "") {
|
||||
if (value === "" || key === "season") {
|
||||
continue;
|
||||
}
|
||||
if (key === "codec" && value === "h264") {
|
||||
@@ -138,15 +160,6 @@ export default class extends Controller {
|
||||
});
|
||||
}
|
||||
|
||||
if ("tvshows" === this.mediaTypeValue) {
|
||||
await results.forEach(async (list) => {
|
||||
if (list.seasonValue === this.seasonTarget.value) {
|
||||
await list.setActive();
|
||||
} else {
|
||||
list.setInActive();
|
||||
}
|
||||
})
|
||||
}
|
||||
results.forEach((list) => filterOperation(list));
|
||||
await results.forEach((list) => filterOperation(list, currentSeason));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,7 +40,9 @@ export default class extends Controller {
|
||||
async setActive() {
|
||||
this.activeValue = true;
|
||||
this.element.classList.remove('hidden');
|
||||
await this.setOptions();
|
||||
if (false === this.optionsLoaded) {
|
||||
await this.setOptions();
|
||||
}
|
||||
}
|
||||
|
||||
setInActive() {
|
||||
|
||||
Reference in New Issue
Block a user