+
+ private loadForm () {
+ forkJoin([
+ this.configService.getCustomConfig(),
+ this.serverService.getVideoLanguages(),
+ this.serverService.getVideoCategories()
+ ]).subscribe(
+ ([ config, languages, categories ]) => {
+ this.customConfig = config
+
+ this.languageItems = languages.map(l => ({ label: l.label, id: l.id }))
+ this.categoryItems = categories.map(l => ({ label: l.label, id: l.id + '' }))
+
+ this.updateForm()
+ // Force form validation
+ this.forceCheck()
+ },
+
+ err => this.notifier.error(err.message)
+ )
+ }
+
+ private checkTranscodingFields () {
+ const hlsControl = this.form.get('transcoding.hls.enabled')
+ const webtorrentControl = this.form.get('transcoding.webtorrent.enabled')
+
+ webtorrentControl.valueChanges
+ .subscribe(newValue => {
+ if (newValue === false && !hlsControl.disabled) {
+ hlsControl.disable()
+ }
+
+ if (newValue === true && !hlsControl.enabled) {
+ hlsControl.enable()
+ }
+ })
+
+ hlsControl.valueChanges
+ .subscribe(newValue => {
+ if (newValue === false && !webtorrentControl.disabled) {
+ webtorrentControl.disable()
+ }
+
+ if (newValue === true && !webtorrentControl.enabled) {
+ webtorrentControl.enable()
+ }
+ })
+ }
+
+ private checkSignupField () {
+ const signupControl = this.form.get('signup.enabled')
+
+ signupControl.valueChanges
+ .pipe(pairwise())
+ .subscribe(([ oldValue, newValue ]) => {
+ if (oldValue !== true && newValue === true) {
+ // tslint:disable:max-line-length
+ this.signupAlertMessage = $localize`You enabled signup: we automatically enabled the "Block new videos automatically" checkbox of the "Videos" section just below.`
+
+ this.form.patchValue({
+ autoBlacklist: {
+ videos: {
+ ofUsers: {
+ enabled: true
+ }
+ }
+ }
+ })
+ }
+ })
+ }