]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - client/src/app/+search/search.component.html
Fix release script
[github/Chocobozzz/PeerTube.git] / client / src / app / +search / search.component.html
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>
6
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>
9
10 <span *ngIf="currentSearch" i18n>for <span class="search-value">{{ currentSearch }}</span></span>
11 </div>
12
13 <div
14 class="results-filter-button ml-auto" (click)="isSearchFilterCollapsed = !isSearchFilterCollapsed" role="button"
15 [attr.aria-expanded]="!isSearchFilterCollapsed" aria-controls="collapseBasic"
16 >
17 <span class="icon icon-filter"></span>
18 <ng-container i18n>
19 Filters
20 <span *ngIf="numberOfFilters() > 0" class="badge badge-secondary">{{ numberOfFilters() }}</span>
21 </ng-container>
22 </div>
23 </div>
24
25 <div class="results-filter collapse-transition" [ngbCollapse]="isSearchFilterCollapsed">
26 <my-search-filters [advancedSearch]="advancedSearch" (filtered)="onFiltered()"></my-search-filters>
27
28 <div *ngIf="error" class="alert alert-danger">{{ error }}</div>
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
39 <my-actor-avatar [channel]="result" [internalHref]="getInternalChannelUrl(result)" [href]="getExternalChannelUrl(result)" size="120"></my-actor-avatar>
40
41 <div class="video-channel-info">
42 <a *ngIf="!isExternalChannelUrl()" [routerLink]="getInternalChannelUrl(result)" class="video-channel-names">
43 <ng-container *ngTemplateOutlet="aContent"></ng-container>
44 </a>
45
46 <a *ngIf="isExternalChannelUrl()" [href]="getExternalChannelUrl(result)" target="_blank" class="video-channel-names">
47 <ng-container *ngTemplateOutlet="aContent"></ng-container>
48 </a>
49
50 <ng-template #aContent>
51 <div class="video-channel-display-name">{{ result.displayName }}</div>
52 <div class="video-channel-name">{{ result.nameWithHost }}</div>
53 </ng-template>
54
55 <div i18n class="video-channel-followers">{{ result.followersCount }} subscribers</div>
56 </div>
57
58 <my-subscribe-button *ngIf="!hideActions()" [videoChannels]="[result]"></my-subscribe-button>
59 </div>
60
61 <div *ngIf="isVideo(result)" class="entry video">
62 <my-video-miniature
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>
67 </div>
68
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>
74 </div>
75 </ng-container>
76
77 </div>