1 <div class=
"toggle-plugin-type">
2 <p-selectButton [options]=
"pluginTypeOptions" [(ngModel)]=
"pluginType" (ngModelChange)=
"reloadPlugins()"></p-selectButton>
5 <div class=
"search-bar">
6 <input type=
"text" (input)=
"onSearchChange($event.target.value)" i18n-placeholder
placeholder=
"Search..."/>
9 <div class=
"alert alert-info" i18n *
ngIf=
"pluginInstalled">
10 To load your new installed plugins or themes, refresh the page.
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>
19 <ng-container *
ngIf=
"!!search">
20 <my-global-icon iconName=
"search"></my-global-icon>
23 {{ pagination.totalItems }} {pagination.totalItems, plural, =
1 {result} other {results}} for "{{ search }}"
28 <div class=
"no-results" i18n *
ngIf=
"pagination.totalItems === 0">
32 <div class=
"plugins" myInfiniteScroller (nearOfBottom)=
"onNearOfBottom()" [autoInit]=
"true">
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>
38 <span class=
"plugin-version">{{ plugin.latestVersion }}
</span>
40 <span *
ngIf=
"plugin.installed" class=
"badge badge-success">Installed
</span>
43 <div class=
"second-row">
44 <div class=
"description">{{ plugin.description }}
</div>
47 <a class=
"action-button action-button-edit grey-button" target=
"_blank" rel=
"noopener noreferrer"
48 [href]=
"plugin.homepage" i18n-title
title=
"Go to the plugin homepage"
50 <my-global-icon iconName=
"go"></my-global-icon>
51 <span i18n
class=
"button-label">Homepage
</span>
54 <my-button class=
"update-button" *
ngIf=
"plugin.installed === false" (click)=
"install(plugin)" [loading]=
"isInstalling(plugin)"
55 label=
"Install" icon=
"cloud-download" [attr.disabled]=
"isInstalling(plugin)"