From 071f3e519cbd3184b59ee728fe96c5c29b7792b9 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Thu, 20 Jan 2022 09:35:06 +0100 Subject: Plugins can add custom instance infobox --- .../instance-about-accordion.component.html | 6 ++++++ .../instance-about-accordion.component.ts | 18 ++++++++++++++---- 2 files changed, 20 insertions(+), 4 deletions(-) (limited to 'client/src/app/shared/shared-instance') diff --git a/client/src/app/shared/shared-instance/instance-about-accordion.component.html b/client/src/app/shared/shared-instance/instance-about-accordion.component.html index e91e44656..73e511d1c 100644 --- a/client/src/app/shared/shared-instance/instance-about-accordion.component.html +++ b/client/src/app/shared/shared-instance/instance-about-accordion.component.html @@ -49,5 +49,11 @@
+ + + +
+
+
diff --git a/client/src/app/shared/shared-instance/instance-about-accordion.component.ts b/client/src/app/shared/shared-instance/instance-about-accordion.component.ts index 1eb7b49b6..b9f57e2a4 100644 --- a/client/src/app/shared/shared-instance/instance-about-accordion.component.ts +++ b/client/src/app/shared/shared-instance/instance-about-accordion.component.ts @@ -1,8 +1,9 @@ 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', @@ -11,8 +12,12 @@ import { About } from '@shared/models/server' }) export class InstanceAboutAccordionComponent implements OnInit { @ViewChild('accordion', { static: true }) accordion: NgbAccordion + @Output() init: EventEmitter = new EventEmitter() + @Input() pluginScope: PluginClientScope + @Input() pluginHook: ClientFilterHookName + @Input() panels = { features: true, administrators: true, @@ -29,12 +34,15 @@ 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({ next: async about => { @@ -47,6 +55,8 @@ export class InstanceAboutAccordionComponent implements OnInit { error: err => this.notifier.error(err.message) }) + + this.pluginPanels = await this.hookService.wrapObject([], this.pluginScope, this.pluginHook) } getAdministratorsPanel () { -- cgit v1.2.3