diff --git a/COPY_BUTTON_RELOCATION_UPDATE.md b/COPY_BUTTON_RELOCATION_UPDATE.md new file mode 100644 index 000000000000..4033bc5dce25 --- /dev/null +++ b/COPY_BUTTON_RELOCATION_UPDATE.md @@ -0,0 +1,285 @@ +# 复制链接按钮位置调整 - 更新说明 + +## 变更概述 + +根据用户反馈,将"复制链接"功能从 **Manage 菜单(⋮)** 移至 **标题旁边的复制按钮** 位置,使其更显眼、更易访问。 + +--- + +## 变更前后对比 + +### 之前的位置 ❌ +``` +标题 [复制按钮] [关注] [...Manage] + ↓ 点击展开 + ┌────────────────┐ + │ 复制名称链接 │ + │ 复制永久链接 │ + ├────────────────┤ + │ Export │ + │ Rename │ + └────────────────┘ +``` + +### 现在的位置 ✅ +``` +标题 [复制按钮▼] [关注] [...Manage] + ↓ 点击展开 + ┌────────────────┐ + │ 🔗 Copy Name-based Link │ + │ 📋 Copy Permanent Link │ + └────────────────┘ +``` + +**优势:** +- ✅ 更显眼 - 直接在标题旁边 +- ✅ 更直观 - 符合用户预期(复制按钮就在标题旁边) +- ✅ 更简洁 - Manage 菜单不再臃肿 + +--- + +## 修改的文件 + +### 1. EntityHeaderTitle.component.tsx +**位置:** `openmetadata-ui/src/main/resources/ui/src/components/Entity/EntityHeaderTitle/` + +**主要变更:** +- 新增 `entityId` 和 `entityFqn` props +- 将单一复制按钮改为下拉菜单 +- 添加两个选项:复制名称链接、复制永久链接 +- 如果没有 `entityId` 和 `entityFqn`,则显示原始的单一复制按钮(保持向后兼容) + +**关键代码:** +```typescript +// 新增 props +interface EntityHeaderTitleProps { + // ... + entityId?: string; + entityFqn?: string; +} + +// 复制逻辑 +const handleCopyFqnLink = async () => { + const fqnUrl = `${window.location.origin}/glossary/${encodeURIComponent(entityFqn)}`; + await navigator.clipboard.writeText(fqnUrl); + showSuccessToast(t('message.fqn-link-copied')); +}; + +const handleCopyPermanentLink = async () => { + const permanentUrl = `${window.location.origin}/glossary/${entityId}`; + await navigator.clipboard.writeText(permanentUrl); + showSuccessToast(t('message.permanent-link-copied')); +}; + +// 渲染下拉菜单 +{entityId && entityFqn ? ( + +