3 <div class=
"first-row">
4 <div i18n
class=
"title">Save to
</div>
8 <div class=
"input-container">
9 <input type=
"text" placeholder=
"Search playlists" i18n-placeholder [(ngModel)]=
"videoPlaylistSearch" (ngModelChange)=
"onVideoPlaylistSearchChanged()" />
12 <div class=
"playlists">
14 *
ngFor=
"let playlist of videoPlaylists"
15 class=
"playlist dropdown-item" [ngClass]=
"{ 'has-optional-row': playlist.optionalRowDisplayed }"
17 <div class=
"primary-row" (click)=
"toggleMainPlaylist($event, playlist)">
19 [disabled]=
"isPresentMultipleTimes(playlist) || playlist.optionalRowDisplayed" [inputName]=
"getPrimaryInputName(playlist)"
20 [ngModel]=
"isPrimaryCheckboxChecked(playlist)" [onPushWorkaround]=
"true"
21 ></my-peertube-checkbox>
23 <label class=
"display-name">
24 {{ playlist.displayName }}
27 <div class=
"optional-row-icon" *
ngIf=
"isPrimaryCheckboxChecked(playlist)" (click)=
"$event.stopPropagation(); toggleOptionalRow(playlist)">
28 <my-global-icon iconName=
"add" aria-hidden=
"true"></my-global-icon>
32 <div class=
"optional-rows" *
ngIf=
"playlist.optionalRowDisplayed">
33 <div class=
"header-label" i18n
>Start at
</div>
34 <div class=
"header-label" i18n
>Stop at
</div>
36 <ng-container *
ngFor=
"let element of buildOptionalRowElements(playlist)">
38 [inputName]=
"getOptionalInputName(playlist, element)"
39 [ngModel]=
"element.enabled" [onPushWorkaround]=
"true"
40 (click)=
"toggleOptionalPlaylist($event, playlist, element, startAt.timestamp, stopAt.timestamp)"
41 ></my-peertube-checkbox>
44 [maxTimestamp]=
"video.duration"
45 [(ngModel)]=
"element.startTimestamp"
46 (inputBlur)=
"onElementTimestampUpdate(playlist, element)"
48 ></my-timestamp-input>
51 [maxTimestamp]=
"video.duration"
52 [(ngModel)]=
"element.stopTimestamp"
53 (inputBlur)=
"onElementTimestampUpdate(playlist, element)"
55 ></my-timestamp-input>
61 <div class=
"new-playlist-button dropdown-item" (click)=
"openCreateBlock($event)" [hidden]=
"isNewPlaylistBlockOpened">
62 <my-global-icon iconName=
"add" aria-hidden=
"true"></my-global-icon>
64 <span i18n
>Create a private playlist
</span>
67 <form class=
"new-playlist-block dropdown-item" *
ngIf=
"isNewPlaylistBlockOpened" (ngSubmit)=
"createPlaylist()" [formGroup]=
"form">
68 <div class=
"form-group">
69 <label i18n
for=
"displayName">Display name
</label>
71 type=
"text" id=
"displayName"
72 formControlName=
"displayName" [ngClass]=
"{ 'input-error': formErrors['displayName'] }"
74 <div *
ngIf=
"formErrors['displayName']" class=
"form-error">
75 {{ formErrors['displayName'] }}
79 <input type=
"submit" i18n-value
value=
"Create" [disabled]=
"!form.valid">