diff --git a/web/src/app/home/plugins/plugin-installed/PluginInstalledComponent.tsx b/web/src/app/home/plugins/plugin-installed/PluginInstalledComponent.tsx index 3e5dd9b5..b108b312 100644 --- a/web/src/app/home/plugins/plugin-installed/PluginInstalledComponent.tsx +++ b/web/src/app/home/plugins/plugin-installed/PluginInstalledComponent.tsx @@ -43,15 +43,20 @@ const PluginInstalledComponent = forwardRef( setPluginList( value.plugins.map((plugin) => { return new PluginCardVO({ - author: plugin.author, - description: i18nObj(plugin.description), + author: plugin.manifest.manifest.metadata.author ?? '', + description: i18nObj( + plugin.manifest.manifest.metadata.description ?? { + en_US: '', + zh_Hans: '', + }, + ), enabled: plugin.enabled, - name: plugin.name, - version: plugin.version, + name: plugin.manifest.manifest.metadata.name, + version: plugin.manifest.manifest.metadata.version ?? '', status: plugin.status, - tools: plugin.tools, - event_handlers: plugin.event_handlers, - repository: plugin.repository, + tools: [], + event_handlers: {}, + repository: plugin.manifest.manifest.metadata.repository ?? '', priority: plugin.priority, }); }), diff --git a/web/src/app/home/plugins/plugin-installed/plugin-form/PluginForm.tsx b/web/src/app/home/plugins/plugin-installed/plugin-form/PluginForm.tsx index 7ffd6796..0e7b5ac5 100644 --- a/web/src/app/home/plugins/plugin-installed/plugin-form/PluginForm.tsx +++ b/web/src/app/home/plugins/plugin-installed/plugin-form/PluginForm.tsx @@ -1,5 +1,6 @@ import { useState, useEffect } from 'react'; -import { ApiRespPluginConfig, Plugin } from '@/app/infra/entities/api'; +import { ApiRespPluginConfig } from '@/app/infra/entities/api'; +import { Plugin } from '@/app/infra/entities/plugin'; import { httpClient } from '@/app/infra/http/HttpClient'; import DynamicFormComponent from '@/app/home/components/dynamic-form/DynamicFormComponent'; import { Button } from '@/components/ui/button'; @@ -183,13 +184,22 @@ export default function PluginForm({
-
{pluginInfo.name}
-
- {i18nObj(pluginInfo.description)} +
+ {i18nObj(pluginInfo.manifest.manifest.metadata.label)}
- {pluginInfo.config_schema.length > 0 && ( +
+ {i18nObj( + pluginInfo.manifest.manifest.metadata.description ?? { + en_US: '', + zh_Hans: '', + }, + )} +
+ {/* @ts-ignore */} + {pluginInfo.manifest.manifest.spec.config.length > 0 && ( } onSubmit={(values) => { let config = pluginConfig.config; @@ -203,7 +213,8 @@ export default function PluginForm({ }} /> )} - {pluginInfo.config_schema.length === 0 && ( + {/* @ts-ignore */} + {pluginInfo.manifest.manifest.spec.config.length === 0 && (
{t('plugins.pluginNoConfig')}
diff --git a/web/src/app/infra/entities/api/index.ts b/web/src/app/infra/entities/api/index.ts index d86a8be0..c49ab861 100644 --- a/web/src/app/infra/entities/api/index.ts +++ b/web/src/app/infra/entities/api/index.ts @@ -2,6 +2,7 @@ import { IDynamicFormItemSchema } from '@/app/infra/entities/form/dynamic'; import { PipelineConfigTab } from '@/app/infra/entities/pipeline'; import { I18nLabel } from '@/app/infra/entities/common'; import { Message } from '@/app/infra/entities/message'; +import { Plugin } from '@/app/infra/entities/plugin'; export interface ApiResponse { code: number; @@ -119,22 +120,22 @@ export interface ApiRespPlugin { plugin: Plugin; } -export interface Plugin { - author: string; - name: string; - description: I18nLabel; - label: I18nLabel; - version: string; - enabled: boolean; - priority: number; - status: string; - tools: object[]; - event_handlers: object; - main_file: string; - pkg_path: string; - repository: string; - config_schema: IDynamicFormItemSchema[]; -} +// export interface Plugin { +// author: string; +// name: string; +// description: I18nLabel; +// label: I18nLabel; +// version: string; +// enabled: boolean; +// priority: number; +// status: string; +// tools: object[]; +// event_handlers: object; +// main_file: string; +// pkg_path: string; +// repository: string; +// config_schema: IDynamicFormItemSchema[]; +// } export interface ApiRespPluginConfig { config: object; diff --git a/web/src/app/infra/entities/common.ts b/web/src/app/infra/entities/common.ts index 02cd99f8..9805d377 100644 --- a/web/src/app/infra/entities/common.ts +++ b/web/src/app/infra/entities/common.ts @@ -3,3 +3,18 @@ export interface I18nLabel { zh_Hans: string; ja_JP?: string; } + +export interface ComponentManifest { + apiVersion: string; + kind: string; + metadata: { + name: string; + label: I18nLabel; + description?: I18nLabel; + icon?: string; + repository?: string; + version?: string; + author?: string; + }; + spec: object; +} diff --git a/web/src/app/infra/entities/plugin/index.ts b/web/src/app/infra/entities/plugin/index.ts new file mode 100644 index 00000000..96469107 --- /dev/null +++ b/web/src/app/infra/entities/plugin/index.ts @@ -0,0 +1,17 @@ +import { ComponentManifest } from '@/app/infra/entities/common'; + +export interface Plugin { + status: 'intialized' | 'mounted' | 'unmounted'; + priority: number; + plugin_config: object; + manifest: { + manifest: ComponentManifest; + }; + enabled: boolean; + components: { + component_config: object; + manifest: { + manifest: ComponentManifest; + }; + }; +}