Add new connection page to support multiple server connection configs

This commit is contained in:
advplyr
2022-04-03 14:24:17 -05:00
parent 7a091dd428
commit f57f0e4e0d
30 changed files with 789 additions and 1284 deletions
-35
View File
@@ -1,35 +0,0 @@
export const state = () => ({
})
export const getters = {
getBookCoverSrc: (state, getters, rootState, rootGetters) => (bookItem, placeholder = '/book_placeholder.jpg') => {
if (!bookItem) return placeholder
var book = bookItem.book
if (!book || !book.cover || book.cover === placeholder) return placeholder
// Absolute URL covers (should no longer be used)
if (book.cover.startsWith('http:') || book.cover.startsWith('https:')) return book.cover
var userToken = rootGetters['user/getToken']
var bookLastUpdate = book.lastUpdate || Date.now()
if (!bookItem.id) {
console.error('No book item id', bookItem)
}
if (process.env.NODE_ENV !== 'production') { // Testing
// return `http://localhost:3333/api/books/${bookItem.id}/cover?token=${userToken}&ts=${bookLastUpdate}`
}
var url = new URL(`/api/books/${bookItem.id}/cover`, rootState.serverUrl)
return `${url}?token=${userToken}&ts=${bookLastUpdate}`
}
}
export const actions = {
}
export const mutations = {
}
+1 -1
View File
@@ -18,7 +18,7 @@ export const getters = {
// return `http://localhost:3333/api/items/${libraryItem.id}/cover?token=${userToken}&ts=${lastUpdate}`
}
var url = new URL(`/api/items/${libraryItem.id}/cover`, rootState.serverUrl)
var url = new URL(`/api/items/${libraryItem.id}/cover`, rootGetters['user/getServerAddress'])
return `${url}?token=${userToken}&ts=${lastUpdate}`
}
}
+2
View File
@@ -47,11 +47,13 @@ export const getters = {
}
export const actions = {
// Listen for network connection
async setupNetworkListener({ state, commit }) {
if (state.isNetworkListenerInit) return
commit('setNetworkListenerInit', true)
var status = await Network.getStatus()
console.log('Network status', status)
commit('setNetworkStatus', status)
Network.addListener('networkStatusChange', (status) => {
-6
View File
@@ -27,12 +27,6 @@ export const actions = {
return false
}
// var library = state.libraries.find(lib => lib.id === libraryId)
// if (library) {
// commit('setCurrentLibrary', libraryId)
// return library
// }
return this.$axios
.$get(`/api/libraries/${libraryId}?include=filterdata`)
.then((data) => {
+14 -10
View File
@@ -1,5 +1,6 @@
export const state = () => ({
user: null,
serverConnectionConfig: null,
userAudiobookData: [],
settings: {
mobileOrderBy: 'addedAt',
@@ -20,6 +21,9 @@ export const getters = {
getToken: (state) => {
return state.user ? state.user.token : null
},
getServerAddress: (state) => {
return state.serverConnectionConfig ? state.serverConnectionConfig.address : null
},
getUserLibraryItemProgress: (state) => (libraryItemId) => {
if (!state.user.libraryItemProgress) return null
return state.user.libraryItemProgress.find(li => li.id == libraryItemId)
@@ -102,6 +106,16 @@ export const actions = {
}
export const mutations = {
logout(state) {
state.user = null
state.serverConnectionConfig = null
},
setUser(state, user) {
state.user = user
},
setServerConnectionConfig(state, serverConnectionConfig) {
state.serverConnectionConfig = serverConnectionConfig
},
setUserAudiobookData(state, abdata) {
var index = state.userAudiobookData.findIndex(uab => uab.audiobookId === abdata.audiobookId)
if (index >= 0) {
@@ -116,16 +130,6 @@ export const mutations = {
setAllUserAudiobookData(state, allAbData) {
state.userAudiobookData = allAbData
},
setUser(state, user) {
state.user = user
if (user) {
if (user.token) this.$localStore.setToken(user.token)
console.log('setUser', user.username)
} else {
this.$localStore.setToken(null)
console.warn('setUser cleared')
}
},
setSettings(state, settings) {
if (!settings) return