]>
Commit | Line | Data |
---|---|---|
6702a1b2 C |
1 | <div class="toggle-plugin-type"> |
2 | <p-selectButton [options]="pluginTypeOptions" [(ngModel)]="pluginType" (ngModelChange)="reloadPlugins()"></p-selectButton> | |
3 | </div> | |
4 | ||
5 | <div class="search-bar"> | |
be27ef3b | 6 | <input type="text" (input)="onSearchChange($event)" i18n-placeholder placeholder="Search..."/> |
6702a1b2 C |
7 | </div> |
8 | ||
89c344db C |
9 | <div class="alert alert-info" i18n *ngIf="pluginInstalled"> |
10 | To load your new installed plugins or themes, refresh the page. | |
11 | </div> | |
12 | ||
6702a1b2 C |
13 | <div class="result-title" *ngIf="!isSearching"> |
14 | <ng-container *ngIf="!search"> | |
15 | <my-global-icon iconName="trending"></my-global-icon> | |
16 | <ng-container i18n>Popular</ng-container> | |
17 | </ng-container> | |
18 | ||
ae8b8faf | 19 | <ng-container *ngIf="!!search"> |
6702a1b2 C |
20 | <my-global-icon iconName="search"></my-global-icon> |
21 | ||
22 | <ng-container i18n> | |
23 | {{ pagination.totalItems }} {pagination.totalItems, plural, =1 {result} other {results}} for "{{ search }}" | |
24 | </ng-container> | |
25 | </ng-container> | |
26 | </div> | |
27 | ||
28 | <div class="no-results" i18n *ngIf="pagination.totalItems === 0"> | |
29 | No results. | |
30 | </div> | |
31 | ||
ad453580 | 32 | <div class="plugins" myInfiniteScroller (nearOfBottom)="onNearOfBottom()" [autoInit]="true" [dataObservable]="onDataSubject.asObservable()"> |
6702a1b2 C |
33 | <div class="card plugin" *ngFor="let plugin of plugins"> |
34 | <div class="card-body"> | |
35 | <div class="first-row"> | |
36 | <span class="plugin-name">{{ plugin.name }}</span> | |
37 | ||
38 | <span class="plugin-version">{{ plugin.latestVersion }}</span> | |
89c344db | 39 | |
03efb141 RK |
40 | <a class="plugin-icon" target="_blank" rel="noopener noreferrer" [href]="plugin.homepage" i18n-title title="Go to the plugin homepage"> |
41 | <my-global-icon iconName="home"></my-global-icon> | |
42 | </a> | |
6702a1b2 | 43 | |
75264e37 | 44 | <a class="plugin-icon" target="_blank" rel="noopener noreferrer" [href]="'https://www.npmjs.com/package/peertube-plugin-' + plugin.name" i18n-title title="Go to the plugin npm package"> |
03efb141 RK |
45 | <my-global-icon iconName="npm"></my-global-icon> |
46 | </a> | |
6702a1b2 | 47 | |
03efb141 | 48 | <span *ngIf="plugin.installed" class="badge badge-success">Installed</span> |
6702a1b2 | 49 | |
03efb141 | 50 | <div class="buttons"> |
6702a1b2 C |
51 | <my-button class="update-button" *ngIf="plugin.installed === false" (click)="install(plugin)" [loading]="isInstalling(plugin)" |
52 | label="Install" icon="cloud-download" [attr.disabled]="isInstalling(plugin)" | |
53 | ></my-button> | |
54 | </div> | |
55 | </div> | |
03efb141 RK |
56 | |
57 | <div class="second-row"> | |
58 | <div class="description">{{ plugin.description }}</div> | |
59 | </div> | |
6702a1b2 C |
60 | </div> |
61 | </div> | |
62 | </div> |