Skip to main content
General

分类行:一个菜单,以及将一个Blink直接归入一个类别

更改内容

每个类别行 — 在 Blinks, Goals, Projects and Businesses 中 — 以前有五个控件:名称、计数徽章,以及个人资料、编辑和删除按钮,外加一个用于添加子类别的 “+”。在手机上,这些按钮换行显示,导致行看起来杂乱。

现在,每一行在名称和计数之后显示 两个 项目:

  • 一个 捕获Blink图标,可以将新的Blink直接归入该类别;
  • 一个 “…” 菜单,包含个人资料、编辑、添加子类别和删除。

因此,该行获得了一项新功能,同时也失去了三个控件。删除位于菜单的最后位置,上方有一个分隔线,因为破坏性操作永远不应是用户不小心发现的操作。

宽度行的外观
桌面# 工作  日常工作的所有事情  12 Blinks  (↓) (…)
手机# 工作  12  (↓) (…) — 名称缩短,徽章保留数字,去掉单词

将Blink捕获到一个类别

点击任何行上的捕获图标,正常的Blink表单将以该类别已选择的状态在链接选项卡中打开。按常规填写。当您保存时,您将返回到您开始的位置的类别页面,因此可以立即文件另一个,而无需返回导航。

表单的内容没有变化 — 它仍然是相同的页面,相同的字段和相同的保存。唯一的区别是您开始的地方和您落脚的地方。

哪个应用程序拥有什么

平静的行和 “…” 菜单在 所有四个 应用程序中都有,因为它们共享一个行组件。两个菜单项仅在它们实际上可以工作的地方出现:

  • 添加子类别 — 目前仅适用于Blinks。其他三个应用程序的创建页面尚不能接受父类别,并且提供一个默默无效的控件比不提供更糟。
  • 捕获图标 — 目前仅适用于Blinks,原因相同:只有Blink表单现在可以预先选择类别。如果每个其他应用程序稍后通过向行传递一个额外值,可以启用它;这个行为不需要新的代码。

键盘和屏幕阅读器

这两个图标在其标签中携带类别的名称 — “将Blink捕获到工作”,“工作更多操作” — 因为听见页面的用户需要知道哪个行在发声。菜单可以通过键盘打开,按Escape关闭,并在其项之间移动焦点。点击类别名称仍然打开类别页面,和以前完全一样。

对于开发者

部分位置
行(四个应用共享)templates/_shared/_category_row_inner.html
树节点(“+”曾经位于此处)templates/_shared/_category_node.html
样式static/css/orbitingfox-ui.css § 23t
类别预选 + 返回路径blink/views.py (?category=, nextnext_url)
测试config/test_category_row_actions.py, config/test_capture_return_path.py

该菜单是一个Bootstrap下拉菜单,应用了现有的 .of-dropdown-menu — 而不是第六种展开/折叠模式。菜单并不是披露:<details> 不能浮动在行上方,因此它将推动列表打开,而不是覆盖它。

返回路径在两端都经过验证。 next 值以查询字符串形式到达,因此它是由攻击者选择的:除非它是相同站点路径,否则将被拒绝,不论是在表单渲染时还是保存重定向时。同样,一个方案相对的 //host 也会被拒绝 — 它以斜杠开头,将通过天真的检查。

在构建这个过程中的两个陷阱,值得知道: min-w-0 不是这个代码库中的类(家中的类是 of-min-w-0),并且五个静默无操作是导致行在手机上溢出的原因;而 btn-outline-* 是Bootstrap颜色类,设计步进当前没有计入,因此它们可能会不知不觉中累积。

This guide was translated automatically. Read the English original.

🪐 OrbitPilot