- 编辑弹窗移除密文区域(重命名、类型修改、解绑) - 查看密文弹窗增加:重命名(带 debounce 校验)、类型选择、解绑、保存 - 列表行密文 chips 保留只读展示,移除解绑按钮 - 简化编辑弹窗保存逻辑,不再处理密文变更
55 lines
2.0 KiB
Markdown
55 lines
2.0 KiB
Markdown
# 将编辑弹窗中的密文管理功能移到查看密文弹窗
|
||
|
||
## 当前状态
|
||
|
||
- **编辑弹窗**:密文重命名(input)、类型修改(select)、解绑(×按钮)、name 可用性校验
|
||
- **查看密文弹窗**:解密后显示值、复制、显示/隐藏密码
|
||
- **列表行**:密文 chips(name+type)+ 解绑按钮
|
||
|
||
## 变更内容
|
||
|
||
### 1. 编辑弹窗 — 移除密文区域
|
||
|
||
- 移除 HTML 中 `#edit-secrets-list` 所在的 `.modal-secrets` div(第559行)
|
||
- 移除 JS 中 `renderEditSecrets`、`bindSecretValidation` 函数
|
||
- 移除 `openEdit` 中读取/渲染 `data-entry-secrets` 的逻辑
|
||
- 移除 `edit-save` 中 secret rename/type PATCH 逻辑
|
||
- 移除编辑弹窗内的 unlink 事件监听器(第1492-1517行)
|
||
- `refreshListAfterSave` 不再处理 secretRows 参数
|
||
|
||
### 2. 查看密文弹窗 — 增加管理功能
|
||
|
||
在每个解密字段行中增加:
|
||
- **重命名输入框**(inline edit,带 debounce 校验)
|
||
- **类型下拉选择**
|
||
- **解绑按钮**
|
||
- **保存按钮**(逐行或统一保存)
|
||
- 复用现有的 `PATCH /api/secrets/{id}` 和 `DELETE /api/entries/{entry_id}/secrets/{secret_id}` 接口
|
||
|
||
需要在 `openView` 中额外传入 `data-entry-secrets`(含 secret id/name/type),以便将管理功能与解密值关联。
|
||
|
||
### 3. 列表行 — 保留只读摘要
|
||
|
||
- 保留密文 chips 的 name + type 展示
|
||
- **移除** chips 上的解绑按钮(×)
|
||
- **移除**列表行的 unlink 事件监听器(第1466-1490行)
|
||
|
||
### 4. i18n 更新
|
||
|
||
- 为查看弹窗新增重命名、类型修改、解绑相关的中英文翻译
|
||
- 清理编辑弹窗中不再需要的 i18n key
|
||
|
||
### 5. CSS 调整
|
||
|
||
- 查看弹窗中为管理控件添加样式(input/select/button 行内布局)
|
||
|
||
## 不涉及的变更
|
||
|
||
- 后端 API 无需修改(复用现有接口)
|
||
- 版本 bump(视为前次 0.5.11 的一部分,tag 尚未被 CI 创建)
|
||
|
||
## 涉及文件
|
||
|
||
- `crates/secrets-mcp/templates/entries.html`(HTML + JS + CSS)
|
||
- `crates/secrets-mcp/src/web/entries.rs`(无需修改,复用现有 API)
|