diff --git a/client/components/modals/item/tabs/Match.vue b/client/components/modals/item/tabs/Match.vue
index ed4db87a..9e2fe8be 100644
--- a/client/components/modals/item/tabs/Match.vue
+++ b/client/components/modals/item/tabs/Match.vue
@@ -79,7 +79,7 @@
-
+
{{ $strings.LabelCurrently }} {{ mediaMetadata.narratorName || '' }}
@@ -122,7 +122,7 @@
-
+
{{ $strings.LabelCurrently }} {{ media.tags.join(', ') }}
@@ -280,6 +280,9 @@ export default {
bookCoverAspectRatio() {
return this.$store.getters['libraries/getBookCoverAspectRatio']
},
+ filterData() {
+ return this.$store.state.libraries.filterData
+ },
providers() {
if (this.isPodcast) return this.$store.state.scanners.podcastProviders
return this.$store.state.scanners.providers
@@ -305,11 +308,16 @@ export default {
isPodcast() {
return this.mediaType == 'podcast'
},
+ narrators() {
+ return this.filterData.narrators || []
+ },
genres() {
- const filterData = this.$store.state.libraries.filterData || {}
- const currentGenres = filterData.genres || []
+ const currentGenres = this.filterData.genres || []
const selectedMatchGenres = this.selectedMatch.genres || []
return [...new Set([...currentGenres, ...selectedMatchGenres])]
+ },
+ tags() {
+ return this.filterData.tags || []
}
},
methods: {
@@ -479,6 +487,12 @@ export default {
// match.genres = match.genres.join(',')
match.genres = match.genres.split(',').map((g) => g.trim())
}
+ if (match.tags && !Array.isArray(match.tags)) {
+ match.tags = match.tags.split(',').map((g) => g.trim())
+ }
+ if (match.narrator && !Array.isArray(match.narrator)) {
+ match.narrator = match.narrator.split(',').map((g) => g.trim())
+ }
}
console.log('Select Match', match)
@@ -522,11 +536,11 @@ export default {
)
updatePayload.metadata.authors = authorPayload
} else if (key === 'narrator') {
- updatePayload.metadata.narrators = this.selectedMatch[key].split(',').map((v) => v.trim())
+ updatePayload.metadata.narrators = this.selectedMatch[key]
} else if (key === 'genres') {
updatePayload.metadata.genres = [...this.selectedMatch[key]]
} else if (key === 'tags') {
- updatePayload.tags = this.selectedMatch[key].split(',').map((v) => v.trim())
+ updatePayload.tags = this.selectedMatch[key]
} else if (key === 'itunesId') {
updatePayload.metadata.itunesId = Number(this.selectedMatch[key])
} else {
diff --git a/client/components/ui/MultiSelect.vue b/client/components/ui/MultiSelect.vue
index 516b062d..337f501f 100644
--- a/client/components/ui/MultiSelect.vue
+++ b/client/components/ui/MultiSelect.vue
@@ -302,6 +302,14 @@ export default {
this.recalcMenuPos()
})
},
+ resetInput() {
+ this.textInput = null
+ this.currentSearch = null
+ this.selectedMenuItemIndex = null
+ this.$nextTick(() => {
+ this.blur()
+ })
+ },
insertNewItem(item) {
this.selected.push(item)
this.$emit('input', this.selected)
@@ -316,15 +324,18 @@ export default {
submitForm() {
if (!this.textInput) return
- var cleaned = this.textInput.trim()
- var matchesItem = this.items.find((i) => {
- return i === cleaned
- })
- if (matchesItem) {
- this.clickedOption(null, matchesItem)
+ const cleaned = this.textInput.trim()
+ if (!cleaned) {
+ this.resetInput()
} else {
- this.insertNewItem(this.textInput)
+ const matchesItem = this.items.find((i) => i === cleaned)
+ if (matchesItem) {
+ this.clickedOption(null, matchesItem)
+ } else {
+ this.insertNewItem(cleaned)
+ }
}
+
if (this.$refs.input) this.$refs.input.style.width = '24px'
},
scroll() {
@@ -352,4 +363,4 @@ input:read-only {
color: #aaa;
background-color: #444;
}
-
\ No newline at end of file
+