aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html4
-rw-r--r--client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts73
-rw-r--r--config/default.yaml1
-rw-r--r--config/production.yaml.example1
-rw-r--r--server/middlewares/validators/config.ts2
5 files changed, 58 insertions, 23 deletions
diff --git a/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html b/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html
index 27f5ef722..ac0447d25 100644
--- a/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html
+++ b/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html
@@ -502,6 +502,10 @@
502 <strong>Experimental, we suggest you to not disable webtorrent support for now</strong> 502 <strong>Experimental, we suggest you to not disable webtorrent support for now</strong>
503 503
504 <p>If you also enabled HLS support, it will multiply videos storage by 2</p> 504 <p>If you also enabled HLS support, it will multiply videos storage by 2</p>
505
506 <br />
507
508 <strong>If disabled, breaks federation with PeerTube instances < 2.1</strong>
505 </ng-container> 509 </ng-container>
506 </ng-template> 510 </ng-template>
507 </my-peertube-checkbox> 511 </my-peertube-checkbox>
diff --git a/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts b/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts
index 3fda0851e..49bb4db0e 100644
--- a/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts
+++ b/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts
@@ -222,25 +222,8 @@ export class EditCustomConfigComponent extends FormReactive implements OnInit {
222 } 222 }
223 223
224 this.buildForm(formGroupData) 224 this.buildForm(formGroupData)
225 225 this.loadForm()
226 forkJoin([ 226 this.checkTranscodingFields()
227 this.configService.getCustomConfig(),
228 this.serverService.getVideoLanguages(),
229 this.serverService.getVideoCategories()
230 ]).subscribe(
231 ([ config, languages, categories ]) => {
232 this.customConfig = config
233
234 this.languageItems = languages.map(l => ({ label: l.label, value: l.id }))
235 this.categoryItems = categories.map(l => ({ label: l.label, value: l.id }))
236
237 this.updateForm()
238 // Force form validation
239 this.forceCheck()
240 },
241
242 err => this.notifier.error(err.message)
243 )
244 } 227 }
245 228
246 isTranscodingEnabled () { 229 isTranscodingEnabled () {
@@ -252,9 +235,7 @@ export class EditCustomConfigComponent extends FormReactive implements OnInit {
252 } 235 }
253 236
254 async formValidated () { 237 async formValidated () {
255 this.configService.updateCustomConfig(this.form.value) 238 this.configService.updateCustomConfig(this.form.getRawValue())
256 .pipe(
257 )
258 .subscribe( 239 .subscribe(
259 res => { 240 res => {
260 this.customConfig = res 241 this.customConfig = res
@@ -290,4 +271,52 @@ export class EditCustomConfigComponent extends FormReactive implements OnInit {
290 private updateForm () { 271 private updateForm () {
291 this.form.patchValue(this.customConfig) 272 this.form.patchValue(this.customConfig)
292 } 273 }
274
275 private loadForm () {
276 forkJoin([
277 this.configService.getCustomConfig(),
278 this.serverService.getVideoLanguages(),
279 this.serverService.getVideoCategories()
280 ]).subscribe(
281 ([ config, languages, categories ]) => {
282 this.customConfig = config
283
284 this.languageItems = languages.map(l => ({ label: l.label, value: l.id }))
285 this.categoryItems = categories.map(l => ({ label: l.label, value: l.id }))
286
287 this.updateForm()
288 // Force form validation
289 this.forceCheck()
290 },
291
292 err => this.notifier.error(err.message)
293 )
294 }
295
296 private checkTranscodingFields () {
297 const hlsControl = this.form.get('transcoding.hls.enabled')
298 const webtorrentControl = this.form.get('transcoding.webtorrent.enabled')
299
300 webtorrentControl.valueChanges
301 .subscribe(newValue => {
302 if (newValue === false && !hlsControl.disabled) {
303 hlsControl.disable()
304 }
305
306 if (newValue === true && !hlsControl.enabled) {
307 hlsControl.enable()
308 }
309 })
310
311 hlsControl.valueChanges
312 .subscribe(newValue => {
313 if (newValue === false && !webtorrentControl.disabled) {
314 webtorrentControl.disable()
315 }
316
317 if (newValue === true && !webtorrentControl.enabled) {
318 webtorrentControl.enable()
319 }
320 })
321 }
293} 322}
diff --git a/config/default.yaml b/config/default.yaml
index 7fe817aa0..8e866c126 100644
--- a/config/default.yaml
+++ b/config/default.yaml
@@ -216,6 +216,7 @@ transcoding:
216 216
217 # Generate videos in a WebTorrent format (what we do since the first PeerTube release) 217 # Generate videos in a WebTorrent format (what we do since the first PeerTube release)
218 # If you also enabled the hls format, it will multiply videos storage by 2 218 # If you also enabled the hls format, it will multiply videos storage by 2
219 # If disabled, breaks federation with PeerTube instances < 2.1
219 webtorrent: 220 webtorrent:
220 enabled: true 221 enabled: true
221 222
diff --git a/config/production.yaml.example b/config/production.yaml.example
index 629d0c4b6..68d29d26f 100644
--- a/config/production.yaml.example
+++ b/config/production.yaml.example
@@ -230,6 +230,7 @@ transcoding:
230 230
231 # Generate videos in a WebTorrent format (what we do since the first PeerTube release) 231 # Generate videos in a WebTorrent format (what we do since the first PeerTube release)
232 # If you also enabled the hls format, it will multiply videos storage by 2 232 # If you also enabled the hls format, it will multiply videos storage by 2
233 # If disabled, breaks federation with PeerTube instances < 2.1
233 webtorrent: 234 webtorrent:
234 enabled: true 235 enabled: true
235 236
diff --git a/server/middlewares/validators/config.ts b/server/middlewares/validators/config.ts
index d86fa700b..2d1f61947 100644
--- a/server/middlewares/validators/config.ts
+++ b/server/middlewares/validators/config.ts
@@ -45,7 +45,7 @@ const customConfigUpdateValidator = [
45 body('transcoding.resolutions.1080p').isBoolean().withMessage('Should have a valid transcoding 1080p resolution enabled boolean'), 45 body('transcoding.resolutions.1080p').isBoolean().withMessage('Should have a valid transcoding 1080p resolution enabled boolean'),
46 46
47 body('transcoding.webtorrent.enabled').isBoolean().withMessage('Should have a valid webtorrent transcoding enabled boolean'), 47 body('transcoding.webtorrent.enabled').isBoolean().withMessage('Should have a valid webtorrent transcoding enabled boolean'),
48 body('transcoding.hls.enabled').isBoolean().withMessage('Should have a valid webtorrent transcoding enabled boolean'), 48 body('transcoding.hls.enabled').isBoolean().withMessage('Should have a valid hls transcoding enabled boolean'),
49 49
50 body('import.videos.http.enabled').isBoolean().withMessage('Should have a valid import video http enabled boolean'), 50 body('import.videos.http.enabled').isBoolean().withMessage('Should have a valid import video http enabled boolean'),
51 body('import.videos.torrent.enabled').isBoolean().withMessage('Should have a valid import video torrent enabled boolean'), 51 body('import.videos.torrent.enabled').isBoolean().withMessage('Should have a valid import video torrent enabled boolean'),