]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/shared/shared-instance/instance-about-accordion.component.ts
Fix button icon margin
[github/Chocobozzz/PeerTube.git] / client / src / app / shared / shared-instance / instance-about-accordion.component.ts
index 8e7bf2021c8758b0c08eaac36a715ecdd97b42ad..b9f57e2a468fd1c884d3ea05b823c39990ce86d4 100644 (file)
@@ -1,18 +1,23 @@
 import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core'
+import { HooksService, Notifier } from '@app/core'
 import { NgbAccordion } from '@ng-bootstrap/ng-bootstrap'
-import { InstanceService } from './instance.service'
-import { Notifier } from '@app/core'
+import { ClientFilterHookName, PluginClientScope } from '@shared/models/plugins'
 import { About } from '@shared/models/server'
+import { InstanceService } from './instance.service'
 
 @Component({
   selector: 'my-instance-about-accordion',
   templateUrl: './instance-about-accordion.component.html',
-  styleUrls: ['./instance-about-accordion.component.scss']
+  styleUrls: [ './instance-about-accordion.component.scss' ]
 })
 export class InstanceAboutAccordionComponent implements OnInit {
   @ViewChild('accordion', { static: true }) accordion: NgbAccordion
+
   @Output() init: EventEmitter<InstanceAboutAccordionComponent> = new EventEmitter<InstanceAboutAccordionComponent>()
 
+  @Input() pluginScope: PluginClientScope
+  @Input() pluginHook: ClientFilterHookName
+
   @Input() panels = {
     features: true,
     administrators: true,
@@ -29,15 +34,18 @@ export class InstanceAboutAccordionComponent implements OnInit {
     administrator: ''
   }
 
+  pluginPanels: { id: string, title: string, html: string }[] = []
+
   constructor (
     private instanceService: InstanceService,
-    private notifier: Notifier
+    private notifier: Notifier,
+    private hookService: HooksService
   ) { }
 
-  ngOnInit (): void {
+  async ngOnInit () {
     this.instanceService.getAbout()
-      .subscribe(
-        async about => {
+      .subscribe({
+        next: async about => {
           this.about = about
 
           this.aboutHtml = await this.instanceService.buildHtml(about)
@@ -45,8 +53,10 @@ export class InstanceAboutAccordionComponent implements OnInit {
           this.init.emit(this)
         },
 
-        err => this.notifier.error(err.message)
-      )
+        error: err => this.notifier.error(err.message)
+      })
+
+    this.pluginPanels = await this.hookService.wrapObject([], this.pluginScope, this.pluginHook)
   }
 
   getAdministratorsPanel () {