diff --git a/components/bookshelf/LazyBookshelf.vue b/components/bookshelf/LazyBookshelf.vue index 7cc8b727..ae352f8d 100644 --- a/components/bookshelf/LazyBookshelf.vue +++ b/components/bookshelf/LazyBookshelf.vue @@ -95,16 +95,16 @@ export default { var coverSize = 100 if (window.innerWidth <= 375) coverSize = 90 - if (this.isCoverSquareAspectRatio) return coverSize * 1.6 + if (this.isCoverSquareAspectRatio || this.entityName === 'playlists') return coverSize * 1.6 return coverSize }, bookHeight() { - if (this.isCoverSquareAspectRatio) return this.bookWidth + if (this.isCoverSquareAspectRatio || this.entityName === 'playlists') return this.bookWidth return this.bookWidth * 1.6 }, entityWidth() { if (this.showBookshelfListView) return this.bookshelfWidth - 16 - if (this.isBookEntity) return this.bookWidth + if (this.isBookEntity || this.entityName === 'playlists') return this.bookWidth return this.bookWidth * 2 }, entityHeight() { diff --git a/components/cards/LazyCollectionCard.vue b/components/cards/LazyCollectionCard.vue index ded54657..f76d0540 100644 --- a/components/cards/LazyCollectionCard.vue +++ b/components/cards/LazyCollectionCard.vue @@ -63,9 +63,6 @@ export default { var router = this.$router || this.$nuxt.$router router.push(`/collection/${this.collection.id}`) }, - clickEdit() { - this.$emit('edit', this.collection) - }, destroy() { // destroy the vue listeners, etc this.$destroy() diff --git a/components/cards/LazyPlaylistCard.vue b/components/cards/LazyPlaylistCard.vue new file mode 100644 index 00000000..b3a1d18a --- /dev/null +++ b/components/cards/LazyPlaylistCard.vue @@ -0,0 +1,86 @@ + + + + + + + + + {{ title }} + + + + + + \ No newline at end of file diff --git a/components/covers/PlaylistCover.vue b/components/covers/PlaylistCover.vue new file mode 100644 index 00000000..e19bfc39 --- /dev/null +++ b/components/covers/PlaylistCover.vue @@ -0,0 +1,51 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/components/home/BookshelfNavBar.vue b/components/home/BookshelfNavBar.vue index 2b23c12a..4ae1f518 100644 --- a/components/home/BookshelfNavBar.vue +++ b/components/home/BookshelfNavBar.vue @@ -84,14 +84,14 @@ export default { iconClass: 'text-xl', text: 'Collections' }, - { - to: '/bookshelf/authors', - routeName: 'bookshelf-authors', - iconPack: 'abs-icons', - icon: 'authors', - iconClass: 'text-2xl pb-px', - text: 'Authors' - }, + // { + // to: '/bookshelf/authors', + // routeName: 'bookshelf-authors', + // iconPack: 'abs-icons', + // icon: 'authors', + // iconClass: 'text-2xl pb-px', + // text: 'Authors' + // }, { to: '/bookshelf/playlists', routeName: 'bookshelf-playlists', diff --git a/components/home/BookshelfToolbar.vue b/components/home/BookshelfToolbar.vue index 70601e55..2acf0037 100644 --- a/components/home/BookshelfToolbar.vue +++ b/components/home/BookshelfToolbar.vue @@ -64,6 +64,8 @@ export default { return 'Series' } else if (this.page === 'collections') { return 'Collections' + } else if (this.page === 'playlists') { + return 'Playlists' } return '' }, diff --git a/components/tables/PlaylistItemsTable.vue b/components/tables/PlaylistItemsTable.vue new file mode 100644 index 00000000..9a2d5ce0 --- /dev/null +++ b/components/tables/PlaylistItemsTable.vue @@ -0,0 +1,47 @@ + + + + Playlist Items + + + {{ items.length }} + + + + {{ totalDurationPretty }} + + + + + + + + diff --git a/components/tables/playlist/ItemTableRow.vue b/components/tables/playlist/ItemTableRow.vue new file mode 100644 index 00000000..68ca70f5 --- /dev/null +++ b/components/tables/playlist/ItemTableRow.vue @@ -0,0 +1,103 @@ + + + + + + + + + {{ itemTitle }} + {{ bookAuthorName }} + {{ itemDuration }} + + + + + + + + + \ No newline at end of file diff --git a/mixins/bookshelfCardsHelpers.js b/mixins/bookshelfCardsHelpers.js index 7436fb25..392bc83f 100644 --- a/mixins/bookshelfCardsHelpers.js +++ b/mixins/bookshelfCardsHelpers.js @@ -3,6 +3,7 @@ import LazyBookCard from '@/components/cards/LazyBookCard' import LazyListBookCard from '@/components/cards/LazyListBookCard' import LazySeriesCard from '@/components/cards/LazySeriesCard' import LazyCollectionCard from '@/components/cards/LazyCollectionCard' +import LazyPlaylistCard from '@/components/cards/LazyPlaylistCard' export default { data() { @@ -16,6 +17,7 @@ export default { getComponentClass() { if (this.entityName === 'series') return Vue.extend(LazySeriesCard) if (this.entityName === 'collections') return Vue.extend(LazyCollectionCard) + if (this.entityName === 'playlists') return Vue.extend(LazyPlaylistCard) if (this.showBookshelfListView) return Vue.extend(LazyListBookCard) return Vue.extend(LazyBookCard) }, diff --git a/pages/bookshelf/playlists.vue b/pages/bookshelf/playlists.vue index 9f88b913..e9fbf691 100644 --- a/pages/bookshelf/playlists.vue +++ b/pages/bookshelf/playlists.vue @@ -1,5 +1,5 @@ - Playlists + \ No newline at end of file diff --git a/store/index.js b/store/index.js index 3a6509e8..e868c3bf 100644 --- a/store/index.js +++ b/store/index.js @@ -26,6 +26,11 @@ export const state = () => ({ }) export const getters = { + getIsMediaStreaming: state => (libraryItemId, episodeId) => { + if (!state.playerLibraryItemId) return null + if (!episodeId) return state.playerLibraryItemId == libraryItemId + return state.playerLibraryItemId == libraryItemId && state.playerEpisodeId == episodeId + }, getIsItemStreaming: state => libraryItemId => { return state.playerLibraryItemId == libraryItemId },
{{ title }}
Playlist Items
{{ totalDurationPretty }}
{{ itemTitle }}
{{ bookAuthorName }}
{{ itemDuration }}