]>
Commit | Line | Data |
---|---|---|
1 | <nav aria-label="breadcrumb"> | |
2 | <ol class="breadcrumb"> | |
3 | <li class="breadcrumb-item"> | |
4 | <a routerLink="/my-library/video-playlists" i18n>My Playlists</a> | |
5 | </li> | |
6 | ||
7 | <ng-container *ngIf="isCreation()"> | |
8 | <li class="breadcrumb-item active" i18n>Create</li> | |
9 | </ng-container> | |
10 | <ng-container *ngIf="!isCreation()"> | |
11 | <li class="breadcrumb-item active" i18n>Edit</li> | |
12 | <li class="breadcrumb-item active" aria-current="page"> | |
13 | <a *ngIf="videoPlaylistToUpdate" [routerLink]="[ '/my-library/video-playlists/update', videoPlaylistToUpdate?.uuid ]">{{ videoPlaylistToUpdate?.displayName }}</a> | |
14 | </li> | |
15 | </ng-container> | |
16 | </ol> | |
17 | </nav> | |
18 | ||
19 | <div *ngIf="error" class="alert alert-danger">{{ error }}</div> | |
20 | ||
21 | <form role="form" (ngSubmit)="formValidated()" [formGroup]="form"> | |
22 | ||
23 | <div class="row"> <!-- playlist grid --> | |
24 | <div class="col-12 col-lg-4 col-xl-3"> | |
25 | <div *ngIf="isCreation()" class="video-playlist-title" i18n>NEW PLAYLIST</div> | |
26 | <div *ngIf="!isCreation() && videoPlaylistToUpdate" class="video-playlist-title" i18n>PLAYLIST</div> | |
27 | </div> | |
28 | ||
29 | <div class="col-12 col-lg-8 col-xl-9"> | |
30 | ||
31 | <div class="col-md-12 col-xl-6"> | |
32 | <div class="form-group"> | |
33 | <label i18n for="displayName">Display name</label> | |
34 | <input | |
35 | type="text" id="displayName" class="form-control" | |
36 | formControlName="displayName" [ngClass]="{ 'input-error': formErrors['displayName'] }" | |
37 | > | |
38 | <div *ngIf="formErrors['displayName']" class="form-error"> | |
39 | {{ formErrors['displayName'] }} | |
40 | </div> | |
41 | </div> | |
42 | ||
43 | <div class="form-group"> | |
44 | <label i18n for="description">Description</label><my-help helpType="markdownText"></my-help> | |
45 | <my-markdown-textarea id="description" formControlName="description" [formError]="formErrors['description']"></my-markdown-textarea> | |
46 | </div> | |
47 | </div> | |
48 | ||
49 | <div class="col-md-12 col-xl-6"> | |
50 | <div class="form-group"> | |
51 | <label i18n for="privacy">Privacy</label> | |
52 | <div class="peertube-select-container"> | |
53 | <select id="privacy" formControlName="privacy" class="form-control"> | |
54 | <option *ngFor="let privacy of videoPlaylistPrivacies" [value]="privacy.id">{{ privacy.label }}</option> | |
55 | </select> | |
56 | </div> | |
57 | ||
58 | <div *ngIf="formErrors.privacy" class="form-error"> | |
59 | {{ formErrors.privacy }} | |
60 | </div> | |
61 | </div> | |
62 | ||
63 | <div class="form-group"> | |
64 | <label for="videoChannelIdl" i18n>Channel</label> | |
65 | ||
66 | <my-select-channel | |
67 | labelForId="videoChannelIdl" [items]="userVideoChannels" formControlName="videoChannelId" | |
68 | ></my-select-channel> | |
69 | ||
70 | <div *ngIf="formErrors['videoChannelId']" class="form-error"> | |
71 | {{ formErrors['videoChannelId'] }} | |
72 | </div> | |
73 | </div> | |
74 | ||
75 | <div class="form-group"> | |
76 | <label for="thumbnailfile" i18n>Playlist thumbnail</label> | |
77 | ||
78 | <my-preview-upload | |
79 | i18n-inputLabel inputLabel="Edit" inputName="thumbnailfile" formControlName="thumbnailfile" | |
80 | previewWidth="223px" previewHeight="122px" | |
81 | ></my-preview-upload> | |
82 | </div> | |
83 | </div> | |
84 | ||
85 | <div class="row"> <!-- submit placement block --> | |
86 | <div class="col-md-7 col-xl-5"></div> | |
87 | <div class="col-md-5 col-xl-5 d-inline-flex"> | |
88 | <input type="submit" value="{{ getFormButtonTitle() }}" [disabled]="!form.valid"> | |
89 | </div> | |
90 | </div> | |
91 | </div> | |
92 | </div> | |
93 | ||
94 | </form> |