]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/+admin/plugins/plugin-list-installed/plugin-list-installed.component.html
Refactor admin plugins
[github/Chocobozzz/PeerTube.git] / client / src / app / +admin / plugins / plugin-list-installed / plugin-list-installed.component.html
index bc4c2ef88bbd6c0ecf5eceb4c6efb7c52a0fc9eb..c5d440c8cee4e068c2a07a3a29f030d83db13f2b 100644 (file)
@@ -1,45 +1,25 @@
-<div class="toggle-plugin-type">
-  <p-selectButton [options]="pluginTypeOptions" [(ngModel)]="pluginType" (ngModelChange)="reloadPlugins()"></p-selectButton>
-</div>
+<my-plugin-navigation [pluginType]="pluginType"></my-plugin-navigation>
 
 <div class="no-results" *ngIf="pagination.totalItems === 0">
   {{ getNoResultMessage() }}
 </div>
 
-<div class="plugins" myInfiniteScroller (nearOfBottom)="onNearOfBottom()" [autoInit]="true" [dataObservable]="onDataSubject.asObservable()">
-  <div class="card plugin" *ngFor="let plugin of plugins">
-    <div class="card-body">
-      <div class="first-row">
-        <span class="plugin-name">{{ plugin.name }}</span>
-
-        <span class="plugin-version">{{ plugin.version }}</span>
-
-        <a class="plugin-icon" target="_blank" rel="noopener noreferrer" [href]="plugin.homepage" i18n-title title="Plugin homepage (new window)">
-          <my-global-icon iconName="home"></my-global-icon>
-        </a>
-
-        <a class="plugin-icon" target="_blank" rel="noopener noreferrer" [href]="getPluginOrThemeHref(plugin.name)" i18n-title title="Plugin homepage (new window)">
-          <my-global-icon iconName="npm"></my-global-icon>
-        </a>
-
-        <div class="buttons">
-          <my-edit-button
-            *ngIf="!isTheme(plugin)" [routerLink]="getShowRouterLink(plugin)" label="Settings" i18n-label
-            [responsiveLabel]="true"
-          ></my-edit-button>
-
-          <my-button
-            class="update-button" *ngIf="isUpdateAvailable(plugin)" (click)="update(plugin)" [loading]="isUpdating(plugin)"
-            [label]="getUpdateLabel(plugin)" icon="refresh" [attr.disabled]="isUpdating(plugin)" [responsiveLabel]="true"
-          ></my-button>
-
-          <my-delete-button (click)="uninstall(plugin)" label="Uninstall" i18n-label [responsiveLabel]="true"></my-delete-button>
-        </div>
-      </div>
-
-      <div class="second-row">
-        <div class="description">{{ plugin.description }}</div>
+<div class="plugins" myInfiniteScroller (nearOfBottom)="onNearOfBottom()" [dataObservable]="onDataSubject.asObservable()">
+  <ng-container *ngFor="let plugin of plugins">
+    <my-plugin-card [plugin]="plugin" [version]="plugin.version" [pluginType]="pluginType">
+      <div ngProjectAs="buttons">
+        <my-edit-button
+          *ngIf="!isTheme(plugin)" [routerLink]="getShowRouterLink(plugin)" label="Settings" i18n-label
+          [responsiveLabel]="true"
+        ></my-edit-button>
+
+        <my-button
+          class="update-button" *ngIf="isUpdateAvailable(plugin)" (click)="update(plugin)" [loading]="isUpdating(plugin)"
+          [label]="getUpdateLabel(plugin)" icon="refresh" [attr.disabled]="isUpdating(plugin)" [responsiveLabel]="true"
+        ></my-button>
+
+        <my-delete-button (click)="uninstall(plugin)" label="Uninstall" i18n-label [responsiveLabel]="true"></my-delete-button>
       </div>
-    </div>
-  </div>
+    </my-plugin-card>
+  </ng-container>
 </div>