mirror of
				https://github.com/advplyr/audiobookshelf.git
				synced 2025-10-27 11:18:14 +01:00 
			
		
		
		
	Fix:Authors dropdown to use filter data instead of API endpoint #2077
This commit is contained in:
		
							parent
							
								
									ab97a9d613
								
							
						
					
					
						commit
						9553c19b33
					
				| @ -46,7 +46,7 @@ export default { | ||||
|       type: Array, | ||||
|       default: () => [] | ||||
|     }, | ||||
|     endpoint: String, | ||||
|     filterKey: String, | ||||
|     label: String, | ||||
|     disabled: Boolean, | ||||
|     readonly: Boolean, | ||||
| @ -60,7 +60,6 @@ export default { | ||||
|     return { | ||||
|       textInput: null, | ||||
|       currentSearch: null, | ||||
|       searching: false, | ||||
|       typingTimeout: null, | ||||
|       isFocused: false, | ||||
|       menu: null, | ||||
| @ -97,6 +96,9 @@ export default { | ||||
|     }, | ||||
|     itemsToShow() { | ||||
|       return this.items | ||||
|     }, | ||||
|     filterData() { | ||||
|       return this.$store.state.libraries.filterData || {} | ||||
|     } | ||||
|   }, | ||||
|   methods: { | ||||
| @ -109,20 +111,15 @@ export default { | ||||
|     getIsSelected(itemValue) { | ||||
|       return !!this.selected.find((i) => i.id === itemValue) | ||||
|     }, | ||||
|     async search() { | ||||
|       if (this.searching) return | ||||
|     search() { | ||||
|       this.currentSearch = this.textInput | ||||
|       this.searching = true | ||||
|       const results = await this.$axios | ||||
|         .$get(`/api/${this.endpoint}?q=${this.currentSearch}&limit=15&token=${this.userToken}`) | ||||
|         .then((res) => res.results || res) | ||||
|         .catch((error) => { | ||||
|           console.error('Failed to get search results', error) | ||||
|           return [] | ||||
|         }) | ||||
|       const dataToSearch = this.filterData[this.filterKey] || [] | ||||
| 
 | ||||
|       const results = dataToSearch.filter((au) => { | ||||
|         return au.name.toLowerCase().includes(this.currentSearch.toLowerCase().trim()) | ||||
|       }) | ||||
| 
 | ||||
|       this.items = results || [] | ||||
|       this.searching = false | ||||
|     }, | ||||
|     keydownInput() { | ||||
|       clearTimeout(this.typingTimeout) | ||||
|  | ||||
| @ -12,8 +12,8 @@ | ||||
| 
 | ||||
|       <div class="flex flex-wrap mt-2 -mx-1"> | ||||
|         <div class="w-full md:w-3/4 px-1"> | ||||
|           <!-- Authors filter only contains authors in this library, use query input to query all authors --> | ||||
|           <ui-multi-select-query-input ref="authorsSelect" v-model="details.authors" :label="$strings.LabelAuthors" endpoint="authors/search" /> | ||||
|           <!-- Authors filter only contains authors in this library, uses filter data --> | ||||
|           <ui-multi-select-query-input ref="authorsSelect" v-model="details.authors" :label="$strings.LabelAuthors" filter-key="authors" /> | ||||
|         </div> | ||||
|         <div class="flex-grow px-1 mt-2 md:mt-0"> | ||||
|           <ui-text-input-with-label ref="publishYearInput" v-model="details.publishedYear" type="number" :label="$strings.LabelPublishYear" /> | ||||
|  | ||||
| @ -26,8 +26,8 @@ | ||||
|             </div> | ||||
|             <div v-if="!isPodcastLibrary" class="flex items-center px-4 w-1/2"> | ||||
|               <ui-checkbox v-model="selectedBatchUsage.authors" /> | ||||
|               <!-- Authors filter only contains authors in this library, use query input to query all authors --> | ||||
|               <ui-multi-select-query-input ref="authorsSelect" v-model="batchDetails.authors" :disabled="!selectedBatchUsage.authors" :label="$strings.LabelAuthors" endpoint="authors/search" class="mb-4 ml-4" /> | ||||
|               <!-- Authors filter only contains authors in this library, uses filter data --> | ||||
|               <ui-multi-select-query-input ref="authorsSelect" v-model="batchDetails.authors" :disabled="!selectedBatchUsage.authors" :label="$strings.LabelAuthors" filter-key="authors" class="mb-4 ml-4" /> | ||||
|             </div> | ||||
|             <div v-if="!isPodcastLibrary && !isMapAppend" class="flex items-center px-4 w-1/2"> | ||||
|               <ui-checkbox v-model="selectedBatchUsage.publishedYear" /> | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user