diff --git a/web-src/src/pages/PageComposers.vue b/web-src/src/pages/PageComposers.vue index 96a5d793..1c0874eb 100644 --- a/web-src/src/pages/PageComposers.vue +++ b/web-src/src/pages/PageComposers.vue @@ -8,14 +8,7 @@

{{ composers.total }} composers

@@ -25,9 +18,10 @@ import { LoadDataBeforeEnterMixin } from './mixin' import ContentWithHeading from '@/templates/ContentWithHeading' import TabsMusic from '@/components/TabsMusic' -import ListItemComposer from '@/components/ListItemComposer' -import ModalDialogComposer from '@/components/ModalDialogComposer' +import ListComposers from '@/components/ListComposers' import webapi from '@/webapi' +import * as types from '@/store/mutation_types' +import Composers from '@/lib/Composers' const composersData = { load: function (to) { @@ -52,7 +46,7 @@ const composersData = { export default { name: 'PageComposers', mixins: [LoadDataBeforeEnterMixin(composersData)], - components: { ContentWithHeading, TabsMusic, ListItemComposer, ModalDialogComposer }, + components: { ContentWithHeading, TabsMusic, ListComposers }, data () { return { @@ -68,6 +62,39 @@ export default { index_list () { return [...new Set(this.composers.items .map(composer => composer.name.charAt(0).toUpperCase()))] + }, + + composers_list () { + return new Composers(this.composers.items, { + hideSingles: this.hide_singles, + hideSpotify: this.hide_spotify, + sort: this.sort, + group: true + }) + }, + + hide_singles: { + get () { + return this.$store.state.hide_singles + }, + set (value) { + this.$store.commit(types.HIDE_SINGLES, value) + } + }, + + hide_spotify: { + get () { + return this.$store.state.hide_spotify + }, + set (value) { + this.$store.commit(types.HIDE_SPOTIFY, value) + } + }, + + sort: { + get () { + return 'Name' + } } },