diff options
Diffstat (limited to 'client/src')
-rw-r--r-- | client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html | 100 | ||||
-rw-r--r-- | client/src/app/app.component.ts | 3 |
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 | |||
4 | import { AuthService, RedirectService, ServerService, ThemeService } from '@app/core' | 4 | import { AuthService, RedirectService, ServerService, ThemeService } from '@app/core' |
5 | import { is18nPath } from '../../../shared/models/i18n' | 5 | import { is18nPath } from '../../../shared/models/i18n' |
6 | import { ScreenService } from '@app/shared/misc/screen.service' | 6 | import { ScreenService } from '@app/shared/misc/screen.service' |
7 | import { debounceTime, filter, map, pairwise } from 'rxjs/operators' | 7 | import { filter, map, pairwise } from 'rxjs/operators' |
8 | import { Hotkey, HotkeysService } from 'angular2-hotkeys' | 8 | import { Hotkey, HotkeysService } from 'angular2-hotkeys' |
9 | import { I18n } from '@ngx-translate/i18n-polyfill' | 9 | import { I18n } from '@ngx-translate/i18n-polyfill' |
10 | import { fromEvent } from 'rxjs' | ||
11 | import { PlatformLocation, ViewportScroller } from '@angular/common' | 10 | import { PlatformLocation, ViewportScroller } from '@angular/common' |
12 | import { PluginService } from '@app/core/plugins/plugin.service' | 11 | import { PluginService } from '@app/core/plugins/plugin.service' |
13 | import { HooksService } from '@app/core/plugins/hooks.service' | 12 | import { HooksService } from '@app/core/plugins/hooks.service' |