User Interface medium complexity frontend
2
Dependencies
0
Dependents
1
Entities
0
Integrations

Description

Admin portal screen for managing the per-organisation catalogue of activity types. Displays a list of all configured activity types with their metadata flags and allows administrators to create, edit, reorder, and deactivate types.

Feature: Activity Type Configuration

activity-type-admin-screen

Summaries

The Activity Type Admin Screen gives organisation administrators full self-service control over their activity catalogue, eliminating the need for developer support to add or modify activity types. By exposing metadata flags — including travel expense eligibility, reimbursement triggers, and Bufdir grant reporting categories — directly in the admin portal, the organisation ensures that every activity recorded in the system carries accurate compliance metadata. This reduces grant reporting errors, protects funding eligibility, and shortens the time required to introduce new programme activities from days to minutes, delivering measurable operational efficiency and compliance risk reduction.

The Activity Type Admin Screen is a medium-complexity frontend component with a dependency on both the Activity Type Form Screen and the Activity Type Service, meaning those two deliverables must reach a stable state before end-to-end integration testing can proceed. Development scope includes list rendering, drag-and-drop reorder with persistence, deactivation state management, and three distinct UI states: loading, error, and empty. The reorder feature carries the highest risk, as optimistic UI updates must be reconciled with backend persistence. Test coverage must span full CRUD workflows, reorder edge cases, and deactivation business rules around existing activity records to ensure no regressions at release.

The Activity Type Admin Screen is a frontend UI component that calls loadActivityTypes(orgId) on mount and maintains local list state. Action handlers delegate to the Activity Type Form Screen via onCreateTap() and onEditTap(activityTypeId) for creation and editing flows respectively. The onReorder(fromIndex, toIndex) interface should apply an optimistic UI update immediately and persist the new order through the activity-type-service, with rollback on failure. Async lifecycle is fully covered by displayLoadingState(), displayErrorState(error), and displayEmptyState().

Metadata flag columns require a scannable layout — a table or card grid — to make flag values readable at a glance. The primary data model dependency is activity-type.

Responsibilities

  • Display all activity types for the selected organisation
  • Provide actions to create, edit, and deactivate activity types
  • Show metadata flags (travel eligible, report required, reimbursement trigger, Bufdir category) in a scannable format

Interfaces

loadActivityTypes(orgId)
onCreateTap()
onEditTap(activityTypeId)
onDeactivateTap(activityTypeId)
onReorder(fromIndex, toIndex)
displayLoadingState()
displayErrorState(error)
displayEmptyState()

Relationships

Dependencies (2)

Components this component depends on

Related Data Entities (1)

Data entities managed by this component