1 <form role=
"form" (ngSubmit)=
"formUpdated()">
4 <div class=
"col-lg-4 col-md-6 col-xs-12">
5 <div class=
"form-group">
6 <div class=
"radio-label label-container">
7 <label for=
"sort" i18n
>Sort
</label>
8 <button i18n
class=
"reset-button reset-button-small" (click)=
"resetField('sort', '-match')" *
ngIf=
"advancedSearch.sort !== '-match'">
13 <div class=
"peertube-radio-container" *
ngFor=
"let sort of sorts">
14 <input type=
"radio" name=
"sort" [id]=
"sort.id" [value]=
"sort.id" [(ngModel)]=
"advancedSearch.sort">
15 <label [for]=
"sort.id" class=
"radio">{{ sort.label }}
</label>
19 <div class=
"form-group">
20 <div class=
"radio-label label-container">
21 <label for=
"isLive" i18n
>Display only
</label>
22 <button i18n
class=
"reset-button reset-button-small" (click)=
"resetField('isLive')" *
ngIf=
"advancedSearch.isLive !== undefined">
27 <div class=
"peertube-radio-container">
28 <input type=
"radio" name=
"isLive" id=
"isLiveTrue" value=
"true" [(ngModel)]=
"advancedSearch.isLive">
29 <label i18n
for=
"isLiveTrue" class=
"radio">Live videos
</label>
32 <div class=
"peertube-radio-container">
33 <input type=
"radio" name=
"isLive" id=
"isLiveFalse" value=
"false" [(ngModel)]=
"advancedSearch.isLive">
34 <label i18n
for=
"isLiveFalse" class=
"radio">VOD videos
</label>
38 <div class=
"form-group">
39 <div class=
"radio-label label-container">
40 <label for=
"sensitiveContent" i18n
>Display sensitive content
</label>
41 <button i18n
class=
"reset-button reset-button-small" (click)=
"resetField('nsfw')" *
ngIf=
"advancedSearch.nsfw !== undefined">
46 <div class=
"peertube-radio-container">
47 <input type=
"radio" name=
"sensitiveContent" id=
"sensitiveContentYes" value=
"both" [(ngModel)]=
"advancedSearch.nsfw">
48 <label i18n
for=
"sensitiveContentYes" class=
"radio">Yes
</label>
51 <div class=
"peertube-radio-container">
52 <input type=
"radio" name=
"sensitiveContent" id=
"sensitiveContentNo" value=
"false" [(ngModel)]=
"advancedSearch.nsfw">
53 <label i18n
for=
"sensitiveContentNo" class=
"radio">No
</label>
57 <div class=
"form-group">
58 <div class=
"radio-label label-container">
59 <label for=
"publishedDateRange" i18n
>Published date
</label>
60 <button i18n
class=
"reset-button reset-button-small" (click)=
"resetLocalField('publishedDateRange')" *
ngIf=
"publishedDateRange !== undefined">
65 <div class=
"peertube-radio-container" *
ngFor=
"let date of publishedDateRanges">
66 <input type=
"radio" (change)=
"onDurationOrPublishedUpdated()" name=
"publishedDateRange" [id]=
"date.id" [value]=
"date.id" [(ngModel)]=
"publishedDateRange">
67 <label [for]=
"date.id" class=
"radio">{{ date.label }}
</label>
71 <div class=
"form-group">
72 <div class=
"label-container">
73 <label i18n
for=
"original-publication-after">Original publication year
</label>
74 <button i18n
class=
"reset-button reset-button-small" (click)=
"resetOriginalPublicationYears()" *
ngIf=
"originallyPublishedStartYear || originallyPublishedEndYear">
80 <div class=
"ps-0 col-sm-6">
82 (change)=
"onDurationOrPublishedUpdated()"
83 (keydown.enter)=
"$event.preventDefault()"
84 type=
"text" id=
"original-publication-after" name=
"original-publication-after"
85 i18n-placeholder
placeholder=
"After..."
86 [(ngModel)]=
"originallyPublishedStartYear"
90 <div class=
"pe-0 col-sm-6">
92 (change)=
"onDurationOrPublishedUpdated()"
93 (keydown.enter)=
"$event.preventDefault()"
94 type=
"text" id=
"original-publication-before" name=
"original-publication-before"
95 i18n-placeholder
placeholder=
"Before..."
96 [(ngModel)]=
"originallyPublishedEndYear"
105 <div class=
"col-lg-4 col-md-6 col-xs-12">
106 <div class=
"form-group">
107 <div class=
"radio-label label-container">
108 <label for=
"durationRange" i18n
>Duration
</label>
109 <button i18n
class=
"reset-button reset-button-small" (click)=
"resetLocalField('durationRange')" *
ngIf=
"durationRange !== undefined">
114 <div class=
"peertube-radio-container" *
ngFor=
"let duration of durationRanges">
115 <input type=
"radio" (change)=
"onDurationOrPublishedUpdated()" name=
"durationRange" [id]=
"duration.id" [value]=
"duration.id" [(ngModel)]=
"durationRange">
116 <label [for]=
"duration.id" class=
"radio">{{ duration.label }}
</label>
120 <div class=
"form-group">
121 <label i18n
for=
"category">Category
</label>
122 <button i18n
class=
"reset-button reset-button-small" (click)=
"resetField('categoryOneOf')" *
ngIf=
"advancedSearch.categoryOneOf !== undefined">
125 <div class=
"peertube-select-container">
126 <select id=
"category" name=
"category" [(ngModel)]=
"advancedSearch.categoryOneOf" class=
"form-control">
127 <option [value]=
"undefined" i18n
>Display all categories
</option>
128 <option *
ngFor=
"let category of videoCategories" [value]=
"category.id">{{ category.label }}
</option>
133 <div class=
"form-group">
134 <label i18n
for=
"licence">Licence
</label>
135 <button i18n
class=
"reset-button reset-button-small" (click)=
"resetField('licenceOneOf')" *
ngIf=
"advancedSearch.licenceOneOf !== undefined">
138 <div class=
"peertube-select-container">
139 <select id=
"licence" name=
"licence" [(ngModel)]=
"advancedSearch.licenceOneOf" class=
"form-control">
140 <option [value]=
"undefined" i18n
>Display all licenses
</option>
141 <option *
ngFor=
"let licence of videoLicences" [value]=
"licence.id">{{ licence.label }}
</option>
146 <div class=
"form-group">
147 <label i18n
for=
"language">Language
</label>
148 <button i18n
class=
"reset-button reset-button-small" (click)=
"resetField('languageOneOf')" *
ngIf=
"advancedSearch.languageOneOf !== undefined">
151 <div class=
"peertube-select-container">
152 <select id=
"language" name=
"language" [(ngModel)]=
"advancedSearch.languageOneOf" class=
"form-control">
153 <option [value]=
"undefined" i18n
>Display all languages
</option>
154 <option *
ngFor=
"let language of videoLanguages" [value]=
"language.id">{{ language.label }}
</option>
160 <div class=
"col-lg-4 col-md-6 col-xs-12">
161 <div class=
"form-group">
162 <label i18n
for=
"tagsAllOf">All of these tags
</label>
163 <button i18n
class=
"reset-button reset-button-small" (click)=
"resetField('tagsAllOf')" *
ngIf=
"advancedSearch.tagsAllOf">
166 <my-select-tags name=
"tagsAllOf" labelForId=
"tagsAllOf" id=
"tagsAllOf" [(ngModel)]=
"advancedSearch.tagsAllOf"></my-select-tags>
169 <div class=
"form-group">
170 <label i18n
for=
"tagsOneOf">One of these tags
</label>
171 <button i18n
class=
"reset-button reset-button-small" (click)=
"resetField('tagsOneOf')" *
ngIf=
"advancedSearch.tagsOneOf">
174 <my-select-tags name=
"tagsOneOf" labelForId=
"tagsOneOf" id=
"tagsOneOf" [(ngModel)]=
"advancedSearch.tagsOneOf"></my-select-tags>
177 <div class=
"form-group">
178 <label i18n
for=
"host">PeerTube instance host
</label>
180 <input (change)=
"onDurationOrPublishedUpdated()" (keydown.enter)=
"$event.preventDefault()" type=
"text" id=
"host" name=
"host"
181 placeholder=
"example.com" [(ngModel)]=
"advancedSearch.host" class=
"form-control"
185 <div class=
"form-group">
186 <div class=
"radio-label label-container">
187 <label for=
"resultType" i18n
>Result types
</label>
188 <button i18n
class=
"reset-button reset-button-small" (click)=
"resetField('resultType')" *
ngIf=
"advancedSearch.resultType !== undefined">
193 <div class=
"peertube-radio-container">
194 <input type=
"radio" name=
"resultType" id=
"resultTypeVideos" value=
"videos" [(ngModel)]=
"advancedSearch.resultType">
195 <label i18n
for=
"resultTypeVideos" class=
"radio">Videos
</label>
198 <div class=
"peertube-radio-container">
199 <input type=
"radio" name=
"resultType" id=
"resultTypeChannels" value=
"channels" [(ngModel)]=
"advancedSearch.resultType">
200 <label i18n
for=
"resultTypeChannels" class=
"radio">Channels
</label>
203 <div class=
"peertube-radio-container">
204 <input type=
"radio" name=
"resultType" id=
"resultTypePlaylists" value=
"playlists" [(ngModel)]=
"advancedSearch.resultType">
205 <label i18n
for=
"resultTypePlaylists" class=
"radio">Playlists
</label>
210 <div class=
"form-group" *
ngIf=
"isSearchTargetEnabled()">
211 <div class=
"radio-label label-container">
212 <label for=
"searchTarget" i18n
>Search target
</label>
215 <div class=
"peertube-radio-container">
216 <input type=
"radio" name=
"searchTarget" id=
"searchTargetLocal" value=
"local" [(ngModel)]=
"advancedSearch.searchTarget">
217 <label i18n
for=
"searchTargetLocal" class=
"radio">Instance
</label>
220 <div class=
"peertube-radio-container">
221 <input type=
"radio" name=
"searchTarget" id=
"searchTargetSearchIndex" value=
"search-index" [(ngModel)]=
"advancedSearch.searchTarget">
222 <label i18n
for=
"searchTargetSearchIndex" class=
"radio">Vidiverse
</label>
228 <div class=
"submit-button">
229 <button i18n
class=
"reset-button" (click)=
"reset()" *
ngIf=
"advancedSearch.size()">
233 <input type=
"submit" i18n-value
value=
"Filter">