Skip to content

Timeline History ​

Chronological timeline of events for a worker, including contract milestones, timesheet activity, absence submissions, and expense events.

Route ​

/organisations/:orgId/workers/:id/history

Layout ​

Worker Profile Card ​

Displays the worker's profile at the top: name, country, contract type, job title, team name, manager names, and HR-only status.

Search and Date Filter Bar ​

A horizontal bar with:

  • Search input (text search)
  • From date picker (vaadin-date-picker)
  • To date picker (vaadin-date-picker)
  • Filter button

Timeline ​

Rendered via the EmployeeHistory component, which uses TimelineGeneric internally. Events are grouped by date and sorted newest first. The current year is hidden from date labels.

Event Types ​

Events are fetched via getWorkerHistory and include:

  • WorkCommenced -- Synthesised from the worker's start date if it is in the past
  • AbsenceSubmitted -- Worker submitted an absence request
  • AbsenceApproved -- Absence request was approved
  • TimesheetSubmitted / TimesheetResubmitted -- Timesheet submitted or resubmitted
  • TimesheetApproved -- Timesheet was approved
  • TimesheetApprovalOverdue -- Timesheet approval is late
  • TimesheetOverdue -- Timesheet submission is overdue
  • HrOnlyOnboarded -- HR-only worker was onboarded
  • ContractSignedByCandidate -- Contract was signed (appends worker type)
  • TimesheetNotRequired -- Timesheets marked as not required
  • ExpensesNotRequired -- Expenses marked as not required
  • AbsencesNotRequired -- Absences marked as not required

Each event displays a type-specific icon and a translated description. Events with associated documents include a hyperlink to the pending approval detail view at /organisations/:orgId/pending-approvals/:id:

  • Timesheet events link using {correlationId}:{weekAndYear} as the ID
  • Absence events link using {absenceId}
  • Expense events link using {expenseId}

Behavior notes ​

  • When the contract has ended, the entire view is displayed with reduced opacity and greyscale.
  • If no history events exist, a "no history" message is shown.
  • On initialisation error, the error is displayed inline.