]>
Commit | Line | Data |
---|---|---|
1 | <h3>Upload a video</h3> | |
2 | ||
3 | <div *ngIf="error" class="alert alert-danger">{{ error }}</div> | |
4 | ||
5 | <form novalidate (ngSubmit)="upload()" [ngFormModel]="videoForm"> | |
6 | <div class="form-group"> | |
7 | <label for="name">Name</label> | |
8 | <input | |
9 | type="text" class="form-control" name="name" id="name" | |
10 | ngControl="name" #name="ngForm" [(ngModel)]="video.name" | |
11 | > | |
12 | <div [hidden]="name.valid || name.pristine" class="alert alert-warning"> | |
13 | A name is required and should be between 3 and 50 characters long | |
14 | </div> | |
15 | </div> | |
16 | ||
17 | <div class="form-group"> | |
18 | <label for="tags">Tags</label> | |
19 | <input | |
20 | type="text" class="form-control" name="tags" id="tags" | |
21 | ngControl="tags" #tags="ngForm" [disabled]="isTagsInputDisabled" (keyup)="onTagKeyPress($event)" [(ngModel)]="currentTag" | |
22 | > | |
23 | <div [hidden]="tags.valid || tags.pristine" class="alert alert-warning"> | |
24 | A tag should be between 2 and 10 characters long | |
25 | </div> | |
26 | </div> | |
27 | ||
28 | <div class="tags"> | |
29 | <div class="label label-info tag" *ngFor="let tag of video.tags"> | |
30 | {{ tag }} | |
31 | <span class="remove" (click)="removeTag(tag)">x</span> | |
32 | </div> | |
33 | </div> | |
34 | ||
35 | <div class="form-group"> | |
36 | <label for="videofile">File</label> | |
37 | <div class="btn btn-default btn-file" [ngClass]="{ 'disabled': filename !== null }" > | |
38 | <span>Select the video...</span> | |
39 | <input | |
40 | type="file" name="videofile" id="videofile" | |
41 | ng2FileSelect [uploader]="uploader" [disabled]="filename !== null" | |
42 | > | |
43 | </div> | |
44 | </div> | |
45 | ||
46 | <div class="file-to-upload"> | |
47 | <div class="file" *ngIf="uploader.queue.length > 0"> | |
48 | <span class="filename">{{ filename }}</span> | |
49 | <span class="glyphicon glyphicon-remove" (click)="removeFile()"></span> | |
50 | </div> | |
51 | </div> | |
52 | ||
53 | <div class="form-group"> | |
54 | <label for="description">Description</label> | |
55 | <textarea | |
56 | name="description" id="description" class="form-control" placeholder="Description..." | |
57 | ngControl="description" #description="ngForm" [(ngModel)]="video.description" | |
58 | > | |
59 | </textarea> | |
60 | <div [hidden]="description.valid || description.pristine" class="alert alert-warning"> | |
61 | A description is required and should be between 3 and 250 characters long | |
62 | </div> | |
63 | </div> | |
64 | ||
65 | <div class="progress"> | |
66 | <progressbar [value]="uploader.progress" max="100"></progressbar> | |
67 | </div> | |
68 | ||
69 | <div class="form-group"> | |
70 | <input | |
71 | type="submit" value="Upload" class="btn btn-default form-control" [title]="getInvalidFieldsTitle()" | |
72 | [disabled]="!videoForm.valid || video.tags.length === 0 || filename === null" | |
73 | > | |
74 | </div> | |
75 | </form> |