From 3c47fa3bc0e3f2362bb17976057287a7e9aba46b Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Fri, 9 Apr 2021 13:50:31 +0200 Subject: Add ability to hide plugin settings --- client/src/root-helpers/plugins.ts | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'client/src/root-helpers') diff --git a/client/src/root-helpers/plugins.ts b/client/src/root-helpers/plugins.ts index 4bc2c8eb2..5344c0468 100644 --- a/client/src/root-helpers/plugins.ts +++ b/client/src/root-helpers/plugins.ts @@ -7,7 +7,8 @@ import { ClientScript, PluginType, RegisterClientHookOptions, - ServerConfigPlugin + ServerConfigPlugin, + RegisterClientSettingsScript } from '../../../shared/models' import { ClientScript as ClientScriptModule } from '../types/client-script.model' import { importModule } from './utils' @@ -54,8 +55,9 @@ function loadPlugin (options: { pluginInfo: PluginInfo peertubeHelpersFactory: (pluginInfo: PluginInfo) => RegisterClientHelpers formFields?: FormFields + onSettingsScripts?: (options: RegisterClientSettingsScript) => void }) { - const { hooks, pluginInfo, peertubeHelpersFactory, formFields } = options + const { hooks, pluginInfo, peertubeHelpersFactory, formFields, onSettingsScripts } = options const { plugin, clientScript } = pluginInfo const registerHook = (options: RegisterClientHookOptions) => { @@ -86,12 +88,20 @@ function loadPlugin (options: { }) } + const registerSettingsScript = (options: RegisterClientSettingsScript) => { + if (!onSettingsScripts) { + throw new Error('Registering settings script is not supported') + } + + return onSettingsScripts(options) + } + const peertubeHelpers = peertubeHelpersFactory(pluginInfo) console.log('Loading script %s of plugin %s.', clientScript.script, plugin.name) return importModule(clientScript.script) - .then((script: ClientScriptModule) => script.register({ registerHook, registerVideoField, peertubeHelpers })) + .then((script: ClientScriptModule) => script.register({ registerHook, registerVideoField, registerSettingsScript, peertubeHelpers })) .then(() => sortHooksByPriority(hooks)) .catch(err => console.error('Cannot import or register plugin %s.', pluginInfo.plugin.name, err)) } -- cgit v1.2.3