mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2025-02-06 00:16:02 +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">
|
<td class="text-center">
|
||||||
<p class="text-xs font-mono">{{ $elapsedPretty(session.timeListening) }}</p>
|
<p class="text-xs font-mono">{{ $elapsedPretty(session.timeListening) }}</p>
|
||||||
</td>
|
</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>
|
<p class="text-xs font-mono">{{ $secondsToTimestamp(session.currentTime) }}</p>
|
||||||
</td>
|
</td>
|
||||||
<td class="text-center hidden sm:table-cell">
|
<td class="text-center hidden sm:table-cell">
|
||||||
@ -85,7 +85,8 @@ export default {
|
|||||||
listeningSessions: [],
|
listeningSessions: [],
|
||||||
numPages: 0,
|
numPages: 0,
|
||||||
total: 0,
|
total: 0,
|
||||||
currentPage: 0
|
currentPage: 0,
|
||||||
|
processingGoToTimestamp: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@ -97,6 +98,41 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
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() {
|
prevPage() {
|
||||||
this.loadSessions(this.currentPage - 1)
|
this.loadSessions(this.currentPage - 1)
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user