From 7294aab0c879ef96c0fde15c389a2c4c1463d3c7 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Thu, 20 Aug 2020 16:18:16 +0200 Subject: Add ability to set custom field to video form --- shared/models/plugins/client-hook.model.ts | 3 +++ shared/models/plugins/index.ts | 1 + shared/models/plugins/plugin-client-scope.type.ts | 2 +- shared/models/plugins/register-client-form-field.model.ts | 12 ++++++++++++ shared/models/plugins/register-server-setting.model.ts | 9 ++------- shared/models/videos/video-update.model.ts | 2 ++ shared/models/videos/video.model.ts | 2 ++ 7 files changed, 23 insertions(+), 8 deletions(-) create mode 100644 shared/models/plugins/register-client-form-field.model.ts (limited to 'shared/models') diff --git a/shared/models/plugins/client-hook.model.ts b/shared/models/plugins/client-hook.model.ts index 193a3f646..7b7144676 100644 --- a/shared/models/plugins/client-hook.model.ts +++ b/shared/models/plugins/client-hook.model.ts @@ -70,6 +70,9 @@ export const clientActionHookObject = { // Fired when a user click on 'View x replies' and they're loaded 'action:video-watch.video-thread-replies.loaded': true, + // Fired when the video edit page (upload, URL/torrent import, update) is being initialized + 'action:video-edit.init': true, + // Fired when the login page is being initialized 'action:login.init': true, diff --git a/shared/models/plugins/index.ts b/shared/models/plugins/index.ts index 209fca791..83ed6f583 100644 --- a/shared/models/plugins/index.ts +++ b/shared/models/plugins/index.ts @@ -19,6 +19,7 @@ export * from './plugin-video-privacy-manager.model' export * from './plugin.type' export * from './public-server.setting' export * from './register-client-hook.model' +export * from './register-client-form-field.model' export * from './register-server-hook.model' export * from './register-server-setting.model' export * from './server-hook.model' diff --git a/shared/models/plugins/plugin-client-scope.type.ts b/shared/models/plugins/plugin-client-scope.type.ts index a3c669fe7..e188ce100 100644 --- a/shared/models/plugins/plugin-client-scope.type.ts +++ b/shared/models/plugins/plugin-client-scope.type.ts @@ -1 +1 @@ -export type PluginClientScope = 'common' | 'video-watch' | 'search' | 'signup' | 'login' | 'embed' +export type PluginClientScope = 'common' | 'video-watch' | 'search' | 'signup' | 'login' | 'embed' | 'video-edit' diff --git a/shared/models/plugins/register-client-form-field.model.ts b/shared/models/plugins/register-client-form-field.model.ts new file mode 100644 index 000000000..df24339c6 --- /dev/null +++ b/shared/models/plugins/register-client-form-field.model.ts @@ -0,0 +1,12 @@ +export interface RegisterClientFormFieldOptions { + name: string + label: string + type: 'input' | 'input-checkbox' | 'input-textarea' | 'markdown-text' | 'markdown-enhanced' + + // Default setting value + default?: string | boolean +} + +export interface RegisterClientVideoFieldOptions { + type: 'import-url' | 'import-torrent' | 'update' | 'upload' +} diff --git a/shared/models/plugins/register-server-setting.model.ts b/shared/models/plugins/register-server-setting.model.ts index 920c3480f..6872dc53e 100644 --- a/shared/models/plugins/register-server-setting.model.ts +++ b/shared/models/plugins/register-server-setting.model.ts @@ -1,15 +1,10 @@ -export interface RegisterServerSettingOptions { - name: string - label: string - type: 'input' | 'input-checkbox' | 'input-textarea' | 'markdown-text' | 'markdown-enhanced' +import { RegisterClientFormFieldOptions } from './register-client-form-field.model' +export interface RegisterServerSettingOptions extends RegisterClientFormFieldOptions { // If the setting is not private, anyone can view its value (client code included) // If the setting is private, only server-side hooks can access it // Mainly used by the PeerTube client to get admin config private: boolean - - // Default setting value - default?: string | boolean } export interface RegisteredServerSettings { diff --git a/shared/models/videos/video-update.model.ts b/shared/models/videos/video-update.model.ts index 4ef904156..86653b959 100644 --- a/shared/models/videos/video-update.model.ts +++ b/shared/models/videos/video-update.model.ts @@ -19,4 +19,6 @@ export interface VideoUpdate { previewfile?: Blob scheduleUpdate?: VideoScheduleUpdate originallyPublishedAt?: Date | string + + pluginData?: any } diff --git a/shared/models/videos/video.model.ts b/shared/models/videos/video.model.ts index 557e66e09..158ee8f05 100644 --- a/shared/models/videos/video.model.ts +++ b/shared/models/videos/video.model.ts @@ -53,6 +53,8 @@ export interface Video { userHistory?: { currentTime: number } + + pluginData?: any } export interface VideoDetails extends Video { -- cgit v1.2.3