X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Froot-helpers%2Fplugins.ts;h=5344c046833282623d28026b8f0384b2e2b28483;hb=63a2058b38ed14dcbe376f26a342681d7494727f;hp=4bc2c8eb212fedb210b7737701f4fcc4088ba1ac;hpb=7294aab0c879ef96c0fde15c389a2c4c1463d3c7;p=github%2FChocobozzz%2FPeerTube.git 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)) }