The Roster Board is the flagship visualisation of the extension — a drag-and-drop scheduling UI that lets HR build a weekly or monthly shift roster. It runs as a Control Add-in embedded inside BC.
Where it runs
Component-by-component
AutoLoad
Invisible component mounted at app start. On mount, dispatches three data fetches in parallel for the default 3-month window:
getAllResourcesAsync(from, to) — employee directory
getShiftCodesAsync() — shift configurations marked roster-eligible
getRosterEntriesAsync(from, to) — existing assignments in the window
Stores each result in the rosterData Redux slice.
RosterScheduler
The primary screen. Renders a searchable employee list (left sidebar, every employee is a draggable card via Syncfusion’s Draggable utility) and a Syncfusion ScheduleComponent grouped by ShiftCode (right pane). Supports Day, Week, WorkWeek, and Month views.
The shift colour mapping is a local constant (SHIFT_WINDOWS) in roster-scheduler.component.tsx — adjust there if you want a different palette per shift.
Gantt screen (built, not active)
components/project-gantt-chart/ implements a Syncfusion GanttComponent-based view of BC project tasks and per-resource planning lines. To re-enable it, mount <ProjectGanttChart/> from App.tsx. Data services and Redux slices are already wired.
State slices
rosterData
projectsData
Manages the Gantt screen’s state: projects, edit-permission flag, and visibility/context for the six modal dialogs.
resourcesData
Domain types
Customisation
Never directly edit BC-Human-Resource-AL/scripts/assets/js/base.js — it’s overwritten on the next React build.
Partner customisation hooks: localisation strings (add an i18n layer in the React source), shift colour mapping (SHIFT_WINDOWS constant), and the default view range (3-month window in AutoLoad — change there).