]>
Commit | Line | Data |
---|---|---|
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"> | |
6 | <input type="text" (input)="onSearchChange($event)" i18n-placeholder placeholder="Search..."/> | |
7 | </div> | |
8 | ||
9 | <div class="alert alert-info" i18n *ngIf="pluginInstalled"> | |
10 | To load your new installed plugins or themes, refresh the page. | |
11 | </div> | |
12 | ||
13 | <div class="result-title" *ngIf="!isSearching"> | |
14 | <ng-container *ngIf="!search"> | |
15 | <my-global-icon iconName="trending" aria-hidden="true"></my-global-icon> | |
16 | <ng-container i18n>Popular</ng-container> | |
17 | </ng-container> | |
18 | ||
19 | <ng-container *ngIf="!!search"> | |
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 | ||
32 | <div class="plugins" myInfiniteScroller (nearOfBottom)="onNearOfBottom()" [autoInit]="true" [dataObservable]="onDataSubject.asObservable()"> | |
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> | |
39 | ||
40 | <a class="plugin-icon" target="_blank" rel="noopener noreferrer" [href]="plugin.homepage" i18n-title title="Plugin homepage (new window)"> | |
41 | <my-global-icon iconName="home"></my-global-icon> | |
42 | </a> | |
43 | ||
44 | <a class="plugin-icon" target="_blank" rel="noopener noreferrer" [href]="'https://www.npmjs.com/package/peertube-plugin-' + plugin.name" i18n-title title="Plugin npm package (new window)"> | |
45 | <my-global-icon iconName="npm"></my-global-icon> | |
46 | </a> | |
47 | ||
48 | <span *ngIf="plugin.installed" class="badge badge-success">Installed</span> | |
49 | ||
50 | <div class="buttons"> | |
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> | |
56 | ||
57 | <div class="second-row"> | |
58 | <div class="description">{{ plugin.description }}</div> | |
59 | </div> | |
60 | </div> | |
61 | </div> | |
62 | </div> |