aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html100
-rw-r--r--client/src/app/app.component.ts3
2 files changed, 57 insertions, 46 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 77e857d6b..dfc9a6014 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
@@ -486,6 +486,9 @@
486 <div class="form-row mt-5"> <!-- twitter grid --> 486 <div class="form-row mt-5"> <!-- twitter grid -->
487 <div class="form-group col-12 col-lg-4 col-xl-3"> 487 <div class="form-group col-12 col-lg-4 col-xl-3">
488 <div i18n class="inner-form-title">TWITTER</div> 488 <div i18n class="inner-form-title">TWITTER</div>
489 <div i18n class="inner-form-description">
490 Optional. If any, provide the Twitter account representing your instance to improve link previews.
491 </div>
489 </div> 492 </div>
490 493
491 <div class="form-group form-group-right col-12 col-lg-8 col-xl-9"> 494 <div class="form-group form-group-right col-12 col-lg-8 col-xl-9">
@@ -496,12 +499,6 @@
496 <div class="form-group"> 499 <div class="form-group">
497 <label i18n for="signupLimit">Your Twitter username</label> 500 <label i18n for="signupLimit">Your Twitter username</label>
498 501
499 <my-help>
500 <ng-template ptTemplate="customHtml">
501 <ng-container i18n>Indicates the Twitter account for the website or platform on which the content was published.</ng-container>
502 </ng-template>
503 </my-help>
504
505 <input 502 <input
506 type="text" id="servicesTwitterUsername" 503 type="text" id="servicesTwitterUsername"
507 formControlName="username" [ngClass]="{ 'input-error': formErrors['services.twitter.username'] }" 504 formControlName="username" [ngClass]="{ 'input-error': formErrors['services.twitter.username'] }"
@@ -542,6 +539,10 @@
542 <div class="form-row mt-5"> <!-- transcoding grid --> 539 <div class="form-row mt-5"> <!-- transcoding grid -->
543 <div class="form-group col-12 col-lg-4 col-xl-3"> 540 <div class="form-group col-12 col-lg-4 col-xl-3">
544 <div i18n class="inner-form-title">TRANSCODING</div> 541 <div i18n class="inner-form-title">TRANSCODING</div>
542 <div i18n class="inner-form-description">
543 Process uploaded videos so that they are in a streamable form that any device can play. Though costly in
544 resources, this is a critical part of PeerTube, so tread carefully.
545 </div>
545 </div> 546 </div>
546 547
547 <div class="form-group form-group-right col-12 col-lg-8 col-xl-9"> 548 <div class="form-group form-group-right col-12 col-lg-8 col-xl-9">
@@ -565,9 +566,9 @@
565 inputName="transcodingAllowAdditionalExtensions" formControlName="allowAdditionalExtensions" 566 inputName="transcodingAllowAdditionalExtensions" formControlName="allowAdditionalExtensions"
566 i18n-labelText labelText="Allow additional extensions" 567 i18n-labelText labelText="Allow additional extensions"
567 > 568 >
568 <ng-template ptTemplate="help"> 569 <ng-container ngProjectAs="description">
569 <ng-container i18n>Allow your users to upload .mkv, .mov, .avi and .flv videos</ng-container> 570 <span i18n>Allow your users to upload .mkv, .mov, .avi and .flv videos.</span>
570 </ng-template> 571 </ng-container>
571 </my-peertube-checkbox> 572 </my-peertube-checkbox>
572 </div> 573 </div>
573 574
@@ -576,9 +577,9 @@
576 inputName="transcodingAllowAudioFiles" formControlName="allowAudioFiles" 577 inputName="transcodingAllowAudioFiles" formControlName="allowAudioFiles"
577 i18n-labelText labelText="Allow audio files upload" 578 i18n-labelText labelText="Allow audio files upload"
578 > 579 >
579 <ng-template ptTemplate="help"> 580 <ng-container ngProjectAs="description">
580 <ng-container i18n>Allow your users to upload audio files that will be merged with the preview file on upload</ng-container> 581 <span i18n>Allow your users to upload audio files that will be merged with the preview file on upload.</span>
581 </ng-template> 582 </ng-container>
582 </my-peertube-checkbox> 583 </my-peertube-checkbox>
583 </div> 584 </div>
584 585
@@ -626,36 +627,48 @@
626 </my-peertube-checkbox> 627 </my-peertube-checkbox>
627 </div> 628 </div>
628 </ng-container> 629 </ng-container>
629
630 <div class="form-group" [ngClass]="{ 'disabled-checkbox-extra': !isTranscodingEnabled() }">
631 <label i18n for="transcodingThreads">Transcoding threads</label>
632 <div class="peertube-select-container">
633 <select id="transcodingThreads" formControlName="threads">
634 <option *ngFor="let transcodingThreadOption of transcodingThreadOptions" [value]="transcodingThreadOption.value">
635 {{ transcodingThreadOption.label }}
636 </option>
637 </select>
638 </div>
639 <div *ngIf="formErrors.transcoding.threads" class="form-error">{{ formErrors.transcoding.threads }}</div>
640 </div>
641
642 <ng-container formGroupName="resolutions">
643 <div class="form-group" *ngFor="let resolution of resolutions" [ngClass]="{ 'disabled-checkbox-extra': !isTranscodingEnabled() }">
644 <my-peertube-checkbox
645 [inputName]="getResolutionKey(resolution.id)" [formControlName]="resolution.id"
646 i18n-labelText labelText="Resolution {{resolution.label}} enabled"
647 >
648 <ng-template *ngIf="resolution.description" ptTemplate="help">
649 <div [innerHTML]="resolution.description"></div>
650 </ng-template>
651 </my-peertube-checkbox>
652 </div>
653 </ng-container>
654 630
655 </ng-container> 631 </ng-container>
656 </my-peertube-checkbox> 632 </my-peertube-checkbox>
657 </div> 633 </div>
658 634
635 <div class="form-group">
636
637 <div class="form-group" [ngClass]="{ 'disabled-checkbox-extra': !isTranscodingEnabled() }">
638 <label i18n for="transcodingThreads">Transcoding threads</label>
639 <div class="peertube-select-container">
640 <select id="transcodingThreads" formControlName="threads">
641 <option *ngFor="let transcodingThreadOption of transcodingThreadOptions" [value]="transcodingThreadOption.value">
642 {{ transcodingThreadOption.label }}
643 </option>
644 </select>
645 </div>
646 <div *ngIf="formErrors.transcoding.threads" class="form-error">{{ formErrors.transcoding.threads }}</div>
647 </div>
648
649 </div>
650
651 <div class="form-group" [ngClass]="{ 'disabled-checkbox-extra': !isTranscodingEnabled() }">
652
653 <label i18n for="transcodingThreads">Resolutions to generate</label>
654
655 <div class="ml-2 mt-2 d-flex flex-column">
656 <ng-container formGroupName="resolutions">
657 <div class="form-group" *ngFor="let resolution of resolutions">
658 <my-peertube-checkbox
659 [inputName]="getResolutionKey(resolution.id)" [formControlName]="resolution.id"
660 labelText="{{resolution.label}}"
661 >
662 <ng-template *ngIf="resolution.description" ptTemplate="help">
663 <div [innerHTML]="resolution.description"></div>
664 </ng-template>
665 </my-peertube-checkbox>
666 </div>
667 </ng-container>
668 </div>
669
670 </div>
671
659 </ng-container> 672 </ng-container>
660 673
661 </div> 674 </div>
@@ -663,13 +676,9 @@
663 676
664 <div class="form-row mt-4"> <!-- cache grid --> 677 <div class="form-row mt-4"> <!-- cache grid -->
665 <div class="form-group col-12 col-lg-4 col-xl-3"> 678 <div class="form-group col-12 col-lg-4 col-xl-3">
666 <div class="inner-form-title"> 679 <div i18n class="inner-form-title">CACHE</div>
667 <ng-container i18n>CACHE</ng-container> 680 <div i18n class="inner-form-description">
668 <my-help> 681 Some files are not federated, and fetched when necessary. Define their caching policies.
669 <ng-template ptTemplate="customHtml">
670 <ng-container i18n>Some files are not federated (previews, captions). We fetch them directly from the origin instance and cache them.</ng-container>
671 </ng-template>
672 </my-help>
673 </div> 682 </div>
674 </div> 683 </div>
675 684
@@ -701,6 +710,9 @@
701 <div class="form-row mt-4"> <!-- cache grid --> 710 <div class="form-row mt-4"> <!-- cache grid -->
702 <div class="form-group col-12 col-lg-4 col-xl-3"> 711 <div class="form-group col-12 col-lg-4 col-xl-3">
703 <div i18n class="inner-form-title">CUSTOMIZATIONS</div> 712 <div i18n class="inner-form-title">CUSTOMIZATIONS</div>
713 <div i18n class="inner-form-description">
714 Slight modifications to your PeerTube instance for when creating a plugin or theme is overkill.
715 </div>
704 </div> 716 </div>
705 717
706 <div class="form-group form-group-right col-12 col-lg-8 col-xl-9"> 718 <div class="form-group form-group-right col-12 col-lg-8 col-xl-9">
diff --git a/client/src/app/app.component.ts b/client/src/app/app.component.ts
index 629549ef2..1d077646c 100644
--- a/client/src/app/app.component.ts
+++ b/client/src/app/app.component.ts
@@ -4,10 +4,9 @@ import { Event, GuardsCheckStart, NavigationEnd, Router, Scroll } from '@angular
4import { AuthService, RedirectService, ServerService, ThemeService } from '@app/core' 4import { AuthService, RedirectService, ServerService, ThemeService } from '@app/core'
5import { is18nPath } from '../../../shared/models/i18n' 5import { is18nPath } from '../../../shared/models/i18n'
6import { ScreenService } from '@app/shared/misc/screen.service' 6import { ScreenService } from '@app/shared/misc/screen.service'
7import { debounceTime, filter, map, pairwise } from 'rxjs/operators' 7import { filter, map, pairwise } from 'rxjs/operators'
8import { Hotkey, HotkeysService } from 'angular2-hotkeys' 8import { Hotkey, HotkeysService } from 'angular2-hotkeys'
9import { I18n } from '@ngx-translate/i18n-polyfill' 9import { I18n } from '@ngx-translate/i18n-polyfill'
10import { fromEvent } from 'rxjs'
11import { PlatformLocation, ViewportScroller } from '@angular/common' 10import { PlatformLocation, ViewportScroller } from '@angular/common'
12import { PluginService } from '@app/core/plugins/plugin.service' 11import { PluginService } from '@app/core/plugins/plugin.service'
13import { HooksService } from '@app/core/plugins/hooks.service' 12import { HooksService } from '@app/core/plugins/hooks.service'