mirror of
				https://github.com/advplyr/audiobookshelf.git
				synced 2025-10-27 11:18:14 +01:00 
			
		
		
		
	Add click to play session at timestamp in users playback sessions table
This commit is contained in:
		
							parent
							
								
									ad88de0571
								
							
						
					
					
						commit
						f702c02859
					
				| @ -42,7 +42,7 @@ | ||||
|               <td class="text-center"> | ||||
|                 <p class="text-xs font-mono">{{ $elapsedPretty(session.timeListening) }}</p> | ||||
|               </td> | ||||
|               <td class="text-center"> | ||||
|               <td class="text-center hover:underline" @click.stop="clickCurrentTime(session)"> | ||||
|                 <p class="text-xs font-mono">{{ $secondsToTimestamp(session.currentTime) }}</p> | ||||
|               </td> | ||||
|               <td class="text-center hidden sm:table-cell"> | ||||
| @ -85,7 +85,8 @@ export default { | ||||
|       listeningSessions: [], | ||||
|       numPages: 0, | ||||
|       total: 0, | ||||
|       currentPage: 0 | ||||
|       currentPage: 0, | ||||
|       processingGoToTimestamp: false | ||||
|     } | ||||
|   }, | ||||
|   computed: { | ||||
| @ -97,6 +98,41 @@ export default { | ||||
|     } | ||||
|   }, | ||||
|   methods: { | ||||
|     async clickCurrentTime(session) { | ||||
|       if (this.processingGoToTimestamp) return | ||||
|       this.processingGoToTimestamp = true | ||||
|       const libraryItem = await this.$axios.$get(`/api/items/${session.libraryItemId}`).catch((error) => { | ||||
|         console.error('Failed to get library item', error) | ||||
|         return null | ||||
|       }) | ||||
| 
 | ||||
|       if (!libraryItem) { | ||||
|         this.$toast.error('Failed to get library item') | ||||
|         this.processingGoToTimestamp = false | ||||
|         return | ||||
|       } | ||||
|       if (session.episodeId && !libraryItem.media.episodes.find((ep) => ep.id === session.episodeId)) { | ||||
|         this.$toast.error('Failed to get podcast episode') | ||||
|         this.processingGoToTimestamp = false | ||||
|         return | ||||
|       } | ||||
| 
 | ||||
|       const payload = { | ||||
|         message: `Start playback for "${session.displayTitle}" at ${this.$secondsToTimestamp(session.currentTime)}?`, | ||||
|         callback: (confirmed) => { | ||||
|           if (confirmed) { | ||||
|             this.$eventBus.$emit('play-item', { | ||||
|               libraryItemId: libraryItem.id, | ||||
|               episodeId: session.episodeId || null, | ||||
|               startTime: session.currentTime | ||||
|             }) | ||||
|           } | ||||
|           this.processingGoToTimestamp = false | ||||
|         }, | ||||
|         type: 'yesNo' | ||||
|       } | ||||
|       this.$store.commit('globals/setConfirmPrompt', payload) | ||||
|     }, | ||||
|     prevPage() { | ||||
|       this.loadSessions(this.currentPage - 1) | ||||
|     }, | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user