PluginTranslation,
PluginType,
PublicServerSetting,
+ RegisterClientSettingsScript,
ServerConfigPlugin
} from '@shared/models'
import { environment } from '../../../environments/environment'
pluginsLoaded: { [ scope in PluginClientScope ]: ReplaySubject<boolean> } = {
common: new ReplaySubject<boolean>(1),
+ 'admin-plugin': new ReplaySubject<boolean>(1),
search: new ReplaySubject<boolean>(1),
'video-watch': new ReplaySubject<boolean>(1),
signup: new ReplaySubject<boolean>(1),
private formFields: FormFields = {
video: []
}
+ private settingsScripts: { [ npmName: string ]: RegisterClientSettingsScript } = {}
constructor (
private authService: AuthService,
return this.formFields.video.filter(f => f.videoFormOptions.type === type)
}
+ getRegisteredSettingsScript (npmName: string) {
+ return this.settingsScripts[npmName]
+ }
+
translateBy (npmName: string, toTranslate: string) {
const helpers = this.helpers[npmName]
if (!helpers) {
return loadPlugin({
hooks: this.hooks,
formFields: this.formFields,
+ onSettingsScripts: options => this.settingsScripts[npmName] = options,
pluginInfo,
peertubeHelpersFactory: () => helpers
})
return this.authService.isLoggedIn()
},
+ getAuthHeader: () => {
+ if (!this.authService.isLoggedIn()) return undefined
+
+ const value = this.authService.getRequestHeaderValue()
+ return { 'Authorization': value }
+ },
+
notifier: {
info: (text: string, title?: string, timeout?: number) => this.notifier.info(text, title, timeout),
error: (text: string, title?: string, timeout?: number) => this.notifier.error(text, title, timeout),