import { USER_VIDEO_QUOTA_DAILY_VALIDATOR, USER_VIDEO_QUOTA_VALIDATOR } from '@app/shared/form-validators/user-validators'
import { FormReactive, FormValidatorService } from '@app/shared/shared-forms'
import { CustomPageService } from '@app/shared/shared-main/custom-page'
-import { CustomConfig, CustomPage, ServerConfig } from '@shared/models'
+import { CustomConfig, CustomPage, HTMLServerConfig } from '@shared/models'
import { EditConfigurationService } from './edit-configuration.service'
type ComponentCustomConfig = CustomConfig & {
activeNav: string
customConfig: ComponentCustomConfig
- serverConfig: ServerConfig
+ serverConfig: HTMLServerConfig
homepage: CustomPage
}
ngOnInit () {
- this.serverConfig = this.serverService.getTmpConfig()
- this.serverService.getConfig()
- .subscribe(config => this.serverConfig = config)
+ this.serverConfig = this.serverService.getHTMLConfig()
const formGroupData: { [key in keyof ComponentCustomConfig ]: any } = {
instance: {
this.loadConfigAndUpdateForm()
this.loadCategoriesAndLanguages()
+ if (!this.serverConfig.allowEdits) {
+ this.form.disable()
+ }
}
- async formValidated () {
+ formValidated () {
const value: ComponentCustomConfig = this.form.getRawValue()
forkJoin([
this.configService.updateCustomConfig(omit(value, 'instanceCustomHomepage')),
this.customPage.updateInstanceHomepage(value.instanceCustomHomepage.content)
])
- .subscribe(
- ([ resConfig ]) => {
+ .subscribe({
+ next: ([ resConfig ]) => {
const instanceCustomHomepage = {
content: value.instanceCustomHomepage.content
}
// Reload general configuration
this.serverService.resetConfig()
- .subscribe(config => this.serverConfig = config)
+ .subscribe(config => {
+ this.serverConfig = config
+ })
this.updateForm()
this.notifier.success($localize`Configuration updated.`)
},
- err => this.notifier.error(err.message)
- )
+ error: err => this.notifier.error(err.message)
+ })
}
hasConsistentOptions () {
forkJoin([
this.configService.getCustomConfig(),
this.customPage.getInstanceHomepage()
- ])
- .subscribe(([ config, homepage ]) => {
+ ]).subscribe({
+ next: ([ config, homepage ]) => {
this.customConfig = { ...config, instanceCustomHomepage: homepage }
this.updateForm()
this.forceCheck()
},
- err => this.notifier.error(err.message)
- )
+ error: err => this.notifier.error(err.message)
+ })
}
private loadCategoriesAndLanguages () {
forkJoin([
this.serverService.getVideoLanguages(),
this.serverService.getVideoCategories()
- ]).subscribe(
- ([ languages, categories ]) => {
+ ]).subscribe({
+ next: ([ languages, categories ]) => {
this.languageItems = languages.map(l => ({ label: l.label, id: l.id }))
this.categoryItems = categories.map(l => ({ label: l.label, id: l.id + '' }))
},
- err => this.notifier.error(err.message)
- )
+ error: err => this.notifier.error(err.message)
+ })
}
}