diff --git a/components/tables/podcast/EpisodesTable.vue b/components/tables/podcast/EpisodesTable.vue
index b3bac158..614bb2da 100644
--- a/components/tables/podcast/EpisodesTable.vue
+++ b/components/tables/podcast/EpisodesTable.vue
@@ -5,7 +5,7 @@
@@ -14,10 +14,14 @@
-
+
+
+
+
@@ -43,8 +47,7 @@ export default {
showFiltersModal: false,
sortKey: 'publishedAt',
sortDesc: false,
- filterKey: 'all',
- episodesFiltered: [],
+ filterKey: 'incomplete',
episodeSortItems: [
{
text: 'Pub Date',
@@ -89,19 +92,28 @@ export default {
handler() {
this.init()
}
- },
- filterKey: {
- handler() {
- this.setEpisodesFiltered()
- }
- },
- sortKey: {
- handler() {
- this.setEpisodesFiltered()
- }
}
},
computed: {
+ episodesAreFiltered() {
+ return this.episodesFiltered.length !== this.episodesCopy.length
+ },
+ episodesFiltered() {
+ return this.episodesCopy.filter((ep) => {
+ var mediaProgress = this.getEpisodeProgress(ep)
+ if (this.filterKey === 'incomplete') {
+ return !mediaProgress || !mediaProgress.isFinished
+ } else if (this.filterKey === 'complete') {
+ return mediaProgress && mediaProgress.isFinished
+ } else if (this.filterKey === 'inProgress') {
+ return mediaProgress && !mediaProgress.isFinished
+ } else if (this.filterKey === 'all') {
+ console.log('Filter key is all')
+ return true
+ }
+ return true
+ })
+ },
episodesSorted() {
return this.episodesFiltered.sort((a, b) => {
if (this.sortDesc) {
@@ -128,29 +140,6 @@ export default {
}
},
methods: {
- setEpisodesFiltered() {
- this.episodesFiltered = this.episodesCopy
- .filter((ep) => {
- var mediaProgress = this.getEpisodeProgress(ep)
- if (this.filterKey === 'incomplete') {
- return !mediaProgress || !mediaProgress.isFinished
- } else if (this.filterKey === 'complete') {
- return mediaProgress && mediaProgress.isFinished
- } else if (this.filterKey === 'inProgress') {
- return mediaProgress && !mediaProgress.isFinished
- } else if (this.filterKey === 'all') {
- console.log('Filter key is all')
- return true
- }
- return true
- })
- .sort((a, b) => {
- if (this.sortDesc) {
- return String(b[this.sortKey]).localeCompare(String(a[this.sortKey]), undefined, { numeric: true, sensitivity: 'base' })
- }
- return String(a[this.sortKey]).localeCompare(String(b[this.sortKey]), undefined, { numeric: true, sensitivity: 'base' })
- })
- },
setFilter(filter) {
this.filterKey = filter
console.log('Set filter', this.filterKey)
@@ -170,7 +159,6 @@ export default {
this.episodesCopy = this.episodes.map((ep) => {
return { ...ep }
})
- this.setEpisodesFiltered()
}
},
mounted() {}