User Interface medium complexity frontendmobiledesktop
1
Dependencies
0
Dependents
0
Entities
0
Integrations

Description

UI panel for triggering CSV and Excel exports of org-level data for Bufdir grant reporting and internal governance. Allows selecting the org scope (entire org or specific chapter), report period, and data type (activities, reimbursements, user roster). Shows export progress and download link on completion.

Feature: Organisation Admin Portal

admin-export-panel

Summaries

The Admin Export Panel directly enables compliance with Bufdir grant reporting requirements by giving administrators self-service access to structured data exports without IT intervention. By supporting CSV and Excel formats scoped to org, chapter, time period, and data type, it eliminates manual data extraction bottlenecks and reduces the risk of reporting errors caused by stale or misformatted data. This capability is essential for retaining grant funding and reduces the operational burden on staff who would otherwise compile reports manually each reporting cycle.

Admin Export Panel has a single dependency on admin-export-service, making it relatively isolated and suitable for parallel development once that service's API contract is finalized. Medium complexity is driven by the need to handle three export data types (activities, reimbursements, user roster), two formats (CSV, Excel), and progress state during potentially long-running exports. A key delivery risk is async export job latency — the panel must gracefully handle delays and failures without blocking the UI. Testing should cover partial failures, large dataset pagination, and download link expiry.

Cross-platform file-sharing behavior (mobile share sheet vs. desktop download) needs platform-specific QA.

Admin Export Panel is a modal-style UI component that drives an async export workflow via the admin-export-service. The show(defaultScope) interface accepts a pre-configured scope for context-aware defaults. onExportConfigured(ExportConfig) captures user selections and onExportTriggered() initiates the async job. Progress display should poll or subscribe to a job status endpoint exposed by the service layer.

onExportCompleted(filePath) receives either a signed download URL (web/desktop) or triggers a native share sheet (mobile). onExportFailed(error) should present retry affordances without clearing the config. ExportConfig should be a typed value object covering scope, dateRange, dataType, and format fields. Validate config completeness client-side before triggering to avoid unnecessary backend calls.

Responsibilities

  • Present export configuration options (scope, period, data type)
  • Trigger export service and display progress
  • Provide download link or share sheet for completed export file

Interfaces

show(defaultScope)
onExportConfigured(ExportConfig config)
onExportTriggered()
onExportCompleted(filePath)
onExportFailed(error)
dismiss()

Relationships

Dependencies (1)

Components this component depends on