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'
+ }
}
},