Files
ShadowsocksX-NG/docs/design/server-tree-selection-and-creation.md
T

3.3 KiB

服务器树取消选择与新增入口

日期:2026-10-04 状态:交互约定已整体确认并授权实现;代码验证与审查完成情况见提交说明。

本文记录本次任务的交互决定,不代表当前实现。领域术语沿用根目录 GLOSSARY.md。

已确认决定

  1. 仅调整服务器管理页面的树列表和手动新建服务器/分组入口。首页树、导入入口和移动节点流程维持现有交互。
  2. 两个新增按钮单击直接按当前选择确定添加位置:手动组对应组内,服务器对应其手动父组,其余情况对应根。添加到根时可先清空选择。用户确认菜单增加了常用组内添加的操作成本,已要求移除菜单双路径方案。
  3. 点击列表中没有节点的空白区域取消选择。再次点击已选中行仍保持选择。
  4. 仅树列表有焦点时按 Esc 取消选择。文本编辑、表单与弹窗继续处理各自的 Esc。
  5. 取消选择显示已有的“未选择节点”详情,不改变活动目标。
  6. 取消选择沿用当前离开服务器详情的规则,直接丢弃未保存草稿,不自动保存、不增加确认弹窗。统一草稿保护不属于本次范围。
  7. 打开新增窗口保留原选择及原服务器编辑草稿;取消新增返回原详情。
  8. 添加位置在点击新增按钮或右键新增动作时固定。目标组随后失效时,提交报错并保留输入,不自动改到根。
  9. 新建服务器与新建分组成功后,统一选中新节点并展开其祖先组。离开原详情时遵循上述草稿丢弃规则。
  10. 已启动的保存继续作用于原服务器,不因取消选择或打开新增而取消。完成后不恢复旧选择、不抢占当前详情,失败按现有方式呈现错误。

已确认文案

工具栏按钮名称继续使用“新建服务器/新建分组”,英文沿用对应现有按钮名称。

移除菜单双路径方案后,其专用的根级/组内新增中英文文案也一并移除。

实现前代码事实

  • 新增目标规则:手动组对应组内;服务器对应其手动父组;无选择、根级服务器和订阅节点对应配置目录根。
  • 切换服务器会清空旧表单草稿并装载新值,没有未保存确认。取消选择退出详情分支,按当前草稿状态归属推断会丢弃草稿;尚未进行原生界面验证。
  • 新建服务器成功会选中新节点;新建分组成功保持原选择。
  • 新建分组显式记录打开时的父组;新建服务器父组目前在 sheet 构建时由选择计算。

验证范围

  • 行为验证覆盖新增目标规则、打开时固定目标、目标失效拒绝、成功后的选择与祖先展开,以及晚保存完成不覆盖新详情。
  • 编译与静态检查验证源代码和本地化资源。
  • 用户明确要求本次不使用 computer-use、不做视觉验证。空白点击、树焦点下 Esc、文本/弹窗 Esc 优先级、新增按钮交互、打开并取消新增后原草稿保留,以及实际展开与选中效果保留为未验证的原生界面行为;代码测试与编译通过不代表这些交互已经通过人工验收。

文档边界

现有术语“配置目录”“配置组”“服务器表单草稿”和“活动目标”已足以表达本次需求,当前不新增术语。入口与取消选择方式容易调整,当前不另建 ADR。