Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions .changeset/case-header-holds-no-icon.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
'hotcrm': patch
---

The Cases page stops promising an icon on the case detail header, in all three
locales.

The header bullet enumerated "the case number and subject as the title, the
**account** as the subtitle, plus an icon, a breadcrumb and the action buttons"
— and then closed with *That is the whole header*. Everything in that list is
real except the icon: `icon` was **removed** from `page:header` in
`@objectstack/spec` 17.0.0 (#6946, ADR-0087 D2), deleted rather than renamed
because no renderer ever read it, and no `page:header` under `src/pages/`
authors one. `case_detail.page.ts` records the removal at the property it would
have sat on.

What made it worth correcting is the sentence's own claim to be exhaustive. A
list that ends "that is the whole header" gives a reader no reason to doubt any
item on it, so the one entry the renderer cannot draw was the one entry the
reader would hunt for longest. The clause is deleted and nothing replaces it:
the breadcrumb and the three action buttons in the same sentence are both real
(`breadcrumb: true`; `actions` names `escalate_case`, `close_case` and
`log_call`), so the completeness claim is now simply true — the header holds a
title, a subtitle, a breadcrumb and its action buttons, and the enumeration and
the component's properties block now agree item for item.

The Chinese faces lose the same item and keep their own register — 此外只有面包屑
和几个动作按钮 / 此外只有麵包屑和幾個動作按鈕 — rather than being re-translated
around the gap. One clause per face, three lines in total; no `src/` metadata
changed and no test or guard was added.

The sibling detail-page docs were swept for the same claim before this landed,
by behaviour rather than by the word *icon* — every page describing what a
record header holds, every completeness assertion, and the other nouns the
faces could have used (图标 / 圖示 / 头像 / avatar / logo). **The difference set
is empty**: no account, lead or opportunity page carries this sentence in any
locale. The clause was never a shared template — all three faces got it in one
commit (#946), the change that rewrote this bullet from an older stale
enumeration, at a time when `icon` was still believed to be a header property.
2 changes: 1 addition & 1 deletion content/docs/service/cases.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@ Of the **seven** names this section used to list, only **My Open Cases** was rea

When you open a case, you'll see:

- **Header** — the case number and subject as the title (`{case_number} · {subject}`), the **account** as the subtitle, plus an icon, a breadcrumb and the action buttons. That is the whole header: there is **no status badge, no priority badge and no SLA countdown** on it. Nothing in this app computes time remaining or time over — not here, not anywhere else on the case — so there is no countdown to render. See [SLA & Escalation](/docs/service/sla-and-escalation) for what the two SLA fields do instead.
- **Header** — the case number and subject as the title (`{case_number} · {subject}`), the **account** as the subtitle, plus a breadcrumb and the action buttons. That is the whole header: there is **no status badge, no priority badge and no SLA countdown** on it. Nothing in this app computes time remaining or time over — not here, not anywhere else on the case — so there is no countdown to render. See [SLA & Escalation](/docs/service/sla-and-escalation) for what the two SLA fields do instead.
- **Key Information** — the highlights strip directly under the header, and where **Status** and **Priority** actually live: ordinary fields rather than badges, side by side with **SLA Due Date**, **SLA Violated**, **Owner** and **Account**.
- **Status path** — a Salesforce-style horizontal flow showing New → In Progress → Waiting on Customer → Escalated → Resolved → Closed, so an agent can see at a glance where the case stands and what the next stop is.
- **Customer panel** — there is no such panel. The page (`src/pages/case_detail.page.ts`) declares two regions and nothing else: a header holding the three components above, and a main region holding the tab strip below. What customer context there is sits in those: the **account** appears twice over — the header subtitle and the Key Information strip — and the **primary contact** is a field in the *Details* tab's *Case Information* section. **Contract tier** and **open cases this month** are on no case surface at all. A case links to no contract, and `crm_contract` carries no tier field either; the nearest real field is **Customer Tier** on the account record, which this page does not show. Nothing in this app counts a customer's cases by month.
Expand Down
2 changes: 1 addition & 1 deletion content/docs/service/cases.zh-Hans.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@ description: 客户支持工单——主题、优先级、状态、解决方案

打开一个工单时,你会看到:

- **页眉**——标题是工单编号与主题(`{case_number} · {subject}`),副标题是**账户**,此外只有一个图标、面包屑和几个动作按钮。页眉就这些:上面**没有状态徽章、没有优先级徽章,也没有 SLA 倒计时**。本应用里没有任何东西会计算剩余时间或超时时长——页眉上没有,工单上别的任何地方也没有——所以根本没有倒计时可渲染。那两个 SLA 字段实际做什么,见 [SLA 与升级](/zh-Hans/docs/service/sla-and-escalation)。
- **页眉**——标题是工单编号与主题(`{case_number} · {subject}`),副标题是**账户**,此外只有面包屑和几个动作按钮。页眉就这些:上面**没有状态徽章、没有优先级徽章,也没有 SLA 倒计时**。本应用里没有任何东西会计算剩余时间或超时时长——页眉上没有,工单上别的任何地方也没有——所以根本没有倒计时可渲染。那两个 SLA 字段实际做什么,见 [SLA 与升级](/zh-Hans/docs/service/sla-and-escalation)。
- **关键信息**——紧贴页眉下方的摘要栏,也是**状态**与**优先级**真正待的地方:它们在这里是普通字段而不是徽章,与 **SLA 截止日期**、**SLA Violated**、**负责人**、**账户**并排。
- **状态路径**——一个 Salesforce 风格的水平流程,显示 New → In Progress → Waiting on Customer → Escalated → Resolved → Closed,让客服一眼就能看出工单的进展和下一站。
- **客户面板**——不存在这样一个面板。这一页(`src/pages/case_detail.page.ts`)只声明了两个区域,再无其他:一个页眉区域装着上面那三个组件,一个主区域装着下面那组页签。客户上下文就散落在这两处:**账户**在页面上出现了两次——页眉副标题和关键信息摘要栏;**主要联系人**则是 *Details* 页签 *Case Information* 分区里的一个字段。**合同等级**与**本月未结工单**在工单的任何界面上都没有承载:工单不关联任何合同,`crm_contract` 上也没有等级字段;最接近的真实字段是账户记录上的 **Customer Tier**(中文界面作「客户分层」),而这一页并不展示它。本应用里也没有任何东西按月统计一个客户的工单数。
Expand Down
2 changes: 1 addition & 1 deletion content/docs/service/cases.zh-Hant.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@ description: 客戶支援工單——主題、優先順序、狀態、解決方

打開一個工單時,你會看到:

- **頁首**——標題是工單編號與主題(`{case_number} · {subject}`),副標題是**帳戶**,此外只有一個圖示、麵包屑和幾個動作按鈕。頁首就這些:上面**沒有狀態徽章、沒有優先順序徽章,也沒有 SLA 倒數計時**。本應用裡沒有任何東西會計算剩餘時間或超時時長——頁首上沒有,工單上別的任何地方也沒有——所以根本沒有倒數計時可渲染。那兩個 SLA 欄位實際做什麼,見 [SLA 與升級](/zh-Hant/docs/service/sla-and-escalation)。
- **頁首**——標題是工單編號與主題(`{case_number} · {subject}`),副標題是**帳戶**,此外只有麵包屑和幾個動作按鈕。頁首就這些:上面**沒有狀態徽章、沒有優先順序徽章,也沒有 SLA 倒數計時**。本應用裡沒有任何東西會計算剩餘時間或超時時長——頁首上沒有,工單上別的任何地方也沒有——所以根本沒有倒數計時可渲染。那兩個 SLA 欄位實際做什麼,見 [SLA 與升級](/zh-Hant/docs/service/sla-and-escalation)。
- **關鍵資訊**——緊貼頁首下方的摘要欄,也是**狀態**與**優先順序**真正待的地方:它們在這裡是普通欄位而不是徽章,與 **SLA 截止日期**、**SLA Violated**、**負責人**、**帳戶**並排。
- **狀態路徑**——一個 Salesforce 風格的水平流程,顯示 New → In Progress → Waiting on Customer → Escalated → Resolved → Closed,讓客服一眼就能看出工單的進展和下一站。
- **客戶面板**——不存在這樣一個面板。這一頁(`src/pages/case_detail.page.ts`)只宣告了兩個區域,再無其他:一個頁首區域裝著上面那三個元件,一個主區域裝著下面那組頁籤。客戶脈絡就散落在這兩處:**帳戶**在頁面上出現了兩次——頁首副標題和關鍵資訊摘要欄;**主要聯絡人**則是 *Details* 頁籤 *Case Information* 分區裡的一個欄位。**合約等級**與**本月未結工單**在工單的任何介面上都沒有承載:工單不關聯任何合約,`crm_contract` 上也沒有等級欄位;最接近的真實欄位是帳戶記錄上的 **Customer Tier**(中文介面作「客戶分層」),而這一頁並不展示它。本應用裡也沒有任何東西按月統計一個客戶的工單數。
Expand Down
Loading