diff --git a/CHANGELOG.md b/CHANGELOG.md index 18f4e7a..561882c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -36,6 +36,7 @@ This file is the running release and change log for CODEXIUM. Keep it updated wh - Continued density standardization across company settings and deeper manufacturing detail surfaces, including tighter admin/profile/theme sections, denser work-order execution panels, and compact issue/completion history cards - Continued density standardization across project cockpit/detail internals, including tighter cockpit cards, denser purchasing and readiness panels, and compact milestone, manufacturing-link, and activity-timeline surfaces - Continued density standardization across admin diagnostics, user management, and CRM contacts, including tighter filter/forms, denser summary cards, and compact contact/account management surfaces +- Workbench usability pass with sticky planner controls, stronger selected-row and selected-day state, clearer heatmap/day context, and more explicit dispatch-oriented action affordances - Project-side milestone and work-order rollups surfaced on project list and detail pages - Inventory SKU master builder with family-level sequence codes, branch-aware taxonomy management, and generated SKU previews on the item form - Thumbnail image attachment staging on inventory item create/edit pages, with upload-on-save and replacement/removal support diff --git a/client/src/index.css b/client/src/index.css index 6047047..456a24c 100644 --- a/client/src/index.css +++ b/client/src/index.css @@ -28,6 +28,10 @@ .module-title { @apply mt-1 text-xl font-bold uppercase tracking-[0.08em] text-text; } + + .planner-sticky-bar { + @apply sticky top-3 z-20 rounded-[18px] border border-line/70 bg-surface/90 p-3 shadow-panel backdrop-blur; + } } :root { diff --git a/client/src/modules/workbench/WorkbenchPage.tsx b/client/src/modules/workbench/WorkbenchPage.tsx index 64cbe77..4db79f1 100644 --- a/client/src/modules/workbench/WorkbenchPage.tsx +++ b/client/src/modules/workbench/WorkbenchPage.tsx @@ -165,6 +165,10 @@ function matchesWorkbenchFilter(record: FocusRecord, filter: WorkbenchFilter) { } } +function exceptionTargetId(exceptionId: string) { + return exceptionId.startsWith("project-") ? exceptionId : exceptionId.replace("work-order-unscheduled-", "work-order-"); +} + export function WorkbenchPage() { const navigate = useNavigate(); const { token } = useAuth(); @@ -386,7 +390,7 @@ export function WorkbenchPage() { return (
-
+

PLANNING

@@ -419,6 +423,19 @@ export function WorkbenchPage() { ))}
+
+ {filteredFocusRecords.length} visible rows + {selectedFocus ? ( + + Selected {selectedFocus.kind.toLowerCase()}: {selectedFocus.title} + + ) : null} + {selectedHeatmapDate ? ( + + ) : null} +
@@ -449,7 +466,7 @@ export function WorkbenchPage() { ) : (
{exceptions.map((exception: PlanningExceptionDto) => ( -
+
+
+ {workbenchMode.toUpperCase()} + {workbenchGroup.toUpperCase()} + {workbenchFilter.replace("-", " ").toUpperCase()} +
+ {selectedFocus ?
{selectedFocus.title}
:
Select a record to inspect and act.
} +
{workbenchMode === "overview" ? ( ) : null} {workbenchMode === "heatmap" ? : null} - {workbenchMode === "agenda" ? : null} + {workbenchMode === "agenda" ? : null}
@@ -627,8 +654,8 @@ export function WorkbenchPage() {

{workbenchMode === "heatmap" ? "SELECTED DAY" : "UPCOMING AGENDA"}

{workbenchMode === "heatmap" - ? (selectedHeatmapCell ? :
Select a day in the heatmap to inspect its load.
) - : } + ? (selectedHeatmapCell ? :
Select a day in the heatmap to inspect its load.
) + : }
@@ -650,6 +677,7 @@ function OverviewBoard({ stationLoads, groupMode, onSelect, + selectedId, draggingOperation, dropStationId, selectedHeatmapDate, @@ -661,6 +689,7 @@ function OverviewBoard({ stationLoads: PlanningStationLoadDto[]; groupMode: WorkbenchGroup; onSelect: (id: string) => void; + selectedId: string | null; draggingOperation: DraggingOperation | null; dropStationId: string | null; selectedHeatmapDate: string | null; @@ -700,7 +729,7 @@ function OverviewBoard({

Program Queue

{projects.map((record) => ( -