1 <div class=
"video-edit row" [formGroup]=
"form">
2 <tabset class=
"root-tabset bootstrap">
4 <tab i18n-heading
heading=
"Basic info">
6 <div class=
"form-group">
7 <label i18n
for=
"name">Title
</label>
8 <input type=
"text" id=
"name" formControlName=
"name" />
9 <div *
ngIf=
"formErrors.name" class=
"form-error">
14 <div class=
"form-group">
15 <label i18n
class=
"label-tags">Tags
</label> <span i18n
>(press Enter to add)
</span>
17 [validators]=
"tagValidators" [errorMessages]=
"tagValidatorsMessages"
18 formControlName=
"tags" maxItems=
"5" modelAsStrings=
"true"
22 <div class=
"form-group">
23 <label i18n
for=
"description">Description
</label>
24 <my-help helpType=
"markdownText" i18n-preHtml
preHtml=
"Video descriptions are truncated by default and require manual action to expand them."></my-help>
25 <my-markdown-textarea truncate=
"250" formControlName=
"description"></my-markdown-textarea>
27 <div *
ngIf=
"formErrors.description" class=
"form-error">
28 {{ formErrors.description }}
33 <div class=
"col-md-4">
34 <div class=
"form-group">
35 <label i18n
>Channel
</label>
36 <div class=
"peertube-select-container">
37 <select formControlName=
"channelId">
38 <option *
ngFor=
"let channel of userVideoChannels" [value]=
"channel.id">{{ channel.label }}
</option>
43 <div class=
"form-group">
44 <label i18n
for=
"category">Category
</label>
45 <div class=
"peertube-select-container">
46 <select id=
"category" formControlName=
"category">
48 <option *
ngFor=
"let category of videoCategories" [value]=
"category.id">{{ category.label }}
</option>
52 <div *
ngIf=
"formErrors.category" class=
"form-error">
53 {{ formErrors.category }}
57 <div class=
"form-group">
58 <label i18n
for=
"licence">Licence
</label>
59 <div class=
"peertube-select-container">
60 <select id=
"licence" formControlName=
"licence">
62 <option *
ngFor=
"let licence of videoLicences" [value]=
"licence.id">{{ licence.label }}
</option>
66 <div *
ngIf=
"formErrors.licence" class=
"form-error">
67 {{ formErrors.licence }}
71 <div class=
"form-group">
72 <label i18n
for=
"language">Language
</label>
73 <div class=
"peertube-select-container">
74 <select id=
"language" formControlName=
"language">
76 <option *
ngFor=
"let language of videoLanguages" [value]=
"language.id">{{ language.label }}
</option>
80 <div *
ngIf=
"formErrors.language" class=
"form-error">
81 {{ formErrors.language }}
85 <div class=
"form-group">
86 <label i18n
for=
"privacy">Privacy
</label>
87 <div class=
"peertube-select-container">
88 <select id=
"privacy" formControlName=
"privacy">
90 <option *
ngFor=
"let privacy of videoPrivacies" [value]=
"privacy.id">{{ privacy.label }}
</option>
91 <option *
ngIf=
"schedulePublicationPossible" [value]=
"SPECIAL_SCHEDULED_PRIVACY">Scheduled
</option>
95 <div *
ngIf=
"formErrors.privacy" class=
"form-error">
96 {{ formErrors.privacy }}
100 <div *
ngIf=
"schedulePublicationEnabled" class=
"form-group">
101 <label i18n
for=
"schedulePublicationAt">Schedule publication ({{ calendarTimezone }})
</label>
103 id=
"schedulePublicationAt" formControlName=
"schedulePublicationAt" [dateFormat]=
"calendarDateFormat"
104 [locale]=
"calendarLocale" [minDate]=
"minScheduledDate" [showTime]=
"true" [hideOnDateTimeSelect]=
"true"
108 <div *
ngIf=
"formErrors.schedulePublicationAt" class=
"form-error">
109 {{ formErrors.schedulePublicationAt }}
113 <div class=
"form-group form-group-checkbox">
114 <input type=
"checkbox" id=
"nsfw" formControlName=
"nsfw" />
115 <label for=
"nsfw"></label>
116 <label i18n
for=
"nsfw">This video contains mature or explicit content
</label>
118 tooltipPlacement=
"top" helpType=
"custom" i18n-customHtml
119 customHtml=
"Some instances do not list videos containing mature or explicit content by default."
123 <div class=
"form-group form-group-checkbox">
124 <input type=
"checkbox" id=
"commentsEnabled" formControlName=
"commentsEnabled" />
125 <label for=
"commentsEnabled"></label>
126 <label i18n
for=
"commentsEnabled">Enable video comments
</label>
129 <div class=
"form-group form-group-checkbox">
130 <input type=
"checkbox" id=
"waitTranscoding" formControlName=
"waitTranscoding" />
131 <label for=
"waitTranscoding"></label>
132 <label i18n
for=
"waitTranscoding">Wait transcoding before publishing the video
</label>
134 tooltipPlacement=
"top" helpType=
"custom" i18n-customHtml
135 customHtml=
"If you decide not to wait for transcoding before publishing the video, it could be unplayable until transcoding ends."
142 <tab i18n-heading
heading=
"Captions">
143 <div class=
"col-md-12 captions">
145 <div class=
"captions-header">
146 <a (click)=
"openAddCaptionModal()" class=
"create-caption">
147 <span class=
"icon icon-add"></span>
148 <ng-container i18n
>Add another caption
</ng-container>
152 <div class=
"form-group" *
ngFor=
"let videoCaption of videoCaptions">
154 <div *
ngIf=
"videoCaption.action !== 'REMOVE'" class=
"caption-entry">
155 <div class=
"caption-entry-label">{{ videoCaption.language.label }}
</div>
157 <span i18n
class=
"caption-entry-delete" (click)=
"deleteCaption(videoCaption)">Delete
</span>
161 <div class=
"no-caption" *
ngIf=
"videoCaptions?.length === 0">
168 <tab i18n-heading
heading=
"Advanced settings">
169 <div class=
"col-md-12 advanced-settings">
170 <div class=
"form-group">
172 i18n-inputLabel
inputLabel=
"Upload thumbnail" inputName=
"thumbnailfile" formControlName=
"thumbnailfile"
173 previewWidth=
"200px" previewHeight=
"110px"
177 <div class=
"form-group">
179 i18n-inputLabel
inputLabel=
"Upload preview" inputName=
"previewfile" formControlName=
"previewfile"
180 previewWidth=
"360px" previewHeight=
"200px"
184 <div class=
"form-group">
185 <label i18n
for=
"support">Support
</label>
186 <my-help helpType=
"markdownEnhanced" i18n-preHtml
preHtml=
"Short text to tell people how they can support you (membership platform...)."></my-help>
187 <my-markdown-textarea
188 id=
"support" formControlName=
"support" textareaWidth=
"500px" [previewColumn]=
"true" markdownType=
"enhanced"
189 [classes]=
"{ 'input-error': formErrors['support'] }"
190 ></my-markdown-textarea>
191 <div *
ngIf=
"formErrors.support" class=
"form-error">
192 {{ formErrors.support }}
202 <my-video-caption-add-modal
203 #videoCaptionAddModal [existingCaptions]=
"existingCaptions" (captionAdded)=
"onCaptionAdded($event)"
204 ></my-video-caption-add-modal>