ecosystem/application-plugins/plugin-list.component.ts
selector | c8y-plugin-list |
templateUrl | ./plugin-list.component.html |
Properties |
Methods |
Inputs |
Outputs |
constructor(pluginListService: PluginListService)
|
||||||
Parameters :
|
emptyListText |
Type : string
|
Default value : ''
|
hideSource |
Type : boolean
|
Default value : false
|
installable |
Type : boolean
|
Default value : false
|
Shows the install button for each plugin separately. Currently used in package-details view. |
package |
Type : IApplication
|
plugins$ |
Type : Observable<ApplicationPlugin[]>
|
selectable |
Type : boolean
|
selectedPlugin |
Type : ApplicationPlugin
|
selectedItems |
Type : EventEmitter<ApplicationPlugin[]>
|
showOverview |
Type : EventEmitter
|
Async installPlugin | ||||||
installPlugin(plugin: ApplicationPlugin)
|
||||||
Parameters :
Returns :
any
|
showPluginOverview | ||||||
showPluginOverview(plugin: ApplicationPlugin)
|
||||||
Parameters :
Returns :
void
|
Async uninstallPlugin | ||||||
uninstallPlugin(plugin: ApplicationPlugin)
|
||||||
Parameters :
Returns :
any
|
updateSelectedItems | |||||||||
updateSelectedItems(selected: boolean, plugin: ApplicationPlugin)
|
|||||||||
Parameters :
Returns :
void
|
CURRENT_LOCATION |
Default value : location.href
|
selectedPlugins |
Type : literal type
|
Default value : {}
|
updatingPluginId |
Type : Record<UpdateType | string>
|
<c8y-list-group class="bg-inherit">
<ng-container *ngIf="(plugins$ | async)?.length !== 0; else emptyList">
<ng-container *ngFor="let plugin of plugins$ | async">
<c8y-li
[ngClass]="{
disabled: plugin.installed,
selected: selectedPlugin?.id === plugin?.id
}"
>
<div class="d-flex fit-w">
<ng-container *ngIf="plugin.readmePath">
<button
class="c8y-list__item__btn d-flex fit-w gap-4"
title="{{ 'Details' | translate }}"
(click)="showPluginOverview(plugin)"
>
<c8y-plugin-list-item
class="d-contents"
(isItemSelected)="updateSelectedItems($event, plugin)"
[plugin]="plugin"
[selectable]="selectable"
[hideSource]="hideSource"
></c8y-plugin-list-item>
<i
class="icon-24 m-l-auto a-s-center"
c8yIcon="forward"
></i>
</button>
</ng-container>
<ng-container *ngIf="!plugin.readmePath">
<c8y-plugin-list-item
class="d-contents"
(isItemSelected)="updateSelectedItems($event, plugin)"
[plugin]="plugin"
[selectable]="selectable"
[hideSource]="hideSource"
></c8y-plugin-list-item>
</ng-container>
</div>
<div class="p-l-40 m-t-4 d-flex flex-wrap gap-8">
<button
class="btn btn-danger btn-sm"
title="{{ 'Uninstall plugin' | translate }}"
*ngIf="installable"
(click)="uninstallPlugin(plugin)"
[ngClass]="{ 'btn-pending': plugin.id === updatingPluginId.uninstall }"
[disabled]="updatingPluginId.uninstall && plugin.id === updatingPluginId.uninstall"
data-cy="plugin-list--uninstall-plugin-button"
translate
>
Uninstall plugin
</button>
<button
class="btn btn-default btn-sm m-0"
title="{{ 'Install plugin' | translate }}"
*ngIf="installable"
(click)="installPlugin(plugin)"
[ngClass]="{ 'btn-pending': plugin.id === updatingPluginId.install }"
[disabled]="updatingPluginId.install && plugin.id === updatingPluginId.install"
data-cy="plugin-list--install-plugin-button"
translate
>
Install plugin
</button>
</div>
</c8y-li>
</ng-container>
</ng-container>
</c8y-list-group>
<ng-template #emptyList>
<c8y-ui-empty-state
[icon]="'plugin'"
[title]="emptyListText | translate"
[horizontal]="true"
*ngIf="emptyListText"
></c8y-ui-empty-state>
</ng-template>