File

ecosystem/application-plugins/plugin-list.component.ts

Metadata

Index

Properties
Methods
Inputs
Outputs

Constructor

constructor(pluginListService: PluginListService)
Parameters :
Name Type Optional
pluginListService PluginListService No

Inputs

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

Outputs

selectedItems
Type : EventEmitter<ApplicationPlugin[]>
showOverview
Type : EventEmitter

Methods

Async installPlugin
installPlugin(plugin: ApplicationPlugin)
Parameters :
Name Type Optional
plugin ApplicationPlugin No
Returns : any
showPluginOverview
showPluginOverview(plugin: ApplicationPlugin)
Parameters :
Name Type Optional
plugin ApplicationPlugin No
Returns : void
Async uninstallPlugin
uninstallPlugin(plugin: ApplicationPlugin)
Parameters :
Name Type Optional
plugin ApplicationPlugin No
Returns : any
updateSelectedItems
updateSelectedItems(selected: boolean, plugin: ApplicationPlugin)
Parameters :
Name Type Optional
selected boolean No
plugin ApplicationPlugin No
Returns : void

Properties

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>

results matching ""

    No results matching ""