From 4f3a58c42bc9df02f8e293797793d31526f02877 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 3 Oct 2026 00:52:06 +0000 Subject: [PATCH 1/3] fix(opportunity-page): keep the deal's empty classification, campaign and notes sections on screen An all-empty `record:details` section renders nothing by the platform default (objectui#8603 ruling A), so on a deal carrying only its required fields the Details tab dropped the deal's type and source, its campaign, and its description and next step. `hideEmpty: false` on those three group references keeps them as labelled empty rows to fill in. Co-authored-by: Claude Claude-Session: https://claude.ai/code/session_01ER8ntXZhYebyQ66aXWdjfT --- src/sales/pages/opportunity_detail.page.ts | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/sales/pages/opportunity_detail.page.ts b/src/sales/pages/opportunity_detail.page.ts index f95211a6..6d276c2a 100644 --- a/src/sales/pages/opportunity_detail.page.ts +++ b/src/sales/pages/opportunity_detail.page.ts @@ -146,14 +146,29 @@ export const OpportunityDetailPage: Page = { // `expected_revenue`, both in the strip) renders nothing // here — it stays referenced so that a field added to the // group reaches this tab without an edit to this file. + // + // `hideEmpty: false` keeps an ALL-empty section on screen + // (#1211). The platform default (objectui#8603 ruling A) + // renders such a section as nothing at all, so on a deal + // with only its required fields the deal's type and + // source (`classification`), its campaign (`campaign`) + // and its description and next step (`notes`) vanished — + // the very fields a seller fills in later. Kept, they + // show as labelled empty rows to fill. Measured on + // 17.6.0 on such a deal: 2 sections render without it, 5 + // with it. Not on `basic` (its only member outside the + // title and the strip is `primary_contact`), nor on + // `financials`: both members sit in the strip, the + // derived list is empty, and the renderer draws nothing + // for an empty list whatever `hideEmpty` says. sections: [ { group: 'basic' }, { group: 'financials' }, - { group: 'classification' }, - { group: 'campaign' }, + { group: 'classification', hideEmpty: false }, + { group: 'campaign', hideEmpty: false }, { group: 'sales_process' }, { group: 'crm_forecast' }, - { group: 'notes' }, + { group: 'notes', hideEmpty: false }, ], }, }, From bfe9602ac86ecf1059d8a4a7a6bb3917c472c663 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 3 Oct 2026 00:55:41 +0000 Subject: [PATCH 2/3] chore(changeset): opportunity Details keeps its empty sections Co-authored-by: Claude Claude-Session: https://claude.ai/code/session_01ER8ntXZhYebyQ66aXWdjfT --- .changeset/1211-opportunity-empty-groups.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 .changeset/1211-opportunity-empty-groups.md diff --git a/.changeset/1211-opportunity-empty-groups.md b/.changeset/1211-opportunity-empty-groups.md new file mode 100644 index 00000000..f43d71f2 --- /dev/null +++ b/.changeset/1211-opportunity-empty-groups.md @@ -0,0 +1,21 @@ +--- +'hotcrm': patch +--- + +An opportunity's Details tab now keeps Classification, Campaigns and Notes & Next Steps on screen when they are empty + +A section with nothing filled in used to disappear from the Details tab. On a +new deal that carries only its required fields, that meant the tab showed +just Sales Process and Forecast & Metrics: there was no place to see, or fill +in, the deal's **Type**, **Lead Source**, **Campaign**, **Description** or +**Next Step**. + +These three sections now always show, with an empty row for each field. +Campaigns still starts collapsed: click the heading to open it. Campaigns no +longer waits for a campaign to be set before it appears. A section that has +at least one value looks the same as before, with its empty fields behind +**Show N empty fields**. + +Basic Information and Financials are unchanged. Every field in Financials is +already shown in the strip at the top of the page. In Basic Information, only +**Primary Contact** is not already shown in the page title or the strip. From a04128c8a49adaa92176b7cc66dc23b7a41c57f4 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 3 Oct 2026 01:05:52 +0000 Subject: [PATCH 3/3] chore(changeset): drop the Campaigns-appears-once-set sentence the empty-group fix makes false The opportunity Campaigns section now renders while empty, so the unreleased 806 note that it appears only once a campaign is set no longer holds. Co-authored-by: Claude Claude-Session: https://claude.ai/code/session_01ER8ntXZhYebyQ66aXWdjfT --- .changeset/806-detail-sections-group-ref.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.changeset/806-detail-sections-group-ref.md b/.changeset/806-detail-sections-group-ref.md index aca4fbf4..e1f7226e 100644 --- a/.changeset/806-detail-sections-group-ref.md +++ b/.changeset/806-detail-sections-group-ref.md @@ -27,8 +27,7 @@ Classification, Campaigns, Sales Process, Forecast & Metrics and Notes & Next Steps. Newly visible: **Primary Contact**, **Stage Entry Date**, **Approval Status**, **Approved Date**, **Win Reason**, **Loss Reason**, **Loss/Win Details**, **Days in Current Stage** and **Private**. Campaigns and Forecast & -Metrics start collapsed. The Campaigns group appears once the opportunity has a -campaign; set it from **Edit**. +Metrics start collapsed. **Cases.** The Details tab now shows Case Information, Origin & Routing, SLA & Priority, Escalation, Resolution and System. **Escalated Date** is shown for