Reorganize client shared modules
[oweals/peertube.git] / client / src / app / search / search.component.html
1 <div myInfiniteScroller [autoInit]="true" (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 i18n>{{ pagination.totalItems | myNumberFormatter }} {pagination.totalItems, plural, =1 {result} other {results}} </span>
6
7         <span i18n *ngIf="advancedSearch.searchTarget === 'local'">on this instance</span>
8         <span i18n *ngIf="advancedSearch.searchTarget === 'search-index'">on the vidiverse</span>
9
10         <span *ngIf="currentSearch" i18n>
11           for <span class="search-value">{{ currentSearch }}</span>
12         </span>
13       </div>
14
15       <div
16         class="results-filter-button ml-auto" (click)="isSearchFilterCollapsed = !isSearchFilterCollapsed" role="button"
17         [attr.aria-expanded]="!isSearchFilterCollapsed" aria-controls="collapseBasic"
18       >
19         <span class="icon icon-filter"></span>
20         <ng-container i18n>
21           Filters
22           <span *ngIf="numberOfFilters() > 0" class="badge badge-secondary">{{ numberOfFilters() }}</span>
23         </ng-container>
24       </div>
25     </div>
26
27     <div class="results-filter collapse-transition" [ngbCollapse]="isSearchFilterCollapsed">
28       <my-search-filters [advancedSearch]="advancedSearch" (filtered)="onFiltered()"></my-search-filters>
29     </div>
30   </div>
31
32   <div i18n *ngIf="pagination.totalItems === 0 && results.length === 0" class="no-results">
33     No results found
34   </div>
35
36   <ng-container *ngFor="let result of results">
37     <div *ngIf="isVideoChannel(result)" class="entry video-channel">
38       <a [routerLink]="getChannelUrl(result)">
39         <img [src]="result.avatarUrl" alt="Avatar" />
40       </a>
41
42       <div class="video-channel-info">
43         <a [routerLink]="getChannelUrl(result)" class="video-channel-names">
44           <div class="video-channel-display-name">{{ result.displayName }}</div>
45           <div class="video-channel-name">{{ result.nameWithHost }}</div>
46         </a>
47
48         <div i18n class="video-channel-followers">{{ result.followersCount }} subscribers</div>
49       </div>
50
51       <my-subscribe-button *ngIf="!hideActions()" [videoChannels]="[result]"></my-subscribe-button>
52     </div>
53
54     <div *ngIf="isVideo(result)" class="entry video">
55       <my-video-miniature
56         [video]="result" [user]="userMiniature" [displayAsRow]="true" [displayVideoActions]="!hideActions()"
57         [displayOptions]="videoDisplayOptions" [useLazyLoadUrl]="advancedSearch.searchTarget === 'search-index'"
58         (videoBlocked)="removeVideoFromArray(result)" (videoRemoved)="removeVideoFromArray(result)"
59       ></my-video-miniature>
60     </div>
61   </ng-container>
62
63 </div>