mirror of
				https://github.com/advplyr/audiobookshelf.git
				synced 2025-10-27 11:18:14 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			71 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
| <template>
 | |
|   <div ref="wrapper" class="w-full p-2 border border-white border-opacity-10 rounded">
 | |
|     <div class="flex">
 | |
|       <div class="w-16 min-w-16">
 | |
|         <div class="w-full h-16 bg-primary">
 | |
|           <img v-if="image" :src="image" class="w-full h-full object-cover" />
 | |
|         </div>
 | |
|         <p class="text-gray-400 text-xxs pt-1 text-center">{{ numEpisodes }} {{ $strings.HeaderEpisodes }}</p>
 | |
|       </div>
 | |
|       <div class="flex-grow pl-2" :style="{ maxWidth: detailsWidth + 'px' }">
 | |
|         <p class="mb-1">{{ title }}</p>
 | |
|         <p class="text-xs mb-1 text-gray-300">{{ author }}</p>
 | |
|         <p class="text-xs mb-2 text-gray-200">{{ description }}</p>
 | |
|         <p class="text-xs truncate text-blue-200">
 | |
|           {{ $strings.LabelFolder }}: <span class="font-mono">{{ folderPath }}</span>
 | |
|         </p>
 | |
|       </div>
 | |
|     </div>
 | |
|   </div>
 | |
| </template>
 | |
| 
 | |
| <script>
 | |
| export default {
 | |
|   props: {
 | |
|     feed: {
 | |
|       type: Object,
 | |
|       default: () => {}
 | |
|     },
 | |
|     libraryFolderPath: String
 | |
|   },
 | |
|   data() {
 | |
|     return {
 | |
|       width: 900
 | |
|     }
 | |
|   },
 | |
|   computed: {
 | |
|     title() {
 | |
|       return this.metadata.title || 'No Title'
 | |
|     },
 | |
|     image() {
 | |
|       return this.metadata.imageUrl
 | |
|     },
 | |
|     description() {
 | |
|       return this.metadata.description || ''
 | |
|     },
 | |
|     author() {
 | |
|       return this.metadata.author || ''
 | |
|     },
 | |
|     metadata() {
 | |
|       return this.feed || {}
 | |
|     },
 | |
|     numEpisodes() {
 | |
|       return this.feed.numEpisodes || 0
 | |
|     },
 | |
|     folderPath() {
 | |
|       if (!this.libraryFolderPath) return ''
 | |
|       return `${this.libraryFolderPath}\\${this.$sanitizeFilename(this.title)}`
 | |
|     },
 | |
|     detailsWidth() {
 | |
|       return this.width - 85
 | |
|     }
 | |
|   },
 | |
|   methods: {},
 | |
|   updated() {
 | |
|     this.width = this.$refs.wrapper.clientWidth
 | |
|   },
 | |
|   mounted() {
 | |
|     this.width = this.$refs.wrapper.clientWidth
 | |
|   }
 | |
| }
 | |
| </script> |