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"