1 <div class=
"toggle-plugin-type">
2 <p-selectButton [options]=
"pluginTypeOptions" [(ngModel)]=
"pluginType" (ngModelChange)=
"reloadPlugins()"></p-selectButton>
5 <div class=
"no-results" *
ngIf=
"pagination.totalItems === 0">
6 {{ getNoResultMessage() }}
9 <div class=
"plugins" myInfiniteScroller (nearOfBottom)=
"onNearOfBottom()" [autoInit]=
"true" [dataObservable]=
"onDataSubject.asObservable()">
10 <div class=
"card plugin" *
ngFor=
"let plugin of plugins">
11 <div class=
"card-body">
12 <div class=
"first-row">
13 <span class=
"plugin-name">{{ plugin.name }}
</span>
15 <span class=
"plugin-version">{{ plugin.version }}
</span>
17 <a class=
"plugin-icon" target=
"_blank" rel=
"noopener noreferrer" [href]=
"plugin.homepage" i18n-title
title=
"Plugin homepage (new window)">
18 <my-global-icon iconName=
"home"></my-global-icon>
21 <a class=
"plugin-icon" target=
"_blank" rel=
"noopener noreferrer" [href]=
"'https://www.npmjs.com/package/peertube-plugin-' + plugin.name" i18n-title
title=
"Plugin homepage (new window)">
22 <my-global-icon iconName=
"npm"></my-global-icon>
26 <my-edit-button *
ngIf=
"pluginType !== PluginType.THEME" [routerLink]=
"getShowRouterLink(plugin)" label=
"Settings" i18n-label
></my-edit-button>
28 <my-button class=
"update-button" *
ngIf=
"isUpdateAvailable(plugin)" (click)=
"update(plugin)" [loading]=
"isUpdating(plugin)"
29 [label]=
"getUpdateLabel(plugin)" icon=
"refresh" [attr.disabled]=
"isUpdating(plugin)"
32 <my-delete-button (click)=
"uninstall(plugin)" label=
"Uninstall" i18n-label
></my-delete-button>
36 <div class=
"second-row">
37 <div class=
"description">{{ plugin.description }}
</div>