From 82744bf193f146412d5d272f36f87e59aff5d938 Mon Sep 17 00:00:00 2001 From: Renon Date: Tue, 12 Nov 2019 15:51:45 +0100 Subject: [PATCH] Resolve "Option to remember our display settings " --- changes/changelog.d/391.enhancement | 1 + .../changelog.d}/943.bugfix | 0 front/src/components/library/Albums.vue | 6 ---- front/src/components/library/Artists.vue | 6 ---- front/src/components/library/Radios.vue | 8 +---- front/src/components/mixins/Ordering.vue | 35 +++++++++++++++++++ front/src/store/index.js | 2 +- front/src/store/ui.js | 35 +++++++++++++++++-- front/src/views/playlists/List.vue | 6 ---- 9 files changed, 71 insertions(+), 28 deletions(-) create mode 100644 changes/changelog.d/391.enhancement rename {front/src/components/playlists => changes/changelog.d}/943.bugfix (100%) diff --git a/changes/changelog.d/391.enhancement b/changes/changelog.d/391.enhancement new file mode 100644 index 000000000..28c19ecf3 --- /dev/null +++ b/changes/changelog.d/391.enhancement @@ -0,0 +1 @@ +Remember display settings in Album, Artist, Radio and Playlist views (#391) diff --git a/front/src/components/playlists/943.bugfix b/changes/changelog.d/943.bugfix similarity index 100% rename from front/src/components/playlists/943.bugfix rename to changes/changelog.d/943.bugfix diff --git a/front/src/components/library/Albums.vue b/front/src/components/library/Albums.vue index 07e20b22e..5ce51be1b 100644 --- a/front/src/components/library/Albums.vue +++ b/front/src/components/library/Albums.vue @@ -119,18 +119,12 @@ export default { TagsSelector, }, data() { - let defaultOrdering = this.getOrderingFromString( - this.defaultOrdering || "-creation_date" - ) return { isLoading: true, result: null, page: parseInt(this.defaultPage), query: this.defaultQuery, tags: (this.defaultTags || []).filter((t) => { return t.length > 0 }), - paginateBy: parseInt(this.defaultPaginateBy || 25), - orderingDirection: defaultOrdering.direction || "+", - ordering: defaultOrdering.field, orderingOptions: [["creation_date", "creation_date"], ["title", "album_title"]] } }, diff --git a/front/src/components/library/Artists.vue b/front/src/components/library/Artists.vue index a56abac14..f0dcd8a11 100644 --- a/front/src/components/library/Artists.vue +++ b/front/src/components/library/Artists.vue @@ -107,18 +107,12 @@ export default { TagsSelector, }, data() { - let defaultOrdering = this.getOrderingFromString( - this.defaultOrdering || "-creation_date" - ) return { isLoading: true, result: null, page: parseInt(this.defaultPage), query: this.defaultQuery, tags: (this.defaultTags || []).filter((t) => { return t.length > 0 }), - paginateBy: parseInt(this.defaultPaginateBy || 30), - orderingDirection: defaultOrdering.direction || "+", - ordering: defaultOrdering.field, orderingOptions: [["creation_date", "creation_date"], ["name", "name"]] } }, diff --git a/front/src/components/library/Radios.vue b/front/src/components/library/Radios.vue index a646321bc..b03801d80 100644 --- a/front/src/components/library/Radios.vue +++ b/front/src/components/library/Radios.vue @@ -93,7 +93,7 @@ v-for="radio in result.results" :key="radio.id" :custom-radio="radio"> - +
{ @@ -103,7 +125,16 @@ export default { }, pageTitle: (state, value) => { state.pageTitle = value - } + }, + paginateBy: (state, {route, value}) => { + state.routePreferences[route].paginateBy = value + }, + ordering: (state, {route, value}) => { + state.routePreferences[route].ordering = value + }, + orderingDirection: (state, {route, value}) => { + state.routePreferences[route].orderingDirection = value + }, }, actions: { fetchUnreadNotifications ({commit}, payload) { diff --git a/front/src/views/playlists/List.vue b/front/src/views/playlists/List.vue index 9fb53fd66..dad029cf4 100644 --- a/front/src/views/playlists/List.vue +++ b/front/src/views/playlists/List.vue @@ -94,17 +94,11 @@ export default { Pagination }, data() { - let defaultOrdering = this.getOrderingFromString( - this.defaultOrdering || "-creation_date" - ) return { isLoading: true, result: null, page: parseInt(this.defaultPage), query: this.defaultQuery, - paginateBy: parseInt(this.defaultPaginateBy || 12), - orderingDirection: defaultOrdering.direction || "+", - ordering: defaultOrdering.field, orderingOptions: [ ["creation_date", "creation_date"], ["modification_date", "modification_date"],