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">
32 <option *
ngFor=
"let channel of userVideoChannels" [value]=
"channel.id">{{ channel.label }}
</option>
35 <div *
ngIf=
"formErrors.channelId" class=
"alert alert-danger">
36 {{ formErrors.channelId }}
40 <div class=
"form-group">
41 <label for=
"category">Category
</label>
42 <select class=
"form-control" id=
"category" formControlName=
"category">
44 <option *
ngFor=
"let category of videoCategories" [value]=
"category.id">{{ category.label }}
</option>
47 <div *
ngIf=
"formErrors.category" class=
"alert alert-danger">
48 {{ formErrors.category }}
52 <div class=
"form-group">
53 <label for=
"licence">Licence
</label>
54 <select class=
"form-control" id=
"licence" formControlName=
"licence">
56 <option *
ngFor=
"let licence of videoLicences" [value]=
"licence.id">{{ licence.label }}
</option>
59 <div *
ngIf=
"formErrors.licence" class=
"alert alert-danger">
60 {{ formErrors.licence }}
64 <div class=
"form-group">
65 <label for=
"language">Language
</label>
66 <select class=
"form-control" id=
"language" formControlName=
"language">
68 <option *
ngFor=
"let language of videoLanguages" [value]=
"language.id">{{ language.label }}
</option>
71 <div *
ngIf=
"formErrors.language" class=
"alert alert-danger">
72 {{ formErrors.language }}
76 <div class=
"form-group">
77 <label class=
"label-tags">Tags
</label> <span class=
"little-information">(press enter to add the tag)
</span>
79 [ngModel]=
"tags" [validators]=
"tagValidators" [errorMessages]=
"tagValidatorsMessages"
80 formControlName=
"tags" maxItems=
"5" modelAsStrings=
"true"
84 <div class=
"form-group">
85 <label for=
"videofile">File
</label>
86 <div class=
"btn btn-default btn-file">
87 <span>Select the video...
</span>
88 <input #videofileInput
type=
"file" name=
"videofile" id=
"videofile" (change)=
"fileChange($event)" />
89 <input type=
"hidden" name=
"videofileHidden" formControlName=
"videofile"/>
93 <div class=
"file-to-upload">
94 <div class=
"file" *
ngIf=
"filename">
95 <span class=
"filename">{{ filename }}
</span>
96 <span class=
"glyphicon glyphicon-remove" (click)=
"removeFile()"></span>
100 <div *
ngIf=
"formErrors.videofile" class=
"alert alert-danger">
101 {{ formErrors.videofile }}
104 <div class=
"form-group">
105 <label for=
"description">Description
</label>
107 id=
"description" class=
"form-control" placeholder=
"Description..."
108 formControlName=
"description"
111 <div *
ngIf=
"formErrors.description" class=
"alert alert-danger">
112 {{ formErrors.description }}
116 <div class=
"progress">
117 <progressbar [value]=
"progressPercent" max=
"100">
118 <ng-template [ngIf]=
"progressPercent === 100">
119 <span class=
"glyphicon glyphicon-refresh glyphicon-refresh-animate"></span>
120 Server is processing the video
125 <div class=
"form-group">
127 type=
"button" value=
"Upload" class=
"btn btn-default form-control"