diff --git a/Dockerfile b/Dockerfile
index 816bdd3c..f9c46117 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -57,7 +57,7 @@ WORKDIR /app
# Copy compiled frontend and server from build stages
COPY --from=build-client /client/dist /app/client/dist
COPY --from=build-server /server /app
-COPY --from=build-server ${NUSQLITE3_PATH} ${NUSQLITE3_PATH}
+COPY --from=build-server /usr/local/lib/nusqlite3 /usr/local/lib/nusqlite3
EXPOSE 80
diff --git a/client/components/app/ConfigSideNav.vue b/client/components/app/ConfigSideNav.vue
index 32e7e694..50fa7a06 100644
--- a/client/components/app/ConfigSideNav.vue
+++ b/client/components/app/ConfigSideNav.vue
@@ -70,11 +70,6 @@ export default {
title: this.$strings.HeaderUsers,
path: '/config/users'
},
- {
- id: 'config-api-keys',
- title: this.$strings.HeaderApiKeys,
- path: '/config/api-keys'
- },
{
id: 'config-sessions',
title: this.$strings.HeaderListeningSessions,
diff --git a/client/components/app/LazyBookshelf.vue b/client/components/app/LazyBookshelf.vue
index 854b61b2..61331fb9 100644
--- a/client/components/app/LazyBookshelf.vue
+++ b/client/components/app/LazyBookshelf.vue
@@ -778,6 +778,10 @@ export default {
windowResize() {
this.executeRebuild()
},
+ socketInit() {
+ // Server settings are set on socket init
+ this.executeRebuild()
+ },
initListeners() {
window.addEventListener('resize', this.windowResize)
@@ -790,6 +794,7 @@ export default {
})
this.$eventBus.$on('bookshelf_clear_selection', this.clearSelectedEntities)
+ this.$eventBus.$on('socket_init', this.socketInit)
this.$eventBus.$on('user-settings', this.settingsUpdated)
if (this.$root.socket) {
@@ -821,6 +826,7 @@ export default {
}
this.$eventBus.$off('bookshelf_clear_selection', this.clearSelectedEntities)
+ this.$eventBus.$off('socket_init', this.socketInit)
this.$eventBus.$off('user-settings', this.settingsUpdated)
if (this.$root.socket) {
diff --git a/client/components/cards/AuthorCard.vue b/client/components/cards/AuthorCard.vue
index 05347393..82645c57 100644
--- a/client/components/cards/AuthorCard.vue
+++ b/client/components/cards/AuthorCard.vue
@@ -71,6 +71,9 @@ export default {
coverHeight() {
return this.cardHeight
},
+ userToken() {
+ return this.store.getters['user/getToken']
+ },
_author() {
return this.author || {}
},
diff --git a/client/components/cards/LazyBookCard.vue b/client/components/cards/LazyBookCard.vue
index 41b73310..35c959fa 100644
--- a/client/components/cards/LazyBookCard.vue
+++ b/client/components/cards/LazyBookCard.vue
@@ -198,7 +198,7 @@ export default {
return this.store.getters['user/getSizeMultiplier']
},
dateFormat() {
- return this.store.getters['getServerSetting']('dateFormat')
+ return this.store.state.serverSettings.dateFormat
},
_libraryItem() {
return this.libraryItem || {}
diff --git a/client/components/cards/LazySeriesCard.vue b/client/components/cards/LazySeriesCard.vue
index 34cea7e2..3532095b 100644
--- a/client/components/cards/LazySeriesCard.vue
+++ b/client/components/cards/LazySeriesCard.vue
@@ -71,7 +71,7 @@ export default {
return this.height * this.sizeMultiplier
},
dateFormat() {
- return this.store.getters['getServerSetting']('dateFormat')
+ return this.store.state.serverSettings.dateFormat
},
labelFontSize() {
if (this.width < 160) return 0.75
diff --git a/client/components/controls/LibraryFilterSelect.vue b/client/components/controls/LibraryFilterSelect.vue
index 62a9b803..f5eec41a 100644
--- a/client/components/controls/LibraryFilterSelect.vue
+++ b/client/components/controls/LibraryFilterSelect.vue
@@ -94,9 +94,6 @@ export default {
userIsAdminOrUp() {
return this.$store.getters['user/getIsAdminOrUp']
},
- userCanAccessExplicitContent() {
- return this.$store.getters['user/getUserCanAccessExplicitContent']
- },
libraryMediaType() {
return this.$store.getters['libraries/getCurrentLibraryMediaType']
},
@@ -242,15 +239,6 @@ export default {
sublist: false
}
]
-
- if (this.userCanAccessExplicitContent) {
- items.push({
- text: this.$strings.LabelExplicit,
- value: 'explicit',
- sublist: false
- })
- }
-
if (this.userIsAdminOrUp) {
items.push({
text: this.$strings.LabelShareOpen,
@@ -261,7 +249,7 @@ export default {
return items
},
podcastItems() {
- const items = [
+ return [
{
text: this.$strings.LabelAll,
value: 'all'
@@ -295,16 +283,6 @@ export default {
sublist: false
}
]
-
- if (this.userCanAccessExplicitContent) {
- items.push({
- text: this.$strings.LabelExplicit,
- value: 'explicit',
- sublist: false
- })
- }
-
- return items
},
selectItems() {
if (this.isSeries) return this.seriesItems
diff --git a/client/components/covers/AuthorImage.vue b/client/components/covers/AuthorImage.vue
index 084492b0..e320e552 100644
--- a/client/components/covers/AuthorImage.vue
+++ b/client/components/covers/AuthorImage.vue
@@ -39,6 +39,9 @@ export default {
}
},
computed: {
+ userToken() {
+ return this.$store.getters['user/getToken']
+ },
_author() {
return this.author || {}
},
diff --git a/client/components/modals/AccountModal.vue b/client/components/modals/AccountModal.vue
index 6f4b7b67..71ac8155 100644
--- a/client/components/modals/AccountModal.vue
+++ b/client/components/modals/AccountModal.vue
@@ -309,9 +309,9 @@ export default {
} else {
console.log('Account updated', data.user)
- if (data.user.id === this.user.id && data.user.accessToken !== this.user.accessToken) {
- console.log('Current user access token was updated')
- this.$store.commit('user/setAccessToken', data.user.accessToken)
+ if (data.user.id === this.user.id && data.user.token !== this.user.token) {
+ console.log('Current user token was updated')
+ this.$store.commit('user/setUserToken', data.user.token)
}
this.$toast.success(this.$strings.ToastAccountUpdateSuccess)
@@ -351,6 +351,9 @@ export default {
this.$toast.error(errMsg || 'Failed to create account')
})
},
+ toggleActive() {
+ this.newUser.isActive = !this.newUser.isActive
+ },
userTypeUpdated(type) {
this.newUser.permissions = {
download: type !== 'guest',
diff --git a/client/components/modals/ApiKeyCreatedModal.vue b/client/components/modals/ApiKeyCreatedModal.vue
deleted file mode 100644
index 96442a17..00000000
--- a/client/components/modals/ApiKeyCreatedModal.vue
+++ /dev/null
@@ -1,60 +0,0 @@
-
- {{ title }} {{ title }}
{{ episode.subtitle }}
-Published {{ episode.publishedAt ? $dateDistanceFromNow(episode.publishedAt) : 'Unknown' }}
- -{{ $strings.LabelDuration }}: {{ $elapsedPretty(episode.durationSeconds) }}
- -{{ $strings.LabelSize }}: {{ $bytesPretty(Number(episode.enclosure.length)) }}
-Published {{ episode.publishedAt ? $dateDistanceFromNow(episode.publishedAt) : 'Unknown' }}
diff --git a/client/components/modals/podcast/RemoveEpisode.vue b/client/components/modals/podcast/RemoveEpisode.vue index b2cebe84..38dd71cf 100644 --- a/client/components/modals/podcast/RemoveEpisode.vue +++ b/client/components/modals/podcast/RemoveEpisode.vue @@ -11,7 +11,7 @@ {{ $getString('MessageConfirmRemoveEpisode', [episodeTitle]) }}{{ $getString('MessageConfirmRemoveEpisodes', [episodes.length]) }}
-{{ $strings.MessageConfirmRemoveEpisodeNote }}
+Note: This does not delete the audio file unless toggling "Hard delete file"
{{ title }}
- +{{ $strings.MessageNoDescription }}
@@ -34,12 +34,6 @@ {{ audioFileSize }} -{{ $strings.LabelDuration }}
-- {{ audioFileDuration }} -
-{{ $strings.LabelName }} | -{{ $strings.LabelApiKeyUser }} | -{{ $strings.LabelExpiresAt }} | -{{ $strings.LabelCreatedAt }} | -- |
---|---|---|---|---|
-
-
- {{ apiKey.name }} - |
-
- Error - |
-
- {{ getExpiresAtText(apiKey) }} -{{ $strings.LabelExpiresNever }} - |
-
- |
-
-
-
-
-
-
-
-
-
- |
-
{{ $strings.LabelNoApiKeys }}
-{{ label }}
+{{ label }}
{{ $strings.MessageNoChapters }}
{{ $elapsedPrettyLocalized(session.timeListening) }}
+{{ $elapsedPretty(session.timeListening) }}
{{ $secondsToTimestamp(session.currentTime) }}
@@ -250,10 +250,10 @@ export default { return user?.username || null }, dateFormat() { - return this.$store.getters['getServerSetting']('dateFormat') + return this.$store.state.serverSettings.dateFormat }, timeFormat() { - return this.$store.getters['getServerSetting']('timeFormat') + return this.$store.state.serverSettings.timeFormat }, numSelected() { return this.listeningSessions.filter((s) => s.selected).length diff --git a/client/pages/config/users/_id/index.vue b/client/pages/config/users/_id/index.vue index b48147d3..e2f8e208 100644 --- a/client/pages/config/users/_id/index.vue +++ b/client/pages/config/users/_id/index.vue @@ -13,8 +13,8 @@{{ $elapsedPrettyLocalized(session.timeListening) }}
+{{ $elapsedPretty(session.timeListening) }}
{{ $secondsToTimestamp(session.currentTime) }}
@@ -98,10 +98,10 @@ export default { return this.$store.getters['users/getIsUserOnline'](this.user.id) }, dateFormat() { - return this.$store.getters['getServerSetting']('dateFormat') + return this.$store.state.serverSettings.dateFormat }, timeFormat() { - return this.$store.getters['getServerSetting']('timeFormat') + return this.$store.state.serverSettings.timeFormat } }, methods: { diff --git a/client/pages/item/_id/index.vue b/client/pages/item/_id/index.vue index 1d8f0f20..6042f92a 100644 --- a/client/pages/item/_id/index.vue +++ b/client/pages/item/_id/index.vue @@ -193,7 +193,7 @@ export default { return `${process.env.serverUrl}/api/items/${this.libraryItemId}/download?token=${this.userToken}` }, dateFormat() { - return this.$store.getters['getServerSetting']('dateFormat') + return this.$store.state.serverSettings.dateFormat }, userIsAdminOrUp() { return this.$store.getters['user/getIsAdminOrUp'] diff --git a/client/pages/library/_library/narrators.vue b/client/pages/library/_library/narrators.vue index 9e58bf14..17160213 100644 --- a/client/pages/library/_library/narrators.vue +++ b/client/pages/library/_library/narrators.vue @@ -10,7 +10,7 @@{{ narrator.name }}
diff --git a/client/pages/library/_library/podcast/latest.vue b/client/pages/library/_library/podcast/latest.vue index 4f12043e..4da25f3e 100644 --- a/client/pages/library/_library/podcast/latest.vue +++ b/client/pages/library/_library/podcast/latest.vue @@ -141,7 +141,7 @@ export default { return episodeIds }, dateFormat() { - return this.$store.getters['getServerSetting']('dateFormat') + return this.$store.state.serverSettings.dateFormat } }, methods: { diff --git a/client/pages/login.vue b/client/pages/login.vue index 01adadcd..3f48509f 100644 --- a/client/pages/login.vue +++ b/client/pages/login.vue @@ -40,15 +40,6 @@{{ error }}
-{{ $strings.MessageAuthenticationSecurityMessage }}
- {{ $strings.LabelMoreInfo }} -