2017-04-21 16:26:09 +00:00
|
|
|
<div class="row">
|
|
|
|
<div class="content-padding">
|
|
|
|
|
|
|
|
<h3>Upload a video</h3>
|
|
|
|
|
2017-09-14 15:06:31 +00:00
|
|
|
<div *ngIf="error !== undefined" class="alert alert-danger">{{ error }}</div>
|
2017-04-21 16:26:09 +00:00
|
|
|
|
|
|
|
<form novalidate [formGroup]="form">
|
|
|
|
<div class="form-group">
|
|
|
|
<label for="name">Name</label>
|
|
|
|
<input
|
|
|
|
type="text" class="form-control" id="name"
|
|
|
|
formControlName="name"
|
|
|
|
>
|
|
|
|
<div *ngIf="formErrors.name" class="alert alert-danger">
|
|
|
|
{{ formErrors.name }}
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
2017-10-31 10:52:52 +00:00
|
|
|
<div class="form-group">
|
|
|
|
<label for="privacy">Privacy</label>
|
|
|
|
<select class="form-control" id="privacy" formControlName="privacy">
|
|
|
|
<option></option>
|
|
|
|
<option *ngFor="let privacy of videoPrivacies" [value]="privacy.id">{{ privacy.label }}</option>
|
|
|
|
</select>
|
|
|
|
|
|
|
|
<div *ngIf="formErrors.privacy" class="alert alert-danger">
|
|
|
|
{{ formErrors.privacy }}
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
2017-04-21 16:26:09 +00:00
|
|
|
<div class="form-group">
|
|
|
|
<input
|
|
|
|
type="checkbox" id="nsfw"
|
|
|
|
formControlName="nsfw"
|
|
|
|
>
|
2017-10-27 06:51:40 +00:00
|
|
|
<label for="nsfw">This video contains mature or explicit content</label>
|
2017-04-21 16:26:09 +00:00
|
|
|
</div>
|
|
|
|
|
2017-10-25 15:31:11 +00:00
|
|
|
<div class="form-group">
|
|
|
|
<label for="category">Channel</label>
|
|
|
|
<select class="form-control" id="channelId" formControlName="channelId">
|
|
|
|
<option *ngFor="let channel of userVideoChannels" [value]="channel.id">{{ channel.label }}</option>
|
|
|
|
</select>
|
|
|
|
|
|
|
|
<div *ngIf="formErrors.channelId" class="alert alert-danger">
|
|
|
|
{{ formErrors.channelId }}
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
2017-04-21 16:26:09 +00:00
|
|
|
<div class="form-group">
|
|
|
|
<label for="category">Category</label>
|
|
|
|
<select class="form-control" id="category" formControlName="category">
|
|
|
|
<option></option>
|
|
|
|
<option *ngFor="let category of videoCategories" [value]="category.id">{{ category.label }}</option>
|
|
|
|
</select>
|
|
|
|
|
|
|
|
<div *ngIf="formErrors.category" class="alert alert-danger">
|
|
|
|
{{ formErrors.category }}
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="form-group">
|
|
|
|
<label for="licence">Licence</label>
|
|
|
|
<select class="form-control" id="licence" formControlName="licence">
|
|
|
|
<option></option>
|
|
|
|
<option *ngFor="let licence of videoLicences" [value]="licence.id">{{ licence.label }}</option>
|
|
|
|
</select>
|
|
|
|
|
|
|
|
<div *ngIf="formErrors.licence" class="alert alert-danger">
|
|
|
|
{{ formErrors.licence }}
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="form-group">
|
|
|
|
<label for="language">Language</label>
|
|
|
|
<select class="form-control" id="language" formControlName="language">
|
|
|
|
<option></option>
|
|
|
|
<option *ngFor="let language of videoLanguages" [value]="language.id">{{ language.label }}</option>
|
|
|
|
</select>
|
|
|
|
|
|
|
|
<div *ngIf="formErrors.language" class="alert alert-danger">
|
|
|
|
{{ formErrors.language }}
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="form-group">
|
2017-09-14 15:06:31 +00:00
|
|
|
<label class="label-tags">Tags</label> <span class="little-information">(press enter to add the tag)</span>
|
2017-04-21 16:26:09 +00:00
|
|
|
<tag-input
|
|
|
|
[ngModel]="tags" [validators]="tagValidators" [errorMessages]="tagValidatorsMessages"
|
2017-10-26 13:52:11 +00:00
|
|
|
formControlName="tags" maxItems="5" modelAsStrings="true"
|
2017-04-21 16:26:09 +00:00
|
|
|
></tag-input>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="form-group">
|
|
|
|
<label for="videofile">File</label>
|
2017-09-14 15:06:31 +00:00
|
|
|
<div class="btn btn-default btn-file">
|
2017-04-21 16:26:09 +00:00
|
|
|
<span>Select the video...</span>
|
2017-09-14 15:06:31 +00:00
|
|
|
<input #videofileInput type="file" name="videofile" id="videofile" (change)="fileChange($event)" />
|
|
|
|
<input type="hidden" name="videofileHidden" formControlName="videofile"/>
|
2017-04-21 16:26:09 +00:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="file-to-upload">
|
2017-09-14 15:06:31 +00:00
|
|
|
<div class="file" *ngIf="filename">
|
2017-04-21 16:26:09 +00:00
|
|
|
<span class="filename">{{ filename }}</span>
|
|
|
|
<span class="glyphicon glyphicon-remove" (click)="removeFile()"></span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
2017-09-14 15:06:31 +00:00
|
|
|
<div *ngIf="formErrors.videofile" class="alert alert-danger">
|
|
|
|
{{ formErrors.videofile }}
|
2017-04-21 16:26:09 +00:00
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="form-group">
|
|
|
|
<label for="description">Description</label>
|
2017-10-30 19:26:06 +00:00
|
|
|
<my-video-description formControlName="description"></my-video-description>
|
|
|
|
|
2017-04-21 16:26:09 +00:00
|
|
|
<div *ngIf="formErrors.description" class="alert alert-danger">
|
|
|
|
{{ formErrors.description }}
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="progress">
|
2017-09-14 21:03:43 +00:00
|
|
|
<progressbar [value]="progressPercent" max="100">
|
|
|
|
<ng-template [ngIf]="progressPercent === 100">
|
|
|
|
<span class="glyphicon glyphicon-refresh glyphicon-refresh-animate"></span>
|
|
|
|
Server is processing the video
|
|
|
|
</ng-template>
|
|
|
|
</progressbar>
|
2017-04-21 16:26:09 +00:00
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="form-group">
|
|
|
|
<input
|
|
|
|
type="button" value="Upload" class="btn btn-default form-control"
|
|
|
|
(click)="upload()"
|
|
|
|
>
|
|
|
|
</div>
|
|
|
|
</form>
|
2016-03-14 12:50:19 +00:00
|
|
|
</div>
|
2017-04-21 16:26:09 +00:00
|
|
|
</div>
|