aboutsummaryrefslogtreecommitdiffhomepage
path: root/client/src/app/+admin
diff options
context:
space:
mode:
Diffstat (limited to 'client/src/app/+admin')
-rw-r--r--client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html147
1 files changed, 93 insertions, 54 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 50df8a8ac..5aa6fda3c 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
@@ -63,20 +63,30 @@
63 <div i18n class="inner-form-title">Moderation & NSFW</div> 63 <div i18n class="inner-form-title">Moderation & NSFW</div>
64 64
65 <div class="form-group"> 65 <div class="form-group">
66 <my-peertube-checkbox 66 <my-peertube-checkbox inputName="instanceIsNSFW" formControlName="isNSFW">
67 inputName="instanceIsNSFW" formControlName="isNSFW" 67 <ng-template ptTemplate="label">
68 i18n-labelText labelText="This instance is dedicated to sensitive or NSFW content" 68 <ng-container i18n>This instance is dedicated to sensitive or NSFW content</ng-container>
69 i18n-helpHtml helpHtml="Enabling it will allow other administrators to know that you are mainly federating sensitive content.<br /><br /> 69 </ng-template>
70 Moreover, the NSFW checkbox on video upload will be automatically checked by default." 70
71 ></my-peertube-checkbox> 71 <ng-template ptTemplate="help">
72 <ng-container i18n>
73 Enabling it will allow other administrators to know that you are mainly federating sensitive content.<br /><br />
74 Moreover, the NSFW checkbox on video upload will be automatically checked by default.
75 </ng-container>
76 </ng-template>
77 </my-peertube-checkbox>
72 </div> 78 </div>
73 79
74 <div class="form-group"> 80 <div class="form-group">
75 <label i18n for="instanceDefaultNSFWPolicy">Policy on videos containing sensitive content</label> 81 <label i18n for="instanceDefaultNSFWPolicy">Policy on videos containing sensitive content</label>
76 <my-help 82
77 helpType="custom" i18n-customHtml 83 <my-help>
78 customHtml="With <strong>Do not list</strong> or <strong>Blur thumbnails</strong>, a confirmation will be requested to watch the video." 84 <ng-template ptTemplate="customHtml">
79 ></my-help> 85 <ng-container i18n>
86 With <strong>Do not list</strong> or <strong>Blur thumbnails</strong>, a confirmation will be requested to watch the video.
87 </ng-container>
88 </ng-template>
89 </my-help>
80 90
81 <div class="peertube-select-container"> 91 <div class="peertube-select-container">
82 <select id="instanceDefaultNSFWPolicy" formControlName="defaultNSFWPolicy"> 92 <select id="instanceDefaultNSFWPolicy" formControlName="defaultNSFWPolicy">
@@ -374,10 +384,13 @@
374 384
375 <div class="form-group"> 385 <div class="form-group">
376 <label i18n for="signupLimit">Your Twitter username</label> 386 <label i18n for="signupLimit">Your Twitter username</label>
377 <my-help 387
378 helpType="custom" i18n-customHtml 388 <my-help>
379 customHtml="Indicates the Twitter account for the website or platform on which the content was published." 389 <ng-template ptTemplate="customHtml">
380 ></my-help> 390 <ng-container i18n>Indicates the Twitter account for the website or platform on which the content was published.</ng-container>
391 </ng-template>
392 </my-help>
393
381 <input 394 <input
382 type="text" id="servicesTwitterUsername" 395 type="text" id="servicesTwitterUsername"
383 formControlName="username" [ngClass]="{ 'input-error': formErrors['services.twitter.username'] }" 396 formControlName="username" [ngClass]="{ 'input-error': formErrors['services.twitter.username'] }"
@@ -386,13 +399,21 @@
386 </div> 399 </div>
387 400
388 <div class="form-group"> 401 <div class="form-group">
389 <my-peertube-checkbox 402 <my-peertube-checkbox inputName="servicesTwitterWhitelisted" formControlName="whitelisted">
390 inputName="servicesTwitterWhitelisted" formControlName="whitelisted" 403 <ng-template ptTemplate="label">
391 i18n-labelText labelText="Instance whitelisted by Twitter" 404 <ng-container i18n>Instance whitelisted by Twitter</ng-container>
392 i18n-helpHtml helpHtml="If your instance is whitelisted by Twitter, a video player will be embedded in the Twitter feed on PeerTube video share.<br /> 405 </ng-template>
393 If the instance is not whitelisted, we use an image link card that will redirect on your PeerTube instance.<br /><br /> 406
394 Check this checkbox, save the configuration and test with a video URL of your instance (https://example.com/videos/watch/blabla) on <a target='_blank' rel='noopener noreferrer' href='https://cards-dev.twitter.com/validator'>https://cards-dev.twitter.com/validator</a> to see if you instance is whitelisted." 407 <ng-template ptTemplate="help">
395 ></my-peertube-checkbox> 408 <ng-container i18n>
409 If your instance is whitelisted by Twitter, a video player will be embedded in the Twitter feed on PeerTube video share.<br />
410 If the instance is not whitelisted, we use an image link card that will redirect on your PeerTube instance.<br /><br />
411 Check this checkbox, save the configuration and test with a video URL of your instance (https://example.com/videos/watch/blabla) on
412 <a target='_blank' rel='noopener noreferrer' href='https://cards-dev.twitter.com/validator'>https://cards-dev.twitter.com/validator</a>
413 to see if you instance is whitelisted.
414 </ng-container>
415 </ng-template>
416 </my-peertube-checkbox>
396 </div> 417 </div>
397 418
398 </ng-container> 419 </ng-container>
@@ -408,11 +429,15 @@
408 429
409 <ng-container formGroupName="transcoding"> 430 <ng-container formGroupName="transcoding">
410 <div class="form-group"> 431 <div class="form-group">
411 <my-peertube-checkbox 432 <my-peertube-checkbox inputName="transcodingEnabled" formControlName="enabled">
412 inputName="transcodingEnabled" formControlName="enabled" 433 <ng-template ptTemplate="label">
413 i18n-labelText labelText="Transcoding enabled" 434 <ng-container i18n>Transcoding enabled</ng-container>
414 i18n-helpHtml helpHtml="If you disable transcoding, many videos from your users will not work!" 435 </ng-template>
415 ></my-peertube-checkbox> 436
437 <ng-template ptTemplate="help">
438 <ng-container i18n>If you disable transcoding, many videos from your users will not work!</ng-container>
439 </ng-template>
440 </my-peertube-checkbox>
416 </div> 441 </div>
417 442
418 <ng-container *ngIf="isTranscodingEnabled()"> 443 <ng-container *ngIf="isTranscodingEnabled()">
@@ -421,16 +446,22 @@
421 <my-peertube-checkbox 446 <my-peertube-checkbox
422 inputName="transcodingAllowAdditionalExtensions" formControlName="allowAdditionalExtensions" 447 inputName="transcodingAllowAdditionalExtensions" formControlName="allowAdditionalExtensions"
423 i18n-labelText labelText="Allow additional extensions" 448 i18n-labelText labelText="Allow additional extensions"
424 i18n-helpHtml helpHtml="Allow your users to upload .mkv, .mov, .avi, .flv videos" 449 >
425 ></my-peertube-checkbox> 450 <ng-template ptTemplate="help">
451 <ng-container i18n>Allow your users to upload .mkv, .mov, .avi, .flv videos</ng-container>
452 </ng-template>
453 </my-peertube-checkbox>
426 </div> 454 </div>
427 455
428 <div class="form-group"> 456 <div class="form-group">
429 <my-peertube-checkbox 457 <my-peertube-checkbox
430 inputName="transcodingAllowAudioFiles" formControlName="allowAudioFiles" 458 inputName="transcodingAllowAudioFiles" formControlName="allowAudioFiles"
431 i18n-labelText labelText="Allow audio files upload" 459 i18n-labelText labelText="Allow audio files upload"
432 i18n-helpHtml helpHtml="Allow your users to upload audio files that will be merged with the preview file on upload" 460 >
433 ></my-peertube-checkbox> 461 <ng-template ptTemplate="help">
462 <ng-container i18n>Allow your users to upload audio files that will be merged with the preview file on upload</ng-container>
463 </ng-template>
464 </my-peertube-checkbox>
434 </div> 465 </div>
435 466
436 <div class="form-group"> 467 <div class="form-group">
@@ -460,10 +491,11 @@
460 <div i18n class="inner-form-title"> 491 <div i18n class="inner-form-title">
461 Cache 492 Cache
462 493
463 <my-help 494 <my-help>
464 helpType="custom" i18n-customHtml 495 <ng-template ptTemplate="customHtml">
465 customHtml="Some files are not federated (previews, captions). We fetch them directly from the origin instance and cache them." 496 <ng-container i18n>Some files are not federated (previews, captions). We fetch them directly from the origin instance and cache them.</ng-container>
466 ></my-help> 497 </ng-template>
498 </my-help>
467 </div> 499 </div>
468 500
469 <ng-container formGroupName="cache"> 501 <ng-container formGroupName="cache">
@@ -492,38 +524,45 @@
492 <ng-container formGroupName="customizations"> 524 <ng-container formGroupName="customizations">
493 <div class="form-group"> 525 <div class="form-group">
494 <label i18n for="customizationJavascript">JavaScript</label> 526 <label i18n for="customizationJavascript">JavaScript</label>
495 <my-help 527 <my-help>
496 helpType="custom" i18n-customHtml 528 <ng-template ptTemplate="customHtml">
497 customHtml="Write directly JavaScript code.<br />Example: <pre>console.log('my instance is amazing');</pre>" 529 <ng-container i18n>
498 ></my-help> 530 Write directly JavaScript code.<br />Example: <pre>console.log('my instance is amazing');</pre>
531 </ng-container>
532 </ng-template>
533 </my-help>
534
499 <textarea 535 <textarea
500 id="customizationJavascript" formControlName="javascript" 536 id="customizationJavascript" formControlName="javascript"
501 [ngClass]="{ 'input-error': formErrors['instance.customizations.javascript'] }" 537 [ngClass]="{ 'input-error': formErrors['instance.customizations.javascript'] }"
502 ></textarea> 538 ></textarea>
539
503 <div *ngIf="formErrors.instance.customizations.javascript" class="form-error">{{ formErrors.instance.customizations.javascript }}</div> 540 <div *ngIf="formErrors.instance.customizations.javascript" class="form-error">{{ formErrors.instance.customizations.javascript }}</div>
504 </div> 541 </div>
505 542
506 <div class="form-group"> 543 <div class="form-group">
507 <label for="customizationCSS">CSS</label> 544 <label for="customizationCSS">CSS</label>
508 <my-help 545
509 helpType="custom" 546 <my-help>
510 i18n-customHtml 547 <ng-template ptTemplate="customHtml">
511 customHtml=" 548 <ng-container i18n>
512 Write directly CSS code. Example:<br /><br /> 549 Write directly CSS code. Example:<br /><br />
513 <pre> 550<pre>
514 #custom-css {{ '{' }} 551#custom-css {{ '{' }}
515 color: red; 552 color: red;
516 {{ '}' }} 553{{ '}' }}
517 </pre> 554</pre>
518 555
519 Prepend with <em>#custom-css</em> to override styles. Example:<br /><br /> 556 Prepend with <em>#custom-css</em> to override styles. Example:<br /><br />
520 <pre> 557<pre>
521 #custom-css .logged-in-email {{ '{' }} 558#custom-css .logged-in-email {{ '{' }}
522 color: red; 559 color: red;
523 {{ '}' }} 560{{ '}' }}
524 </pre> 561</pre>
525 " 562 </ng-container>
526 ></my-help> 563 </ng-template>
564 </my-help>
565
527 <textarea 566 <textarea
528 id="customizationCSS" formControlName="css" 567 id="customizationCSS" formControlName="css"
529 [ngClass]="{ 'input-error': formErrors['instance.customizations.css'] }" 568 [ngClass]="{ 'input-error': formErrors['instance.customizations.css'] }"