69 lines
2.4 KiB
Markdown
69 lines
2.4 KiB
Markdown
# Reasonix Worker B:Office 编辑模式菜单与 guard
|
||||
|
|
|
|||
|
|
你是编码 worker,不是审查员。你不独占代码库,可能有其他 worker 同时修改不同文件;不要回滚、覆盖或清理他人的改动。
|
|||
|
|
|
|||
|
|
## Project Root
|
|||
|
|
|
|||
|
|
`/mnt/Data1T/mnote`
|
|||
|
|
|
|||
|
|
## 背景
|
|||
|
|
|
|||
|
|
详见:
|
|||
|
|
|
|||
|
|
- `bugs/05-editor-mainline/process/2026-05-21-office-edit-sign-plugin-gap-review-v1.md`
|
|||
|
|
- `bugs/05-editor-mainline/process/5-35-office-edit-mode-menu-and-guard-v1.md`
|
|||
|
|
|
|||
|
|
产品口径:Office 默认只读打开;三点菜单增加“使用编辑模式打开”。当前 local-folder edit/save callback 没有完整闭环,因此编辑入口不能表现成默认可保存功能。
|
|||
|
|
|
|||
|
|
## Ownership
|
|||
|
|
|
|||
|
|
你负责:
|
|||
|
|
|
|||
|
|
- `rust/crates/mnote-web/src/ssr/pages/layout.rs`
|
|||
|
|
- 与 layout JS 字符串相关的 `mnote-web` 单测
|
|||
|
|
- 更新 `bugs/05-editor-mainline/process/5-35-office-edit-mode-menu-and-guard-v1.md` 的本轮执行记录
|
|||
|
|
|
|||
|
|
不要修改:
|
|||
|
|
|
|||
|
|
- `rust/crates/mnote-web/src/routes/onlyoffice.rs`
|
|||
|
|
- `rust/crates/mnote-web/src/routes/media.rs`
|
|||
|
|
- ACP / Hermes 相关文件
|
|||
|
|
|
|||
|
|
## 任务
|
|||
|
|
|
|||
|
|
1. 确认 Office 默认打开路径使用 `mode=view`,尤其是 local uploaded asset 和编辑器附件点击。
|
|||
|
|
2. 在正文附件三点菜单中增加“使用编辑模式打开”。
|
|||
|
|
3. 在文件树 Office asset 右键菜单中增加“使用编辑模式打开”。
|
|||
|
|
4. 点击编辑入口时打开 `mode=edit` 的 OnlyOffice URL。
|
|||
|
|
5. 如果保存闭环未完成,给编辑入口增加 guard:
|
|||
|
|
- 可以用 `window.confirm` 或明确状态标记提示“编辑保存仍在实验中,建议先备份文件”;
|
|||
|
|
- 必须便于浏览器测试识别,例如设置 `data-mnote-last-office-edit-mode-requested="true"` 和 `data-mnote-last-office-edit-mode-guard="shown"`。
|
|||
|
|
|
|||
|
|
## 设计约束
|
|||
|
|
|
|||
|
|
- 不默认 edit。
|
|||
|
|
- 不承诺保存已闭环。
|
|||
|
|
- 不影响 md/text/code 附件继续走 tiptap 渲染 / 编辑路径。
|
|||
|
|
- 尽量复用现有 `buildLocalOnlyOfficeOpenUrl`、`buildOnlyOfficeOpenUrl`、`openConvexAssetFromFileTree` 等函数。
|
|||
|
|
|
|||
|
|
## 验收命令
|
|||
|
|
|
|||
|
|
请至少运行:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cargo test -p mnote-web sidebar_tree_js -- --test-threads=1
|
|||
|
|
cargo test -p mnote-web onlyoffice -- --test-threads=1
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
如果失败,记录失败原因和相关输出。
|
|||
|
|
|
|||
|
|
## 最终输出
|
|||
|
|
|
|||
|
|
在 final 中列出:
|
|||
|
|
|
|||
|
|
- 修改文件
|
|||
|
|
- 菜单项位置与 action 名称
|
|||
|
|
- 默认 view 与显式 edit 的实现点
|
|||
|
|
- 运行过的命令和结果
|
|||
|
|
- 未完成项或风险
|