diff --git a/ui/src/components/workflow/designer/nodes/BizApplyNodeRegistry.tsx b/ui/src/components/workflow/designer/nodes/BizApplyNodeRegistry.tsx index 24d3737d1..4e71ba6fa 100644 --- a/ui/src/components/workflow/designer/nodes/BizApplyNodeRegistry.tsx +++ b/ui/src/components/workflow/designer/nodes/BizApplyNodeRegistry.tsx @@ -16,7 +16,6 @@ export const BizApplyNodeRegistry: NodeRegistry = { kind: NodeKindType.Business, meta: { - helpText: getI18n().t("workflow_node.apply.help"), labelText: getI18n().t("workflow_node.apply.label"), icon: IconContract, diff --git a/ui/src/components/workflow/designer/nodes/BizDeployNodeRegistry.tsx b/ui/src/components/workflow/designer/nodes/BizDeployNodeRegistry.tsx index de62ad2d9..1d24d86d9 100644 --- a/ui/src/components/workflow/designer/nodes/BizDeployNodeRegistry.tsx +++ b/ui/src/components/workflow/designer/nodes/BizDeployNodeRegistry.tsx @@ -17,7 +17,6 @@ export const BizDeployNodeRegistry: NodeRegistry = { kind: NodeKindType.Business, meta: { - helpText: getI18n().t("workflow_node.deploy.help"), labelText: getI18n().t("workflow_node.deploy.label"), icon: IconPackage, diff --git a/ui/src/components/workflow/designer/nodes/BizMonitorNodeRegistry.tsx b/ui/src/components/workflow/designer/nodes/BizMonitorNodeRegistry.tsx index d581d0977..72e183c2e 100644 --- a/ui/src/components/workflow/designer/nodes/BizMonitorNodeRegistry.tsx +++ b/ui/src/components/workflow/designer/nodes/BizMonitorNodeRegistry.tsx @@ -14,7 +14,6 @@ export const BizMonitorNodeRegistry: NodeRegistry = { kind: NodeKindType.Business, meta: { - helpText: getI18n().t("workflow_node.monitor.help"), labelText: getI18n().t("workflow_node.monitor.label"), icon: IconDeviceDesktopSearch, diff --git a/ui/src/components/workflow/designer/nodes/BizNotifyNodeRegistry.tsx b/ui/src/components/workflow/designer/nodes/BizNotifyNodeRegistry.tsx index a427db013..b6f4ebe77 100644 --- a/ui/src/components/workflow/designer/nodes/BizNotifyNodeRegistry.tsx +++ b/ui/src/components/workflow/designer/nodes/BizNotifyNodeRegistry.tsx @@ -16,7 +16,6 @@ export const BizNotifyNodeRegistry: NodeRegistry = { kind: NodeKindType.Business, meta: { - helpText: getI18n().t("workflow_node.notify.help"), labelText: getI18n().t("workflow_node.notify.label"), icon: IconSend, diff --git a/ui/src/components/workflow/designer/nodes/BizUploadNodeRegistry.tsx b/ui/src/components/workflow/designer/nodes/BizUploadNodeRegistry.tsx index d98476a61..c44213419 100644 --- a/ui/src/components/workflow/designer/nodes/BizUploadNodeRegistry.tsx +++ b/ui/src/components/workflow/designer/nodes/BizUploadNodeRegistry.tsx @@ -14,7 +14,6 @@ export const BizUploadNodeRegistry: NodeRegistry = { kind: NodeKindType.Business, meta: { - helpText: getI18n().t("workflow_node.upload.help"), labelText: getI18n().t("workflow_node.upload.label"), icon: IconCloudUpload, diff --git a/ui/src/components/workflow/designer/nodes/ConditionNode.tsx b/ui/src/components/workflow/designer/nodes/ConditionNode.tsx index ebb12e44b..0873cb924 100644 --- a/ui/src/components/workflow/designer/nodes/ConditionNode.tsx +++ b/ui/src/components/workflow/designer/nodes/ConditionNode.tsx @@ -18,7 +18,6 @@ export const ConditionNodeRegistry: NodeRegistry = { extend: FlowNodeSplitType.DYNAMIC_SPLIT, meta: { - helpText: getI18n().t("workflow_node.condition.help"), labelText: getI18n().t("workflow_node.condition.label"), icon: IconSitemap, diff --git a/ui/src/components/workflow/designer/nodes/DelayNode.tsx b/ui/src/components/workflow/designer/nodes/DelayNode.tsx index 8bcf22588..d933e082e 100644 --- a/ui/src/components/workflow/designer/nodes/DelayNode.tsx +++ b/ui/src/components/workflow/designer/nodes/DelayNode.tsx @@ -14,7 +14,6 @@ export const DelayNodeRegistry: NodeRegistry = { kind: NodeKindType.Basis, meta: { - helpText: getI18n().t("workflow_node.delay.help"), labelText: getI18n().t("workflow_node.delay.label"), icon: IconHourglassHigh, diff --git a/ui/src/components/workflow/designer/nodes/EndNode.tsx b/ui/src/components/workflow/designer/nodes/EndNode.tsx index eb8a4ce84..16a4caeb9 100644 --- a/ui/src/components/workflow/designer/nodes/EndNode.tsx +++ b/ui/src/components/workflow/designer/nodes/EndNode.tsx @@ -13,7 +13,6 @@ export const EndNodeRegistry: NodeRegistry = { kind: NodeKindType.Basis, meta: { - helpText: getI18n().t("workflow_node.end.help"), labelText: getI18n().t("workflow_node.end.label"), icon: IconLogout, diff --git a/ui/src/components/workflow/designer/nodes/StartNode.tsx b/ui/src/components/workflow/designer/nodes/StartNode.tsx index 9c1d5c965..46477cc63 100644 --- a/ui/src/components/workflow/designer/nodes/StartNode.tsx +++ b/ui/src/components/workflow/designer/nodes/StartNode.tsx @@ -14,7 +14,6 @@ export const StartNodeRegistry: NodeRegistry = { kind: NodeKindType.Basis, meta: { - helpText: getI18n().t("workflow_node.start.help"), labelText: getI18n().t("workflow_node.start.label"), icon: IconRocket, diff --git a/ui/src/components/workflow/designer/nodes/TryCatchNode.tsx b/ui/src/components/workflow/designer/nodes/TryCatchNode.tsx index d905f06e7..ca892e15a 100644 --- a/ui/src/components/workflow/designer/nodes/TryCatchNode.tsx +++ b/ui/src/components/workflow/designer/nodes/TryCatchNode.tsx @@ -13,7 +13,6 @@ export const TryCatchNodeRegistry: NodeRegistry = { kind: NodeKindType.Logic, meta: { - helpText: getI18n().t("workflow_node.try_catch.help"), labelText: getI18n().t("workflow_node.try_catch.label"), icon: IconArrowsSplit, diff --git a/ui/src/components/workflow/designer/nodes/_shared.tsx b/ui/src/components/workflow/designer/nodes/_shared.tsx index 6a389320c..9fb3b874d 100644 --- a/ui/src/components/workflow/designer/nodes/_shared.tsx +++ b/ui/src/components/workflow/designer/nodes/_shared.tsx @@ -10,7 +10,7 @@ import { useWatchFormValueIn, } from "@flowgram.ai/fixed-layout-editor"; import { IconCopy, IconDotsVertical, IconGripVertical, IconLabel, IconX } from "@tabler/icons-react"; -import { Button, type ButtonProps, Card, Dropdown, Input, type InputRef, Popover, Tooltip, theme } from "antd"; +import { Button, type ButtonProps, Card, Dropdown, Input, type InputRef, Popover, theme } from "antd"; import { mergeCls } from "@/utils/css"; @@ -337,13 +337,7 @@ export const BaseNode = ({ className, style, children, description }: BaseNodePr children ) : (
- {nodeRegistry.meta?.helpText == null ? ( - renderNodeIcon() - ) : ( - } mouseEnterDelay={1}> -
{renderNodeIcon()}
-
- )} + {renderNodeIcon()}
name="name">{({ field: { value } }) => <>{value || "\u00A0"}} diff --git a/ui/src/components/workflow/designer/nodes/typings.ts b/ui/src/components/workflow/designer/nodes/typings.ts index 902343bae..d5324912e 100644 --- a/ui/src/components/workflow/designer/nodes/typings.ts +++ b/ui/src/components/workflow/designer/nodes/typings.ts @@ -62,10 +62,6 @@ export interface NodeMeta extends FlowNodeMeta { * 自定义样式。 */ style?: React.CSSProperties; - /** - * 帮助文本。 - */ - helpText?: React.ReactNode; /** * 标题文本。 */ diff --git a/ui/src/i18n/locales/en/nls.workflow.nodes.json b/ui/src/i18n/locales/en/nls.workflow.nodes.json index 224c1dda2..77533b97b 100644 --- a/ui/src/i18n/locales/en/nls.workflow.nodes.json +++ b/ui/src/i18n/locales/en/nls.workflow.nodes.json @@ -4,7 +4,6 @@ "workflow_node.kind.logic": "Logic", "workflow_node.start.label": "Start", - "workflow_node.start.help": "Define the trigger for workflow initiation. A workflow can only have one start node.", "workflow_node.start.default_name": "Start", "workflow_node.start.form_anchor.parameters.tab": "Parameters", "workflow_node.start.form.trigger.label": "Trigger", @@ -17,8 +16,8 @@ "workflow_node.start.form.trigger_cron.tooltip": "Exactly 5 space separated segments, in standard crontab rules.", "workflow_node.start.form.trigger_cron.help": "Expected execution time for the last 5 times (the actual time zone is based on the server):", "workflow_node.start.form.trigger_cron.guide": "If you have multiple workflows, it is recommended to set them to run at different times of the day instead of always running at a specific time. And please don't always set it to midnight every day to avoid spikes in traffic.

Reference links:
1. Let’s Encrypt rate limits
2. Why should my Let’s Encrypt (ACME) client run at a random time?", + "workflow_node.apply.label": "Request certificate", - "workflow_node.apply.help": "Apply for SSL certificate issuance from the certificate authority.", "workflow_node.apply.default_name": "Application", "workflow_node.apply.form_anchor.parameters.tab": "Parameters", "workflow_node.apply.form_anchor.challenge.tab": "Challenge", @@ -128,7 +127,6 @@ "workflow_node.apply.form.skip_before_expiry_days.tooltip": "Be careful not to exceed the validity period limit of the issued certificate, otherwise the certificate may never be renewed.", "workflow_node.upload.label": "Upload certificate", - "workflow_node.upload.help": "Upload the user's existing SSL certificate.", "workflow_node.upload.default_name": "Uploading", "workflow_node.upload.form_anchor.parameters.tab": "Parameters", "workflow_node.upload.form.guide": "The file content will be read again every time this node executes.", @@ -153,7 +151,6 @@ "workflow_node.upload.form.private_key_url.placeholder": "Please enter the URL for downloading private key file", "workflow_node.monitor.label": "Monitor certificate", - "workflow_node.monitor.help": "Obtain the SSL certificate of the website through HTTPS protocol.", "workflow_node.monitor.default_name": "Monitoring", "workflow_node.monitor.form_anchor.parameters.tab": "Parameters", "workflow_node.monitor.form.guide": "Certimate will send a HEAD request to the target address to obtain the certificate. Please ensure that the address is accessible through HTTPS protocol.", @@ -168,7 +165,6 @@ "workflow_node.monitor.form.request_path.placeholder": "Please enter request path", "workflow_node.deploy.label": "Deploy certificate", - "workflow_node.deploy.help": "Invoke the APIs of the service provider to deploy the SSL certificate.", "workflow_node.deploy.default_name": "Deployment", "workflow_node.deploy.form_anchor.parameters.tab": "Parameters", "workflow_node.deploy.form_anchor.deployment.tab": "Deployment", @@ -1051,7 +1047,6 @@ "workflow_node.deploy.form.skip_on_last_succeeded.switch.off": "not skip", "workflow_node.notify.label": "Send notification", - "workflow_node.notify.help": "Invoke the APIs of the service provider to push message notifications.", "workflow_node.notify.default_name": "Notification", "workflow_node.notify.form_anchor.parameters.tab": "Parameters", "workflow_node.notify.form_anchor.channel.tab": "Channel", @@ -1099,7 +1094,6 @@ "workflow_node.notify.form.skip_on_all_prev_skipped.switch.off": "not skip", "workflow_node.delay.label": "Delay", - "workflow_node.delay.help": "Pause the execution, and wait for a certain amount of time.", "workflow_node.delay.default_name": "Delay", "workflow_node.delay.form_anchor.parameters.tab": "Parameters", "workflow_node.delay.form.wait.label": "Waiting time", @@ -1107,7 +1101,6 @@ "workflow_node.delay.form.wait.unit": "seconds", "workflow_node.condition.label": "Parallel/Conditional branch", - "workflow_node.condition.help": "When the specified conditions are met, enter the corresponding branch. The failure of a node in a certain branch does not affect the continuation of parallel branch execution.", "workflow_node.condition.default_name": "Parallel", "workflow_node.condition.default_name.template_certtest_on_expiring_soon": "If the certificate will be expiring soon ...", "workflow_node.condition.default_name.template_certtest_on_expired": "If the certificate has expired ...", @@ -1142,13 +1135,11 @@ "workflow_node.branch_block.form.expression.add_condition.button": "Add condition", "workflow_node.try_catch.label": "Execution result branch", - "workflow_node.try_catch.help": "Attempt to execute subsequent nodes, and when any node fails to execute, interrupt and enter the execution failure branch.", "workflow_node.try_catch.default_name": "Try to ...", "workflow_node.catch_block.label": "Execution failure branch", "workflow_node.catch_block.default_name": "On failed ...", "workflow_node.end.label": "End", - "workflow_node.end.help": "Suspend the workflow and exit. Usually the last node of a workflow.", "workflow_node.end.default_name": "End" } diff --git a/ui/src/i18n/locales/zh/nls.workflow.nodes.json b/ui/src/i18n/locales/zh/nls.workflow.nodes.json index d392dde82..bfa8de54a 100644 --- a/ui/src/i18n/locales/zh/nls.workflow.nodes.json +++ b/ui/src/i18n/locales/zh/nls.workflow.nodes.json @@ -4,7 +4,6 @@ "workflow_node.kind.logic": "逻辑", "workflow_node.start.label": "开始", - "workflow_node.start.help": "定义工作流启动的触发条件。一个工作流只能有一个开始节点。", "workflow_node.start.default_name": "开始", "workflow_node.start.form_anchor.parameters.tab": "参数设置", "workflow_node.start.form.trigger.label": "触发方式", @@ -19,7 +18,6 @@ "workflow_node.start.form.trigger_cron.guide": "如果你有多个工作流,建议将它们设置为在一天中的多个时间段运行,而非总是在相同的特定时间。也不要总是设置为每日零时,以免遭遇证书颁发机构的流量高峰。

参考链接:
1. Let’s Encrypt 速率限制
2. 为什么我的 Let’s Encrypt (ACME) 客户端启动时间应当随机?", "workflow_node.apply.label": "申请签发证书", - "workflow_node.apply.help": "从证书颁发机构申请签发 SSL 证书。", "workflow_node.apply.default_name": "申请", "workflow_node.apply.form_anchor.parameters.tab": "参数设置", "workflow_node.apply.form_anchor.challenge.tab": "验证质询", @@ -128,7 +126,6 @@ "workflow_node.apply.form.skip_before_expiry_days.tooltip": "注意不要超过颁发的证书最大有效期,否则证书可能永远不会续期。", "workflow_node.upload.label": "上传自有证书", - "workflow_node.upload.help": "上传用户已有的本地 SSL 证书。", "workflow_node.upload.default_name": "上传", "workflow_node.upload.form_anchor.parameters.tab": "参数设置", "workflow_node.upload.form.guide": "每次执行此节点时,都将重新读取文件内容。", @@ -153,7 +150,6 @@ "workflow_node.upload.form.private_key_url.placeholder": "请输入私钥文件下载 URL", "workflow_node.monitor.label": "监控网站证书", - "workflow_node.monitor.help": "通过 HTTPS 协议获取指定网站的 SSL 证书。", "workflow_node.monitor.default_name": "监控", "workflow_node.monitor.form_anchor.parameters.tab": "参数设置", "workflow_node.monitor.form.guide": "Certimate 将向目标地址发送一个 HEAD 请求来获取相应的域名证书,请确保该地址可通过 HTTPS 协议访问。", @@ -168,7 +164,6 @@ "workflow_node.monitor.form.request_path.placeholder": "请输入请求路径", "workflow_node.deploy.label": "部署证书到 ...", - "workflow_node.deploy.help": "调用服务提供商相关 API,将 SSL 证书部署到指定的目标。", "workflow_node.deploy.default_name": "部署", "workflow_node.deploy.form_anchor.parameters.tab": "参数设置", "workflow_node.deploy.form_anchor.deployment.tab": "部署设置", @@ -1050,7 +1045,6 @@ "workflow_node.deploy.form.skip_on_last_succeeded.switch.off": "不跳过", "workflow_node.notify.label": "推送通知", - "workflow_node.notify.help": "调用服务提供商相关 API,将消息通知推送到指定的目标。", "workflow_node.notify.default_name": "通知", "workflow_node.notify.form_anchor.parameters.tab": "参数设置", "workflow_node.notify.form_anchor.channel.tab": "渠道设置", @@ -1097,7 +1091,6 @@ "workflow_node.notify.form.skip_on_all_prev_skipped.switch.off": "不跳过", "workflow_node.delay.label": "延迟等待", - "workflow_node.delay.help": "暂停执行工作流并等待一段时间。这在某些需要降低调用执行频率的场景很有用。", "workflow_node.delay.default_name": "延迟", "workflow_node.delay.form_anchor.parameters.tab": "参数设置", "workflow_node.delay.form.wait.label": "等待时间", @@ -1105,7 +1098,6 @@ "workflow_node.delay.form.wait.unit": "秒", "workflow_node.condition.label": "并行/条件分支", - "workflow_node.condition.help": "当满足指定的条件时,进入相应分支。某一分支中的节点执行失败不影响平行分支继续执行。", "workflow_node.condition.default_name": "并行", "workflow_node.condition.default_name.template_certtest_on_expiring_soon": "若网站证书即将过期…", "workflow_node.condition.default_name.template_certtest_on_expired": "若网站证书已过期…", @@ -1140,13 +1132,11 @@ "workflow_node.branch_block.form.expression.add_condition.button": "添加条件", "workflow_node.try_catch.label": "执行结果分支", - "workflow_node.try_catch.help": "尝试执行后续节点,当任一节点执行失败后,中断并进入执行失败分支。", "workflow_node.try_catch.default_name": "尝试执行…", "workflow_node.catch_block.label": "执行失败分支", "workflow_node.catch_block.default_name": "若执行失败…", "workflow_node.end.label": "结束", - "workflow_node.end.help": "中止工作流运行并退出。通常是一个工作流的最后一个节点。", "workflow_node.end.default_name": "结束" }