From 8aa52049a2a8df478e0e65b70a5b8d0159045e73 Mon Sep 17 00:00:00 2001 From: "Ronald A. Richardson" Date: Fri, 25 Sep 2026 14:59:46 +0800 Subject: [PATCH 1/2] Place ledger's widgets on the shared default dashboard The default dashboard mixes every extension's default widgets, and the grid placed them in whatever order the extensions booted. Ledger's widgets on it now carry an `order` (see fleet-ops' registerWidgets for the whole layout): - Revenue (20) joins the top KPI row beside fleet-ops' Radar and Active Orders. - Expenses, Net Income, Outstanding AR and Overdue AR (110-140) form their own row of four; Overdue AR is new on the default dashboard. - Recent Financial Activity (150) fills the left half, 19 rows high: the console's Blog and GitHub card stack on the right at 13 + 6 rows. Ledger's own dashboard keeps its full widget set, unordered. --- addon/extension.js | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/addon/extension.js b/addon/extension.js index e12f985..d869e1b 100644 --- a/addon/extension.js +++ b/addon/extension.js @@ -335,14 +335,21 @@ export default { widgetService.registerDashboard('ledger'); widgetService.registerWidgets('ledger', widgets); + // Ledger's widgets on the shared default dashboard. `order` places them among every + // extension's widgets (see fleet-ops' registerWidgets for the whole layout): Revenue + // joins the top KPI row beside Radar (10) and Active Orders (30), the other four KPIs + // form their own row, and Recent Financial Activity fills the left half beside the + // console's Blog (160, h 13) and GitHub card (170, h 6) stacked on the right, so its + // height is theirs combined. Ledger's own dashboard above keeps its full set, unordered. widgetService.registerWidgets('dashboard', [ + getWidgetById('ledger-kpi-revenue', (widget) => widget.setOption('order', 20)), + getWidgetById('ledger-kpi-expenses', (widget) => widget.setOption('order', 110)), + getWidgetById('ledger-kpi-net-income', (widget) => widget.setOption('order', 120)), + getWidgetById('ledger-kpi-outstanding-ar', (widget) => widget.setOption('order', 130)), + getWidgetById('ledger-kpi-overdue-ar', (widget) => widget.setOption('order', 140)), getWidgetById('ledger-activity-feed', (widget) => { - widget.withGridOptions({ w: 6, minW: 6, h: 8, minH: 8 }); + widget.withGridOptions({ w: 6, minW: 6, h: 19, minH: 8 }).setOption('order', 150); }), - getWidgetById('ledger-kpi-revenue'), - getWidgetById('ledger-kpi-net-income'), - getWidgetById('ledger-kpi-outstanding-ar'), - getWidgetById('ledger-kpi-expenses'), ]); }, }; From c621adeaa25c2aae6fdab69a753a581c13b51966 Mon Sep 17 00:00:00 2001 From: "Ronald A. Richardson" Date: Fri, 25 Sep 2026 15:30:02 +0800 Subject: [PATCH 2/2] Move ledger's KPI row up and add Cash Flow Summary to the default dashboard - Expenses, Net Income, Outstanding AR and Overdue AR (41-44) now form the second row, directly under the top KPI row. - Recent Financial Activity is 10 rows tall with Cash Flow Summary (165, 9 rows) under it, together as tall as the console's Blog and GitHub card beside them. Cash Flow is ordered after the Blog so the grid places it under Activity rather than beside it. --- addon/extension.js | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/addon/extension.js b/addon/extension.js index d869e1b..1d7fc98 100644 --- a/addon/extension.js +++ b/addon/extension.js @@ -336,19 +336,24 @@ export default { widgetService.registerDashboard('ledger'); widgetService.registerWidgets('ledger', widgets); // Ledger's widgets on the shared default dashboard. `order` places them among every - // extension's widgets (see fleet-ops' registerWidgets for the whole layout): Revenue - // joins the top KPI row beside Radar (10) and Active Orders (30), the other four KPIs - // form their own row, and Recent Financial Activity fills the left half beside the - // console's Blog (160, h 13) and GitHub card (170, h 6) stacked on the right, so its - // height is theirs combined. Ledger's own dashboard above keeps its full set, unordered. + // extension's widgets (see fleet-ops' registerWidgets for the whole layout): + // 20 Revenue, in the top KPI row beside Radar (10) and Active Orders (30) + // 41-44 Expenses, Net Income, Outstanding AR, Overdue AR: the second KPI row + // 150/165 Recent Financial Activity (10 rows) with Cash Flow Summary (9) under it, + // beside the console's Blog (160, 13 rows) and GitHub card (170, 6 rows). + // Cash Flow comes after the Blog so it lands under Activity, not beside it. + // Ledger's own dashboard above keeps its full set, unordered. widgetService.registerWidgets('dashboard', [ getWidgetById('ledger-kpi-revenue', (widget) => widget.setOption('order', 20)), - getWidgetById('ledger-kpi-expenses', (widget) => widget.setOption('order', 110)), - getWidgetById('ledger-kpi-net-income', (widget) => widget.setOption('order', 120)), - getWidgetById('ledger-kpi-outstanding-ar', (widget) => widget.setOption('order', 130)), - getWidgetById('ledger-kpi-overdue-ar', (widget) => widget.setOption('order', 140)), + getWidgetById('ledger-kpi-expenses', (widget) => widget.setOption('order', 41)), + getWidgetById('ledger-kpi-net-income', (widget) => widget.setOption('order', 42)), + getWidgetById('ledger-kpi-outstanding-ar', (widget) => widget.setOption('order', 43)), + getWidgetById('ledger-kpi-overdue-ar', (widget) => widget.setOption('order', 44)), getWidgetById('ledger-activity-feed', (widget) => { - widget.withGridOptions({ w: 6, minW: 6, h: 19, minH: 8 }).setOption('order', 150); + widget.withGridOptions({ w: 6, minW: 6, h: 10, minH: 8 }).setOption('order', 150); + }), + getWidgetById('ledger-cash-flow-summary', (widget) => { + widget.withGridOptions({ w: 6, minW: 5, h: 9, minH: 8 }).setOption('order', 165); }), ]); },