From 95efac0257d62f79ccc108ab1973f22b931c53bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8C=85=E5=91=A8=E6=B6=9B?= Date: Sat, 4 Jul 2026 14:50:05 -0700 Subject: [PATCH] fix(app-showcase): drop wrong-context userFilters from showcase_task.tabular (#2563) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit objectui ADR-0053 reserves userFilters for page lists ("filters" mode); on an object list view ("views" mode) the console suppresses them by design — a showcase view demoing a field the console is designed to ignore is actively misleading (it's how dogfood finding P0-30 got filed). Point the comment at the ADR split instead: named views on the object, userFilters in the task-workbench/task-triage/active-projects page examples. Also reclassify P0-30 in the test report (by-design suppression; the silent drop is fixed by objectui#2220) and mark P0-29 fixed upstream (objectui#2218). Fixes #2563 Co-Authored-By: Claude --- ...ole-list-form-capability-report-2026-07.md | 7 +++--- examples/app-showcase/src/views/task.view.ts | 22 +++++-------------- 2 files changed, 10 insertions(+), 19 deletions(-) diff --git a/examples/app-showcase/docs/test/console-list-form-capability-report-2026-07.md b/examples/app-showcase/docs/test/console-list-form-capability-report-2026-07.md index a2efc37e45..2cf5ed7cbb 100644 --- a/examples/app-showcase/docs/test/console-list-form-capability-report-2026-07.md +++ b/examples/app-showcase/docs/test/console-list-form-capability-report-2026-07.md @@ -70,8 +70,8 @@ lookupFilters)、命名视图与视图路由、userFilters、筛选/分组/排 | # | 严重度 | 问题 | 证据 | | --- | --- | --- | --- | -| 29 | **P0** | **导航项 viewName 生成短名路由,视图解析静默失败回退默认视图**:Analytics→Task List 生成 `/view/tabular`,页面面包屑显示 "Tabular"、侧边栏高亮,但渲染的列/筛选/选中 tab 全是默认视图的;页内视图切换用全限定名 `/view/showcase_task.tabular` 则一切正常 —— 同一视图两个入口两种结果,且失败无任何提示 | 截图 35 vs 36 | -| 30 | **P0** | **视图 `userFilters` 配置完全不渲染**:tabular 视图 meta 定义了 dropdown 快捷筛选(status / priority(showCount) / done(boolean) / project),页面上既无独立下拉,也不出现在"筛选"面板 | 截图 36 | +| 29 | **P0** | **导航项 viewName 生成短名路由,视图解析静默失败回退默认视图**:Analytics→Task List 生成 `/view/tabular`,页面面包屑显示 "Tabular"、侧边栏高亮,但渲染的列/筛选/选中 tab 全是默认视图的;页内视图切换用全限定名 `/view/showcase_task.tabular` 则一切正常 —— 同一视图两个入口两种结果,且失败无任何提示。**→ 已修复**:objectui#2217 / PR #2218(解析端双向解析短名↔全限定名,失配时 console.warn 列出已知视图) | 截图 35 vs 36 | +| 30 | ~~P0~~ 定性更正 | **视图 `userFilters` 不渲染 —— 实为按设计抑制,非渲染 bug**:objectui ADR-0053 规定对象列表视图("views" 模式)唯一导航控件是视图切换器,`userFilters` 只属于页面列表(InterfaceListPage "filters" 模式,showcase 的 task-workbench 等 page 示例即正确用法)。真正缺陷有二:① 抑制**完全静默**(ADR-0053 phase-4 校验护栏未落地)→ objectui#2219 / PR #2220 已加一次性 console.warn;② showcase 自身 tabular 视图携带 wrong-context 的 `userFilters` 块(framework#2563,本次移除) | 截图 36;扫码 ADR-0053 | | 25 | P1 | 筛选/排序面板新增行**默认字段为系统字段 Organization**(英文);字段列表暴露 Sync Status / Sync Error 等内部字段,且系统字段全英文 | 截图 26 | | 26 | P2 | 分组点"添加分组字段"立即按默认字段"标题"分组(每组 1 条,无意义);组头显示英文选项标签(Done/In Progress) | 截图 27 | | 31 | P1 | **列表页脚记录数显示的是当前页行数而非总数**:120 条数据、每页 100 时页脚显示 "100 条记录",翻到第 2 页变 "20 条记录" —— 用户看不到真实总量(分页条本身的"第 X 页,共 Y 页"是对的) | 截图 37、38 | @@ -127,7 +127,8 @@ lookupFilters)、命名视图与视图路由、userFilters、筛选/分组/排 1. **P0 数据/功能级**:#12 批量多选写坏数据、#10 行内编辑不可用、#8/#19/#20 form action 与 forms 路由全链、#27/#35 flow action、#16 visibleOn、#21 级联 lookup、 - #29 视图路由静默回退、#30 userFilters + #29 视图路由静默回退(已修:objectui#2218)、#30 userFilters(定性更正:按设计 + 抑制,静默问题已修 objectui#2220,showcase 元数据已清理 framework#2563) 2. **P1 误导/受损**:#31 页脚计数、#25 筛选默认系统字段、#33 select 默认值、#34 API 静默忽略参数、#9 DB 元数据缓存、#13/#15 批量参数控件、#22 只读旁路、#23 action 位置 3. **P2 国际化一致性**:集中治理 console 内置 UI 文案与元数据标签的 zh-CN 覆盖 diff --git a/examples/app-showcase/src/views/task.view.ts b/examples/app-showcase/src/views/task.view.ts index 0d2c243a0c..244f616918 100644 --- a/examples/app-showcase/src/views/task.view.ts +++ b/examples/app-showcase/src/views/task.view.ts @@ -97,22 +97,12 @@ export const TaskViews = defineView({ { field: 'estimate_hours' }, ], - // ADR-0047 — end-user quick-filter dropdowns (Airtable "User - // filters", Elements: dropdowns). Options/labels are inferred from - // the field definitions; `priority` shows per-option record counts. - // Counterpart to the default view's `tabs` — one element style per - // view, never both. - userFilters: { - element: 'dropdown', - fields: [ - { field: 'status' }, - { field: 'priority', showCount: true }, - { field: 'done', type: 'boolean' }, - // Lookup field — renders as a record-picker dropdown (the - // CRM-parity case: filter by a referenced record, e.g. owner). - { field: 'project' }, - ], - }, + // ADR-0053 — NO `userFilters` here: on an object list view ("views" + // mode) the console suppresses them by design (the view switcher is + // the only nav control; objectui warns since #2220). End-user filter + // elements live in interface pages ("filters" mode) — see + // task-workbench / task-triage / active-projects *.page.ts. Status + // presets on this object are the named views above instead. }, // 1 ── Grid ─────────────────────────────────────────────────────────