2 <div class=
"content-padding">
4 <h3>Upload a video
</h3>
6 <div *
ngIf=
"error !== undefined" class=
"alert alert-danger">{{ error }}
</div>
8 <form novalidate [formGroup]=
"form">
9 <div class=
"form-group">
10 <label for=
"name">Name
</label>
12 type=
"text" class=
"form-control" id=
"name"
13 formControlName=
"name"
15 <div *
ngIf=
"formErrors.name" class=
"alert alert-danger">
20 <div class=
"form-group">
22 type=
"checkbox" id=
"nsfw"
23 formControlName=
"nsfw"
25 <label for=
"nsfw">This video contains mature or explicit content
</label>
28 <div class=
"form-group">
29 <label for=
"category">Channel
</label>
30 <select class=
"form-control" id=
"channelId" formControlName=
"channelId">
31 <option *
ngFor=
"let channel of userVideoChannels" [value]=
"channel.id">{{ channel.label }}
</option>
34 <div *
ngIf=
"formErrors.channelId" class=
"alert alert-danger">
35 {{ formErrors.channelId }}
39 <div class=
"form-group">
40 <label for=
"category">Category
</label>
41 <select class=
"form-control" id=
"category" formControlName=
"category">
43 <option *
ngFor=
"let category of videoCategories" [value]=
"category.id">{{ category.label }}
</option>
46 <div *
ngIf=
"formErrors.category" class=
"alert alert-danger">
47 {{ formErrors.category }}
51 <div class=
"form-group">
52 <label for=
"licence">Licence
</label>
53 <select class=
"form-control" id=
"licence" formControlName=
"licence">
55 <option *
ngFor=
"let licence of videoLicences" [value]=
"licence.id">{{ licence.label }}
</option>
58 <div *
ngIf=
"formErrors.licence" class=
"alert alert-danger">
59 {{ formErrors.licence }}
63 <div class=
"form-group">
64 <label for=
"language">Language
</label>
65 <select class=
"form-control" id=
"language" formControlName=
"language">
67 <option *
ngFor=
"let language of videoLanguages" [value]=
"language.id">{{ language.label }}
</option>
70 <div *
ngIf=
"formErrors.language" class=
"alert alert-danger">
71 {{ formErrors.language }}
75 <div class=
"form-group">
76 <label class=
"label-tags">Tags
</label> <span class=
"little-information">(press enter to add the tag)
</span>
78 [ngModel]=
"tags" [validators]=
"tagValidators" [errorMessages]=
"tagValidatorsMessages"
79 formControlName=
"tags" maxItems=
"5" modelAsStrings=
"true"
83 <div class=
"form-group">
84 <label for=
"videofile">File
</label>
85 <div class=
"btn btn-default btn-file">
86 <span>Select the video...
</span>
87 <input #videofileInput
type=
"file" name=
"videofile" id=
"videofile" (change)=
"fileChange($event)" />
88 <input type=
"hidden" name=
"videofileHidden" formControlName=
"videofile"/>
92 <div class=
"file-to-upload">
93 <div class=
"file" *
ngIf=
"filename">
94 <span class=
"filename">{{ filename }}
</span>
95 <span class=
"glyphicon glyphicon-remove" (click)=
"removeFile()"></span>
99 <div *
ngIf=
"formErrors.videofile" class=
"alert alert-danger">
100 {{ formErrors.videofile }}
103 <div class=
"form-group">
104 <label for=
"description">Description
</label>
105 <my-video-description formControlName=
"description"></my-video-description>
107 <div *
ngIf=
"formErrors.description" class=
"alert alert-danger">
108 {{ formErrors.description }}
112 <div class=
"progress">
113 <progressbar [value]=
"progressPercent" max=
"100">
114 <ng-template [ngIf]=
"progressPercent === 100">
115 <span class=
"glyphicon glyphicon-refresh glyphicon-refresh-animate"></span>
116 Server is processing the video
121 <div class=
"form-group">
123 type=
"button" value=
"Upload" class=
"btn btn-default form-control"