mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-02-03 16:59:41 +00:00
Add:RSS feed icon over library item covers when feed is open #893
This commit is contained in:
parent
2cb4f972d7
commit
24a142e718
9 changed files with 59 additions and 21 deletions
|
|
@ -78,6 +78,10 @@
|
|||
</div>
|
||||
</ui-tooltip>
|
||||
|
||||
<div v-if="rssFeed && !isSelectionMode && !isHovering" class="absolute text-success top-0 left-0 z-10" :style="{ padding: 0.375 * sizeMultiplier + 'rem' }">
|
||||
<span class="material-icons" :style="{ fontSize: sizeMultiplier * 1.5 + 'rem' }">rss_feed</span>
|
||||
</div>
|
||||
|
||||
<!-- Series sequence -->
|
||||
<div v-if="seriesSequence && !isHovering && !isSelectionMode" class="absolute rounded-lg bg-black bg-opacity-90 box-shadow-md z-10" :style="{ top: 0.375 * sizeMultiplier + 'rem', right: 0.375 * sizeMultiplier + 'rem', padding: `${0.1 * sizeMultiplier}rem ${0.25 * sizeMultiplier}rem` }">
|
||||
<p :style="{ fontSize: sizeMultiplier * 0.8 + 'rem' }">#{{ seriesSequence }}</p>
|
||||
|
|
@ -444,6 +448,10 @@ export default {
|
|||
if (!this.isAlternativeBookshelfView && !this.isAuthorBookshelfView) return 0
|
||||
else if (!this.displaySortLine) return 3 * this.sizeMultiplier
|
||||
return 4.25 * this.sizeMultiplier
|
||||
},
|
||||
rssFeed() {
|
||||
if (this.booksInSeries) return null
|
||||
return this.store.getters['feeds/getFeedForItem'](this.libraryItemId)
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
|
|
|||
|
|
@ -361,11 +361,11 @@ export default {
|
|||
download.status = this.$constants.DownloadStatus.EXPIRED
|
||||
this.$store.commit('downloads/addUpdateDownload', download)
|
||||
},
|
||||
showErrorToast(message) {
|
||||
this.$toast.error(message)
|
||||
rssFeedOpen(data) {
|
||||
this.$store.commit('feeds/addFeed', data)
|
||||
},
|
||||
showSuccessToast(message) {
|
||||
this.$toast.success(message)
|
||||
rssFeedClosed(data) {
|
||||
this.$store.commit('feeds/removeFeed', data)
|
||||
},
|
||||
backupApplied() {
|
||||
// Force refresh
|
||||
|
|
@ -437,9 +437,9 @@ export default {
|
|||
this.socket.on('abmerge_killed', this.abmergeKilled)
|
||||
this.socket.on('abmerge_expired', this.abmergeExpired)
|
||||
|
||||
// Toast Listeners
|
||||
this.socket.on('show_error_toast', this.showErrorToast)
|
||||
this.socket.on('show_success_toast', this.showSuccessToast)
|
||||
// Feed Listeners
|
||||
this.socket.on('rss_feed_open', this.rssFeedOpen)
|
||||
this.socket.on('rss_feed_closed', this.rssFeedClosed)
|
||||
|
||||
this.socket.on('backup_applied', this.backupApplied)
|
||||
},
|
||||
|
|
|
|||
|
|
@ -124,9 +124,10 @@ export default {
|
|||
|
||||
location.reload()
|
||||
},
|
||||
setUser({ user, userDefaultLibraryId, serverSettings, Source }) {
|
||||
setUser({ user, userDefaultLibraryId, serverSettings, Source, feeds }) {
|
||||
this.$store.commit('setServerSettings', serverSettings)
|
||||
this.$store.commit('setSource', Source)
|
||||
this.$store.commit('feeds/setFeeds', feeds)
|
||||
|
||||
if (serverSettings.chromecastEnabled) {
|
||||
console.log('Chromecast enabled import script')
|
||||
|
|
|
|||
28
client/store/feeds.js
Normal file
28
client/store/feeds.js
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
|
||||
export const state = () => ({
|
||||
feeds: []
|
||||
})
|
||||
|
||||
export const getters = {
|
||||
getFeedForItem: state => id => {
|
||||
return state.feeds.find(feed => feed.id === id)
|
||||
}
|
||||
}
|
||||
|
||||
export const actions = {
|
||||
|
||||
}
|
||||
|
||||
export const mutations = {
|
||||
addFeed(state, feed) {
|
||||
var index = state.feeds.findIndex(f => f.id === feed.id)
|
||||
if (index >= 0) state.feeds.splice(index, 1, feed)
|
||||
else state.feeds.push(feed)
|
||||
},
|
||||
removeFeed(state, feed) {
|
||||
state.feeds = state.feeds.filter(f => f.id !== feed.id)
|
||||
},
|
||||
setFeeds(state, feeds) {
|
||||
state.feeds = feeds || []
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue