]>
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"> | |
a3664dfd | 6 | <input type="text" (input)="onSearchChange($event)" i18n-placeholder placeholder="Search..." autofocus /> |
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"> | |
adcf9212 | 15 | <my-global-icon iconName="trending" aria-hidden="true"></my-global-icon> |
6702a1b2 C |
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> | |
a3caabe2 RK |
23 | {{ pagination.totalItems }} {pagination.totalItems, plural, =1 {result} other {results}} for {{ search }}" |
24 | </ng-container> | |
6702a1b2 C |
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 | |
d6d951dd | 40 | <a class="plugin-icon" target="_blank" rel="noopener noreferrer" [href]="plugin.homepage" i18n-title title="Plugin homepage (new window)"> |
03efb141 RK |
41 | <my-global-icon iconName="home"></my-global-icon> |
42 | </a> | |
6702a1b2 | 43 | |
078b4716 | 44 | <a class="plugin-icon" target="_blank" rel="noopener noreferrer" [href]="getPluginOrThemeHref(plugin.name)" i18n-title title="Plugin npm package (new window)"> |
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"> |
c96e457b C |
51 | <my-edit-button *ngIf="plugin.installed === true && !isThemeSearch()" [routerLink]="getShowRouterLink(plugin)" label="Settings" i18n-label></my-edit-button> |
52 | ||
6702a1b2 C |
53 | <my-button class="update-button" *ngIf="plugin.installed === false" (click)="install(plugin)" [loading]="isInstalling(plugin)" |
54 | label="Install" icon="cloud-download" [attr.disabled]="isInstalling(plugin)" | |
55 | ></my-button> | |
56 | </div> | |
57 | </div> | |
03efb141 RK |
58 | |
59 | <div class="second-row"> | |
60 | <div class="description">{{ plugin.description }}</div> | |
61 | </div> | |
6702a1b2 C |
62 | </div> |
63 | </div> | |
64 | </div> |