</div>
<div class="form-group">
- <label i18n class="label-tags">Tags</label>
+ <label for="label-tags" i18n class="label-tags">Tags</label>
<my-help>
<ng-template ptTemplate="customHtml">
<my-help helpType="markdownText">
<ng-template ptTemplate="preHtml">
- <ng-container i18n>
- Video descriptions are truncated by default and require manual action to expand them.
- </ng-container>
+ <ng-container i18n>Video descriptions are truncated by default and require manual action to expand them.</ng-container>
+
+ <br />
+
+ <ng-container i18n>A timestamp (<i>00:05</i> for example) is automatically converted into a link to a part of the video.</ng-container>
</ng-template>
</my-help>
- <my-markdown-textarea [truncate]="250" formControlName="description" [markdownVideo]="videoToUpdate"></my-markdown-textarea>
-
- <div *ngIf="formErrors.description" class="form-error">
- {{ formErrors.description }}
- </div>
+ <my-markdown-textarea
+ formControlName="description" [markdownVideo]="videoToUpdate"
+ [formError]="formErrors.description" [truncate]="250"
+ ></my-markdown-textarea>
</div>
</div>
</ng-template>
</my-peertube-checkbox>
- <my-peertube-checkbox *ngIf="waitTranscodingEnabled" inputName="waitTranscoding" formControlName="waitTranscoding" helpPlacement="bottom-right">
+ <my-peertube-checkbox *ngIf="!hideWaitTranscoding" inputName="waitTranscoding" formControlName="waitTranscoding" helpPlacement="bottom-right">
<ng-template ptTemplate="label">
<ng-container i18n>Publish after transcoding</ng-container>
</ng-template>
<ng-template ptTemplate="help">
- <ng-container i18n>If you decide not to wait for transcoding before publishing the video, it could be unplayable until transcoding ends.</ng-container>
+ <ng-container i18n>The video may be unplayable during the transcoding process. It's the reason why we prefer to publish publicly the video after transcoding.</ng-container>
</ng-template>
</my-peertube-checkbox>
<div class="captions">
<div class="captions-header">
- <a (click)="openAddCaptionModal()" class="create-caption">
+ <button (click)="openAddCaptionModal()" class="peertube-create-button">
<my-global-icon iconName="add" aria-hidden="true"></my-global-icon>
<ng-container i18n>Add another caption</ng-container>
- </a>
+ </button>
</div>
<div class="form-group" *ngFor="let videoCaption of videoCaptions">
[href]="videoCaption.captionPath"
>{{ videoCaption.language.label }}</a>
- <div i18n class="caption-entry-state">Already uploaded ✔</div>
+ <div i18n class="caption-entry-state">Already uploaded on {{ videoCaption.updatedAt | date }} ✔</div>
- <span i18n class="caption-entry-edit" (click)="videoCaptionEditModal.show()">Edit</span>
- <span i18n class="caption-entry-delete" (click)="deleteCaption(videoCaption)">Delete</span>
+ <button i18n class="caption-entry-edit" (click)="openEditCaptionModal(videoCaption)">Edit</button>
+ <button i18n class="caption-entry-delete" (click)="deleteCaption(videoCaption)">Delete</button>
</ng-container>
<ng-container *ngIf="videoCaption.action === 'CREATE'">
<div i18n class="caption-entry-state caption-entry-state-create">Will be created on update</div>
- <span i18n class="caption-entry-delete" (click)="deleteCaption(videoCaption)">Cancel create</span>
+ <button i18n class="caption-entry-delete" (click)="deleteCaption(videoCaption)">Cancel create</button>
</ng-container>
<ng-container *ngIf="videoCaption.action === 'UPDATE'">
<div i18n class="caption-entry-state caption-entry-state-create">Will be edited on update</div>
- <span i18n class="caption-entry-delete" (click)="deleteCaption(videoCaption)">Cancel edition</span>
+ <button i18n class="caption-entry-delete" (click)="deleteCaption(videoCaption)">Cancel edition</button>
</ng-container>
<ng-container *ngIf="videoCaption.action === 'REMOVE'">
<div i18n class="caption-entry-state caption-entry-state-delete">Will be deleted on update</div>
- <span i18n class="caption-entry-delete" (click)="deleteCaption(videoCaption)">Cancel deletion</span>
+ <button i18n class="caption-entry-delete" (click)="deleteCaption(videoCaption)">Cancel deletion</button>
</ng-container>
-
- <my-video-caption-edit-modal
- #videoCaptionEditModal
- [videoCaption]="videoCaption"
- [serverConfig]="serverConfig"
- (captionEdited)="onCaptionEdited($event)"
- ></my-video-caption-edit-modal>
</div>
</div>
</div>
</div>
- <div class="form-group" *ngIf="isSaveReplayEnabled()">
+ <div class="form-group" *ngIf="isSaveReplayAllowed()">
<my-peertube-checkbox inputName="liveVideoSaveReplay" formControlName="saveReplay">
<ng-template ptTemplate="label">
<ng-container i18n>Automatically publish a replay when your live ends</ng-container>
</my-peertube-checkbox>
</div>
+ <div class="form-group mx-4" *ngIf="isSaveReplayEnabled()">
+ <label i18n for="replayPrivacy">Privacy of the new replay</label>
+ <my-select-options
+ labelForId="replayPrivacy" [items]="videoPrivacies" [clearable]="false" formControlName="replayPrivacy"
+ ></my-select-options>
+ </div>
+
<div class="form-group" *ngIf="isLatencyModeEnabled()">
<label i18n for="latencyMode">Latency mode</label>
<my-select-options
<div class="col-md-12 col-xl-8">
<div class="form-group">
- <label i18n for="previewfile">Video preview</label>
+ <label i18n for="previewfile">Video thumbnail</label>
<my-preview-upload
i18n-inputLabel inputLabel="Edit" inputName="previewfile" formControlName="previewfile"
</ng-container>
</ng-template>
</my-help>
+
<my-markdown-textarea
id="support" formControlName="support" markdownType="enhanced"
- [classes]="{ 'input-error': formErrors['support'] }"
+ [formError]="formErrors['support']"
></my-markdown-textarea>
- <div *ngIf="formErrors.support" class="form-error">
- {{ formErrors.support }}
- </div>
</div>
</div>
<div class="col-md-12 col-xl-4">
+
+ <div *ngIf="videoSource" class="form-group">
+ <label i18n for="filename">Filename</label>
+
+ <my-help>
+ <ng-template ptTemplate="preHtml">
+ <ng-container i18n>
+ Name of the uploaded file
+ </ng-container>
+ </ng-template>
+ </my-help>
+
+ <input type="text" [disabled]="true" id="filename" class="form-control" [value]="videoSource.filename" />
+ </div>
+
<div class="form-group originally-published-at">
<label i18n for="originallyPublishedAt">Original publication date</label>
<my-help>