mirror of
https://github.com/gotson/komga.git
synced 2025-12-15 21:12:27 +01:00
feat(webui): configure number of task processing threads from server settings
This commit is contained in:
parent
9ef319b703
commit
a837988108
3 changed files with 28 additions and 0 deletions
|
|
@ -861,6 +861,7 @@
|
|||
"label_delete_empty_collections": "Delete empty collections after scan",
|
||||
"label_delete_empty_readlists": "Delete empty read lists after scan",
|
||||
"label_rememberme_duration": "Remember me duration (in days)",
|
||||
"label_task_pool_size": "Task threads",
|
||||
"label_thumbnail_size": "Thumbnails size",
|
||||
"requires_restart": "Requires restart to take effect",
|
||||
"server_settings": "Server Settings"
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ export interface SettingsDto {
|
|||
deleteEmptyReadLists: boolean,
|
||||
rememberMeDurationDays: number,
|
||||
thumbnailSize: ThumbnailSizeDto,
|
||||
taskPoolSize: number,
|
||||
}
|
||||
|
||||
export interface SettingsUpdateDto {
|
||||
|
|
@ -11,6 +12,7 @@ export interface SettingsUpdateDto {
|
|||
rememberMeDurationDays?: number,
|
||||
renewRememberMeKey?: boolean,
|
||||
thumbnailSize?: ThumbnailSizeDto,
|
||||
taskPoolSize?: number,
|
||||
}
|
||||
|
||||
export enum ThumbnailSizeDto {
|
||||
|
|
|
|||
|
|
@ -36,6 +36,16 @@
|
|||
min="1"
|
||||
class="mt-4"
|
||||
/>
|
||||
<v-text-field
|
||||
v-model="form.taskPoolSize"
|
||||
@input="$v.form.taskPoolSize.$touch()"
|
||||
@blur="$v.form.taskPoolSize.$touch()"
|
||||
:error-messages="taskPoolSizeErrors"
|
||||
:label="$t('server_settings.label_task_pool_size')"
|
||||
type="number"
|
||||
min="1"
|
||||
class="mt-4"
|
||||
/>
|
||||
<v-checkbox
|
||||
v-model="form.renewRememberMeKey"
|
||||
@change="$v.form.renewRememberMeKey.$touch()"
|
||||
|
|
@ -90,6 +100,7 @@ export default Vue.extend({
|
|||
rememberMeDurationDays: 365,
|
||||
renewRememberMeKey: false,
|
||||
thumbnailSize: ThumbnailSizeDto.DEFAULT,
|
||||
taskPoolSize: 8,
|
||||
},
|
||||
existingSettings: {
|
||||
deleteEmptyCollections: false,
|
||||
|
|
@ -97,6 +108,7 @@ export default Vue.extend({
|
|||
rememberMeDurationDays: 365,
|
||||
renewRememberMeKey: false,
|
||||
thumbnailSize: ThumbnailSizeDto.DEFAULT,
|
||||
taskPoolSize: 8,
|
||||
},
|
||||
dialogRegenerateThumbnails: false,
|
||||
}),
|
||||
|
|
@ -110,6 +122,10 @@ export default Vue.extend({
|
|||
},
|
||||
renewRememberMeKey: {},
|
||||
thumbnailSize: {},
|
||||
taskPoolSize: {
|
||||
minValue: minValue(1),
|
||||
required,
|
||||
},
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
|
|
@ -129,6 +145,13 @@ export default Vue.extend({
|
|||
!this.$v?.form?.rememberMeDurationDays?.required && errors.push(this.$t('common.required').toString())
|
||||
return errors
|
||||
},
|
||||
taskPoolSizeErrors(): string[] {
|
||||
const errors = [] as string[]
|
||||
if (!this.$v.form?.taskPoolSize?.$dirty) return errors
|
||||
!this.$v?.form?.taskPoolSize?.minValue && errors.push(this.$t('validation.one_or_more').toString())
|
||||
!this.$v?.form?.taskPoolSize?.required && errors.push(this.$t('common.required').toString())
|
||||
return errors
|
||||
},
|
||||
saveDisabled(): boolean {
|
||||
return this.$v.form.$invalid || !this.$v.form.$anyDirty
|
||||
},
|
||||
|
|
@ -158,6 +181,8 @@ export default Vue.extend({
|
|||
this.$_.merge(newSettings, {thumbnailSize: this.form.thumbnailSize})
|
||||
thumbnailSizeHasChanged = this.existingSettings.thumbnailSize != this.form.thumbnailSize
|
||||
}
|
||||
if (this.$v.form?.taskPoolSize?.$dirty)
|
||||
this.$_.merge(newSettings, {taskPoolSize: this.form.taskPoolSize})
|
||||
|
||||
await this.$komgaSettings.updateSettings(newSettings)
|
||||
await this.refreshSettings()
|
||||
|
|
|
|||
Loading…
Reference in a new issue