1 <div myInfiniteScroller (nearOfBottom)=
"onNearOfBottom()" class=
"search-result">
2 <div class=
"results-header">
3 <div class=
"first-line">
4 <div class=
"results-counter" *
ngIf=
"pagination.totalItems">
5 <span class=
"mr-1" i18n
>{{ pagination.totalItems | myNumberFormatter }} {pagination.totalItems, plural, =
1 {result} other {results}}
</span>
7 <span class=
"mr-1" i18n *
ngIf=
"advancedSearch.searchTarget === 'local'">on this instance
</span>
8 <span class=
"mr-1" i18n *
ngIf=
"advancedSearch.searchTarget === 'search-index'">on the vidiverse
</span>
10 <span *
ngIf=
"currentSearch" i18n
>for
<span class=
"search-value">{{ currentSearch }}
</span></span>
14 class=
"results-filter-button ml-auto" (click)=
"isSearchFilterCollapsed = !isSearchFilterCollapsed" role=
"button"
15 [attr.aria-expanded]=
"!isSearchFilterCollapsed" aria-controls=
"collapseBasic"
17 <span class=
"icon icon-filter"></span>
20 <span *
ngIf=
"numberOfFilters() > 0" class=
"badge badge-secondary">{{ numberOfFilters() }}
</span>
25 <div class=
"results-filter collapse-transition" [ngbCollapse]=
"isSearchFilterCollapsed">
26 <my-search-filters [advancedSearch]=
"advancedSearch" (filtered)=
"onFiltered()"></my-search-filters>
28 <div *
ngIf=
"error" class=
"alert alert-danger">{{ error }}
</div>
32 <div i18n *
ngIf=
"pagination.totalItems === 0 && results.length === 0" class=
"no-results">
36 <ng-container *
ngFor=
"let result of results">
37 <div *
ngIf=
"isVideoChannel(result)" class=
"entry video-channel">
39 <my-actor-avatar [channel]=
"result" [internalHref]=
"getInternalChannelUrl(result)" [href]=
"getExternalChannelUrl(result)" size=
"120"></my-actor-avatar>
41 <div class=
"video-channel-info">
42 <a *
ngIf=
"!isExternalChannelUrl()" [routerLink]=
"getInternalChannelUrl(result)" class=
"video-channel-names">
43 <ng-container *
ngTemplateOutlet=
"aContent"></ng-container>
46 <a *
ngIf=
"isExternalChannelUrl()" [href]=
"getExternalChannelUrl(result)" target=
"_blank" class=
"video-channel-names">
47 <ng-container *
ngTemplateOutlet=
"aContent"></ng-container>
50 <ng-template #aContent
>
51 <div class=
"video-channel-display-name">{{ result.displayName }}
</div>
52 <div class=
"video-channel-name">{{ result.nameWithHost }}
</div>
55 <div i18n
class=
"video-channel-followers">{{ result.followersCount }} subscribers
</div>
58 <my-subscribe-button *
ngIf=
"!hideActions()" [videoChannels]=
"[result]"></my-subscribe-button>
61 <div *
ngIf=
"isVideo(result)" class=
"entry video">
63 [video]=
"result" [user]=
"userMiniature" [displayAsRow]=
"true" [displayVideoActions]=
"!hideActions()"
64 [displayOptions]=
"videoDisplayOptions" [videoLinkType]=
"getLinkType()"
65 (videoBlocked)=
"removeVideoFromArray(result)" (videoRemoved)=
"removeVideoFromArray(result)"
66 ></my-video-miniature>
69 <div *
ngIf=
"isPlaylist(result)" class=
"entry video-playlist">
70 <my-video-playlist-miniature
71 [playlist]=
"result" [displayAsRow]=
"true" [displayChannel]=
"true"
72 [linkType]=
"getLinkType()"
73 ></my-video-playlist-miniature>