1
0
Fork 0

Change plugin models names

This commit is contained in:
Chocobozzz 2019-07-24 11:17:42 +02:00
parent 5f189c9c85
commit 9ae88819c2
No known key found for this signature in database
GPG key ID: 583A612D890159BE
14 changed files with 50 additions and 41 deletions

View file

@ -6,8 +6,8 @@ import { Notifier } from '@app/core'
import { ActivatedRoute } from '@angular/router' import { ActivatedRoute } from '@angular/router'
import { Subscription } from 'rxjs' import { Subscription } from 'rxjs'
import { map, switchMap } from 'rxjs/operators' import { map, switchMap } from 'rxjs/operators'
import { RegisterSettingOptions } from '@shared/models/plugins/register-setting.model'
import { BuildFormArgument, FormReactive, FormValidatorService } from '@app/shared' import { BuildFormArgument, FormReactive, FormValidatorService } from '@app/shared'
import { RegisterServerSettingOptions } from '@shared/models/plugins/register-server-setting.model'
@Component({ @Component({
selector: 'my-plugin-show-installed', selector: 'my-plugin-show-installed',
@ -16,7 +16,7 @@ import { BuildFormArgument, FormReactive, FormValidatorService } from '@app/shar
}) })
export class PluginShowInstalledComponent extends FormReactive implements OnInit, OnDestroy { export class PluginShowInstalledComponent extends FormReactive implements OnInit, OnDestroy {
plugin: PeerTubePlugin plugin: PeerTubePlugin
registeredSettings: RegisterSettingOptions[] = [] registeredSettings: RegisterServerSettingOptions[] = []
pluginTypeLabel: string pluginTypeLabel: string
private sub: Subscription private sub: Subscription

View file

@ -10,8 +10,8 @@ import { ResultList } from '@shared/models'
import { PeerTubePlugin } from '@shared/models/plugins/peertube-plugin.model' import { PeerTubePlugin } from '@shared/models/plugins/peertube-plugin.model'
import { ManagePlugin } from '@shared/models/plugins/manage-plugin.model' import { ManagePlugin } from '@shared/models/plugins/manage-plugin.model'
import { InstallOrUpdatePlugin } from '@shared/models/plugins/install-plugin.model' import { InstallOrUpdatePlugin } from '@shared/models/plugins/install-plugin.model'
import { RegisterSettingOptions } from '@shared/models/plugins/register-setting.model'
import { PeerTubePluginIndex } from '@shared/models/plugins/peertube-plugin-index.model' import { PeerTubePluginIndex } from '@shared/models/plugins/peertube-plugin-index.model'
import { RegisterServerSettingOptions } from '@shared/models/plugins/register-server-setting.model'
@Injectable() @Injectable()
export class PluginApiService { export class PluginApiService {
@ -88,7 +88,7 @@ export class PluginApiService {
getPluginRegisteredSettings (pluginName: string, pluginType: PluginType) { getPluginRegisteredSettings (pluginName: string, pluginType: PluginType) {
const path = PluginApiService.BASE_APPLICATION_URL + '/' + this.nameToNpmName(pluginName, pluginType) + '/registered-settings' const path = PluginApiService.BASE_APPLICATION_URL + '/' + this.nameToNpmName(pluginName, pluginType) + '/registered-settings'
return this.authHttp.get<{ settings: RegisterSettingOptions[] }>(path) return this.authHttp.get<{ settings: RegisterServerSettingOptions[] }>(path)
.pipe(catchError(res => this.restExtractor.handleError(res))) .pipe(catchError(res => this.restExtractor.handleError(res)))
} }

View file

@ -4,14 +4,14 @@ import { ServerConfigPlugin } from '@shared/models'
import { ServerService } from '@app/core/server/server.service' import { ServerService } from '@app/core/server/server.service'
import { ClientScript } from '@shared/models/plugins/plugin-package-json.model' import { ClientScript } from '@shared/models/plugins/plugin-package-json.model'
import { environment } from '../../../environments/environment' import { environment } from '../../../environments/environment'
import { RegisterHookOptions } from '@shared/models/plugins/register-hook.model'
import { ReplaySubject } from 'rxjs' import { ReplaySubject } from 'rxjs'
import { first, shareReplay } from 'rxjs/operators' import { first, shareReplay } from 'rxjs/operators'
import { getHookType, internalRunHook } from '@shared/core-utils/plugins/hooks' import { getHookType, internalRunHook } from '@shared/core-utils/plugins/hooks'
import { ClientHook, ClientHookName, clientHookObject } from '@shared/models/plugins/client-hook.model' import { ClientHook, ClientHookName, clientHookObject } from '@shared/models/plugins/client-hook.model'
import { PluginClientScope } from '@shared/models/plugins/plugin-client-scope.type' import { PluginClientScope } from '@shared/models/plugins/plugin-client-scope.type'
import { RegisterClientHookOptions } from '@shared/models/plugins/register-client-hook.model'
interface HookStructValue extends RegisterHookOptions { interface HookStructValue extends RegisterClientHookOptions {
plugin: ServerConfigPlugin plugin: ServerConfigPlugin
clientScript: ClientScript clientScript: ClientScript
} }
@ -164,7 +164,7 @@ export class PluginService implements ClientHook {
private loadPlugin (pluginInfo: PluginInfo) { private loadPlugin (pluginInfo: PluginInfo) {
const { plugin, clientScript } = pluginInfo const { plugin, clientScript } = pluginInfo
const registerHook = (options: RegisterHookOptions) => { const registerHook = (options: RegisterClientHookOptions) => {
if (clientHookObject[options.target] !== true) { if (clientHookObject[options.target] !== true) {
console.error('Unknown hook %s of plugin %s. Skipping.', options.target, plugin.name) console.error('Unknown hook %s of plugin %s. Skipping.', options.target, plugin.name)
return return

View file

@ -25,7 +25,7 @@ import { ManagePlugin } from '../../../shared/models/plugins/manage-plugin.model
import { logger } from '../../helpers/logger' import { logger } from '../../helpers/logger'
import { listAvailablePluginsFromIndex } from '../../lib/plugins/plugin-index' import { listAvailablePluginsFromIndex } from '../../lib/plugins/plugin-index'
import { PeertubePluginIndexList } from '../../../shared/models/plugins/peertube-plugin-index-list.model' import { PeertubePluginIndexList } from '../../../shared/models/plugins/peertube-plugin-index-list.model'
import { RegisteredSettings } from '../../../shared/models/plugins/register-setting.model' import { RegisteredServerSettings } from '../../../shared/models/plugins/register-server-setting.model'
const pluginRouter = express.Router() const pluginRouter = express.Router()
@ -164,7 +164,7 @@ async function uninstallPlugin (req: express.Request, res: express.Response) {
function getPluginRegisteredSettings (req: express.Request, res: express.Response) { function getPluginRegisteredSettings (req: express.Request, res: express.Response) {
const settings = PluginManager.Instance.getRegisteredSettings(req.params.npmName) const settings = PluginManager.Instance.getRegisteredSettings(req.params.npmName)
const json: RegisteredSettings = { settings } const json: RegisteredServerSettings = { settings }
return res.json(json) return res.json(json)
} }

View file

@ -9,15 +9,15 @@ import { PLUGIN_GLOBAL_CSS_PATH } from '../../initializers/constants'
import { PluginType } from '../../../shared/models/plugins/plugin.type' import { PluginType } from '../../../shared/models/plugins/plugin.type'
import { installNpmPlugin, installNpmPluginFromDisk, removeNpmPlugin } from './yarn' import { installNpmPlugin, installNpmPluginFromDisk, removeNpmPlugin } from './yarn'
import { outputFile, readJSON } from 'fs-extra' import { outputFile, readJSON } from 'fs-extra'
import { RegisterSettingOptions } from '../../../shared/models/plugins/register-setting.model'
import { RegisterHookOptions } from '../../../shared/models/plugins/register-hook.model'
import { PluginSettingsManager } from '../../../shared/models/plugins/plugin-settings-manager.model' import { PluginSettingsManager } from '../../../shared/models/plugins/plugin-settings-manager.model'
import { PluginStorageManager } from '../../../shared/models/plugins/plugin-storage-manager.model' import { PluginStorageManager } from '../../../shared/models/plugins/plugin-storage-manager.model'
import { ServerHook, ServerHookName, serverHookObject } from '../../../shared/models/plugins/server-hook.model' import { ServerHook, ServerHookName, serverHookObject } from '../../../shared/models/plugins/server-hook.model'
import { getHookType, internalRunHook } from '../../../shared/core-utils/plugins/hooks' import { getHookType, internalRunHook } from '../../../shared/core-utils/plugins/hooks'
import { RegisterOptions } from '../../typings/plugins/register-options.model' import { RegisterServerOptions } from '../../typings/plugins/register-server-option.model'
import { PluginLibrary } from '../../typings/plugins' import { PluginLibrary } from '../../typings/plugins'
import { ClientHtml } from '../client-html' import { ClientHtml } from '../client-html'
import { RegisterServerHookOptions } from '../../../shared/models/plugins/register-server-hook.model'
import { RegisterServerSettingOptions } from '../../../shared/models/plugins/register-server-setting.model'
export interface RegisteredPlugin { export interface RegisteredPlugin {
npmName: string npmName: string
@ -51,7 +51,7 @@ export class PluginManager implements ServerHook {
private static instance: PluginManager private static instance: PluginManager
private registeredPlugins: { [ name: string ]: RegisteredPlugin } = {} private registeredPlugins: { [ name: string ]: RegisteredPlugin } = {}
private settings: { [ name: string ]: RegisterSettingOptions[] } = {} private settings: { [ name: string ]: RegisterServerSettingOptions[] } = {}
private hooks: { [ name: string ]: HookInformationValue[] } = {} private hooks: { [ name: string ]: HookInformationValue[] } = {}
private constructor () { private constructor () {
@ -391,8 +391,8 @@ export class PluginManager implements ServerHook {
// ###################### Generate register helpers ###################### // ###################### Generate register helpers ######################
private getRegisterHelpers (npmName: string, plugin: PluginModel): RegisterOptions { private getRegisterHelpers (npmName: string, plugin: PluginModel): RegisterServerOptions {
const registerHook = (options: RegisterHookOptions) => { const registerHook = (options: RegisterServerHookOptions) => {
if (serverHookObject[options.target] !== true) { if (serverHookObject[options.target] !== true) {
logger.warn('Unknown hook %s of plugin %s. Skipping.', options.target, npmName) logger.warn('Unknown hook %s of plugin %s. Skipping.', options.target, npmName)
return return
@ -408,7 +408,7 @@ export class PluginManager implements ServerHook {
}) })
} }
const registerSetting = (options: RegisterSettingOptions) => { const registerSetting = (options: RegisterServerSettingOptions) => {
if (!this.settings[npmName]) this.settings[npmName] = [] if (!this.settings[npmName]) this.settings[npmName] = []
this.settings[npmName].push(options) this.settings[npmName].push(options)

View file

@ -23,10 +23,10 @@ import {
import { PluginType } from '../../../../shared/models/plugins/plugin.type' import { PluginType } from '../../../../shared/models/plugins/plugin.type'
import { PeerTubePluginIndex } from '../../../../shared/models/plugins/peertube-plugin-index.model' import { PeerTubePluginIndex } from '../../../../shared/models/plugins/peertube-plugin-index.model'
import { ServerConfig } from '../../../../shared/models/server' import { ServerConfig } from '../../../../shared/models/server'
import { RegisteredSettings } from '../../../../shared/models/plugins/register-setting.model'
import { PeerTubePlugin } from '../../../../shared/models/plugins/peertube-plugin.model' import { PeerTubePlugin } from '../../../../shared/models/plugins/peertube-plugin.model'
import { User } from '../../../../shared/models/users' import { User } from '../../../../shared/models/users'
import { PluginPackageJson } from '../../../../shared/models/plugins/plugin-package-json.model' import { PluginPackageJson } from '../../../../shared/models/plugins/plugin-package-json.model'
import { RegisteredServerSettings } from '../../../../shared/models/plugins/register-server-setting.model'
const expect = chai.expect const expect = chai.expect
@ -217,7 +217,7 @@ describe('Test plugins', function () {
npmName: 'peertube-plugin-hello-world' npmName: 'peertube-plugin-hello-world'
}) })
const settings = (res.body as RegisteredSettings).settings const settings = (res.body as RegisteredServerSettings).settings
expect(settings).to.have.length.at.least(1) expect(settings).to.have.length.at.least(1)

View file

@ -1,2 +1,2 @@
export * from './register-options.model' export * from './register-server-option.model'
export * from './plugin-library.model' export * from './plugin-library.model'

View file

@ -1,7 +1,7 @@
import { RegisterOptions } from './register-options.model' import { RegisterServerOptions } from './register-server-option.model'
export interface PluginLibrary { export interface PluginLibrary {
register: (options: RegisterOptions) => Promise<any> register: (options: RegisterServerOptions) => Promise<any>
unregister: () => Promise<any> unregister: () => Promise<any>
} }

View file

@ -1,13 +1,13 @@
import { logger } from '../../helpers/logger' import { logger } from '../../helpers/logger'
import { RegisterHookOptions } from '../../../shared/models/plugins/register-hook.model'
import { RegisterSettingOptions } from '../../../shared/models/plugins/register-setting.model'
import { PluginSettingsManager } from '../../../shared/models/plugins/plugin-settings-manager.model' import { PluginSettingsManager } from '../../../shared/models/plugins/plugin-settings-manager.model'
import { PluginStorageManager } from '../../../shared/models/plugins/plugin-storage-manager.model' import { PluginStorageManager } from '../../../shared/models/plugins/plugin-storage-manager.model'
import { RegisterServerHookOptions } from '../../../shared/models/plugins/register-server-hook.model'
import { RegisterServerSettingOptions } from '../../../shared/models/plugins/register-server-setting.model'
export type RegisterOptions = { export type RegisterServerOptions = {
registerHook: (options: RegisterHookOptions) => void registerHook: (options: RegisterServerHookOptions) => void
registerSetting: (options: RegisterSettingOptions) => void registerSetting: (options: RegisterServerSettingOptions) => void
settingsManager: PluginSettingsManager settingsManager: PluginSettingsManager

View file

@ -0,0 +1,7 @@
import { ClientHookName } from './client-hook.model'
export interface RegisterClientHookOptions {
target: ClientHookName
handler: Function
priority?: number
}

View file

@ -1,5 +0,0 @@
export interface RegisterHookOptions {
target: string
handler: Function
priority?: number
}

View file

@ -0,0 +1,7 @@
import { ServerHookName } from './server-hook.model'
export interface RegisterServerHookOptions {
target: ServerHookName
handler: Function
priority?: number
}

View file

@ -0,0 +1,10 @@
export interface RegisterServerSettingOptions {
name: string
label: string
type: 'input'
default?: string
}
export interface RegisteredServerSettings {
settings: RegisterServerSettingOptions[]
}

View file

@ -1,10 +0,0 @@
export interface RegisterSettingOptions {
name: string
label: string
type: 'input'
default?: string
}
export interface RegisteredSettings {
settings: RegisterSettingOptions[]
}