Resolve "Option to remember our display settings "
This commit is contained in:
parent
93176d71cf
commit
82744bf193
|
@ -0,0 +1 @@
|
||||||
|
Remember display settings in Album, Artist, Radio and Playlist views (#391)
|
|
@ -119,18 +119,12 @@ export default {
|
||||||
TagsSelector,
|
TagsSelector,
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
let defaultOrdering = this.getOrderingFromString(
|
|
||||||
this.defaultOrdering || "-creation_date"
|
|
||||||
)
|
|
||||||
return {
|
return {
|
||||||
isLoading: true,
|
isLoading: true,
|
||||||
result: null,
|
result: null,
|
||||||
page: parseInt(this.defaultPage),
|
page: parseInt(this.defaultPage),
|
||||||
query: this.defaultQuery,
|
query: this.defaultQuery,
|
||||||
tags: (this.defaultTags || []).filter((t) => { return t.length > 0 }),
|
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"]]
|
orderingOptions: [["creation_date", "creation_date"], ["title", "album_title"]]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -107,18 +107,12 @@ export default {
|
||||||
TagsSelector,
|
TagsSelector,
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
let defaultOrdering = this.getOrderingFromString(
|
|
||||||
this.defaultOrdering || "-creation_date"
|
|
||||||
)
|
|
||||||
return {
|
return {
|
||||||
isLoading: true,
|
isLoading: true,
|
||||||
result: null,
|
result: null,
|
||||||
page: parseInt(this.defaultPage),
|
page: parseInt(this.defaultPage),
|
||||||
query: this.defaultQuery,
|
query: this.defaultQuery,
|
||||||
tags: (this.defaultTags || []).filter((t) => { return t.length > 0 }),
|
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"]]
|
orderingOptions: [["creation_date", "creation_date"], ["name", "name"]]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -93,7 +93,7 @@
|
||||||
v-for="radio in result.results"
|
v-for="radio in result.results"
|
||||||
:key="radio.id"
|
:key="radio.id"
|
||||||
:custom-radio="radio"></radio-card>
|
:custom-radio="radio"></radio-card>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="ui center aligned basic segment">
|
<div class="ui center aligned basic segment">
|
||||||
<pagination
|
<pagination
|
||||||
|
@ -133,17 +133,11 @@ export default {
|
||||||
Pagination
|
Pagination
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
let defaultOrdering = this.getOrderingFromString(
|
|
||||||
this.defaultOrdering || "-creation_date"
|
|
||||||
)
|
|
||||||
return {
|
return {
|
||||||
isLoading: true,
|
isLoading: true,
|
||||||
result: null,
|
result: null,
|
||||||
page: parseInt(this.defaultPage),
|
page: parseInt(this.defaultPage),
|
||||||
query: this.defaultQuery,
|
query: this.defaultQuery,
|
||||||
paginateBy: parseInt(this.defaultPaginateBy || 12),
|
|
||||||
orderingDirection: defaultOrdering.direction || "+",
|
|
||||||
ordering: defaultOrdering.field,
|
|
||||||
orderingOptions: [["creation_date", "creation_date"], ["name", "name"]]
|
orderingOptions: [["creation_date", "creation_date"], ["name", "name"]]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -3,6 +3,41 @@ export default {
|
||||||
props: {
|
props: {
|
||||||
defaultOrdering: {type: String, required: false}
|
defaultOrdering: {type: String, required: false}
|
||||||
},
|
},
|
||||||
|
computed: {
|
||||||
|
paginateBy: {
|
||||||
|
set(paginateBy) {
|
||||||
|
this.$store.commit('ui/paginateBy', {
|
||||||
|
route: this.$route.name,
|
||||||
|
value: paginateBy
|
||||||
|
})
|
||||||
|
},
|
||||||
|
get() {
|
||||||
|
return this.$store.state.ui.routePreferences[this.$route.name].paginateBy
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ordering: {
|
||||||
|
set(ordering) {
|
||||||
|
this.$store.commit('ui/ordering', {
|
||||||
|
route: this.$route.name,
|
||||||
|
value: ordering
|
||||||
|
})
|
||||||
|
},
|
||||||
|
get() {
|
||||||
|
return this.$store.state.ui.routePreferences[this.$route.name].ordering
|
||||||
|
}
|
||||||
|
},
|
||||||
|
orderingDirection: {
|
||||||
|
set(orderingDirection) {
|
||||||
|
this.$store.commit('ui/orderingDirection', {
|
||||||
|
route: this.$route.name,
|
||||||
|
value: orderingDirection
|
||||||
|
})
|
||||||
|
},
|
||||||
|
get() {
|
||||||
|
return this.$store.state.ui.routePreferences[this.$route.name].orderingDirection
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
getOrderingFromString (s) {
|
getOrderingFromString (s) {
|
||||||
let parts = s.split('-')
|
let parts = s.split('-')
|
||||||
|
|
|
@ -40,7 +40,7 @@ export default new Vuex.Store({
|
||||||
}),
|
}),
|
||||||
createPersistedState({
|
createPersistedState({
|
||||||
key: 'ui',
|
key: 'ui',
|
||||||
paths: ['ui.currentLanguage', 'ui.selectedLanguage', 'ui.momentLocale', 'ui.theme']
|
paths: ['ui.currentLanguage', 'ui.selectedLanguage', 'ui.momentLocale', 'ui.theme', 'ui.routePreferences']
|
||||||
}),
|
}),
|
||||||
createPersistedState({
|
createPersistedState({
|
||||||
key: 'radios',
|
key: 'radios',
|
||||||
|
|
|
@ -24,7 +24,29 @@ export default {
|
||||||
'mutation.updated': {},
|
'mutation.updated': {},
|
||||||
'report.created': {},
|
'report.created': {},
|
||||||
},
|
},
|
||||||
pageTitle: null
|
pageTitle: null,
|
||||||
|
routePreferences: {
|
||||||
|
"library.albums.browse": {
|
||||||
|
paginateBy: 25,
|
||||||
|
orderingDirection: "-",
|
||||||
|
ordering: "creation_date",
|
||||||
|
},
|
||||||
|
"library.artists.browse": {
|
||||||
|
paginateBy: 30,
|
||||||
|
orderingDirection: "-",
|
||||||
|
ordering: "creation_date",
|
||||||
|
},
|
||||||
|
"library.radios.browse": {
|
||||||
|
paginateBy: 12,
|
||||||
|
orderingDirection: "-",
|
||||||
|
ordering: "creation_date",
|
||||||
|
},
|
||||||
|
"library.playlists.browse": {
|
||||||
|
paginateBy: 25,
|
||||||
|
orderingDirection: "-",
|
||||||
|
ordering: "creation_date",
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
getters: {
|
getters: {
|
||||||
showInstanceSupportMessage: (state, getters, rootState) => {
|
showInstanceSupportMessage: (state, getters, rootState) => {
|
||||||
|
@ -103,7 +125,16 @@ export default {
|
||||||
},
|
},
|
||||||
pageTitle: (state, value) => {
|
pageTitle: (state, value) => {
|
||||||
state.pageTitle = 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: {
|
actions: {
|
||||||
fetchUnreadNotifications ({commit}, payload) {
|
fetchUnreadNotifications ({commit}, payload) {
|
||||||
|
|
|
@ -94,17 +94,11 @@ export default {
|
||||||
Pagination
|
Pagination
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
let defaultOrdering = this.getOrderingFromString(
|
|
||||||
this.defaultOrdering || "-creation_date"
|
|
||||||
)
|
|
||||||
return {
|
return {
|
||||||
isLoading: true,
|
isLoading: true,
|
||||||
result: null,
|
result: null,
|
||||||
page: parseInt(this.defaultPage),
|
page: parseInt(this.defaultPage),
|
||||||
query: this.defaultQuery,
|
query: this.defaultQuery,
|
||||||
paginateBy: parseInt(this.defaultPaginateBy || 12),
|
|
||||||
orderingDirection: defaultOrdering.direction || "+",
|
|
||||||
ordering: defaultOrdering.field,
|
|
||||||
orderingOptions: [
|
orderingOptions: [
|
||||||
["creation_date", "creation_date"],
|
["creation_date", "creation_date"],
|
||||||
["modification_date", "modification_date"],
|
["modification_date", "modification_date"],
|
||||||
|
|
Loading…
Reference in New Issue