]>
Commit | Line | Data |
---|---|---|
aa55a4da | 1 | <div myInfiniteScroller [autoInit]="true" (nearOfBottom)="onNearOfBottom()" class="search-result"> |
2c24b9d3 | 2 | <div class="results-header"> |
0b18f4aa | 3 | <div class="first-line"> |
2c24b9d3 | 4 | <div class="results-counter" *ngIf="pagination.totalItems"> |
a3caabe2 | 5 | <span class="mr-1" i18n>{{ pagination.totalItems | myNumberFormatter }} {pagination.totalItems, plural, =1 {result} other {results}}</span> |
5fb2e288 | 6 | |
a3caabe2 RK |
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> | |
5fb2e288 | 9 | |
a3caabe2 | 10 | <span *ngIf="currentSearch" i18n>for <span class="search-value">{{ currentSearch }}</span></span> |
0b18f4aa C |
11 | </div> |
12 | ||
13 | <div | |
f5d9558f | 14 | class="results-filter-button ml-auto" (click)="isSearchFilterCollapsed = !isSearchFilterCollapsed" role="button" |
8cd72bd3 | 15 | [attr.aria-expanded]="!isSearchFilterCollapsed" aria-controls="collapseBasic" |
0b18f4aa C |
16 | > |
17 | <span class="icon icon-filter"></span> | |
c5d04b4f RK |
18 | <ng-container i18n> |
19 | Filters | |
20 | <span *ngIf="numberOfFilters() > 0" class="badge badge-secondary">{{ numberOfFilters() }}</span> | |
21 | </ng-container> | |
0b18f4aa C |
22 | </div> |
23 | </div> | |
24 | ||
2f4c784a | 25 | <div class="results-filter collapse-transition" [ngbCollapse]="isSearchFilterCollapsed"> |
8cd72bd3 | 26 | <my-search-filters [advancedSearch]="advancedSearch" (filtered)="onFiltered()"></my-search-filters> |
0b18f4aa C |
27 | </div> |
28 | </div> | |
29 | ||
2d3741d6 | 30 | <div i18n *ngIf="pagination.totalItems === 0 && results.length === 0" class="no-results"> |
0b18f4aa | 31 | No results found |
57c36b27 C |
32 | </div> |
33 | ||
26fabbd6 C |
34 | <ng-container *ngFor="let result of results"> |
35 | <div *ngIf="isVideoChannel(result)" class="entry video-channel"> | |
4429a4a6 | 36 | <a class="link-avatar" *ngIf="!isExternalChannelUrl()" [routerLink]="getChannelUrl(result)"> |
0bdad52f C |
37 | <img [src]="result.avatarUrl" alt="Avatar" /> |
38 | </a> | |
39 | ||
4429a4a6 | 40 | <a class="link-avatar" *ngIf="isExternalChannelUrl()" [href]="getChannelUrl(result)" target="_blank"> |
26fabbd6 | 41 | <img [src]="result.avatarUrl" alt="Avatar" /> |
f37dc0dd C |
42 | </a> |
43 | ||
26fabbd6 | 44 | <div class="video-channel-info"> |
0bdad52f C |
45 | <a *ngIf="!isExternalChannelUrl()" [routerLink]="getChannelUrl(result)" class="video-channel-names"> |
46 | <ng-container *ngTemplateOutlet="aContent"></ng-container> | |
47 | </a> | |
48 | ||
49 | <a *ngIf="isExternalChannelUrl()" [href]="getChannelUrl(result)" target="_blank" class="video-channel-names"> | |
50 | <ng-container *ngTemplateOutlet="aContent"></ng-container> | |
51 | </a> | |
52 | ||
53 | <ng-template #aContent> | |
26fabbd6 C |
54 | <div class="video-channel-display-name">{{ result.displayName }}</div> |
55 | <div class="video-channel-name">{{ result.nameWithHost }}</div> | |
0bdad52f | 56 | </ng-template> |
f37dc0dd | 57 | |
26fabbd6 C |
58 | <div i18n class="video-channel-followers">{{ result.followersCount }} subscribers</div> |
59 | </div> | |
f37dc0dd | 60 | |
5fb2e288 | 61 | <my-subscribe-button *ngIf="!hideActions()" [videoChannels]="[result]"></my-subscribe-button> |
26fabbd6 | 62 | </div> |
57c36b27 | 63 | |
26fabbd6 | 64 | <div *ngIf="isVideo(result)" class="entry video"> |
3a0fb65c | 65 | <my-video-miniature |
5c20a455 | 66 | [video]="result" [user]="userMiniature" [displayAsRow]="true" [displayVideoActions]="!hideActions()" |
0bdad52f | 67 | [displayOptions]="videoDisplayOptions" [videoLinkType]="getVideoLinkType()" |
5baee5fc | 68 | (videoBlocked)="removeVideoFromArray(result)" (videoRemoved)="removeVideoFromArray(result)" |
3a0fb65c | 69 | ></my-video-miniature> |
57c36b27 | 70 | </div> |
26fabbd6 C |
71 | </ng-container> |
72 | ||
57c36b27 | 73 | </div> |