modcomms/frontend/components
Vadym Samoilenko 447c4b2a95 Add CSV export of campaign data for super_admin and oversight_admin
Adds a server-side CSV export covering all campaign, proof, and version
data including agent RAG statuses. The export respects the active agency
filter so oversight admins can scope the download to a single agency.

- backend: `CampaignRepository.get_export_rows()` — flat join across
  Campaign → Proof → ProofVersion with Agency and User, extracts agent
  RAG statuses from the `agent_review` JSONB column
- backend: `GET /api/export/campaigns-csv` endpoint gated to
  super_admin / oversight_admin, streams a dated CSV file
- frontend: `apiService.downloadCampaignsCsv(agencyId?)` — fetches blob
  and triggers browser download
- frontend: threads `selectedAgencyId` prop from App → Campaigns →
  CampaignList so the export uses the active filter
- frontend: Export CSV button in CampaignList header, visible only to
  super_admin / oversight_admin, with spinner while downloading

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 11:35:24 +00:00
..
icons Fix PDF export: switch to browser print, fix page breaks and bullet alignment 2026-03-05 13:06:12 +00:00
AgencyFilterBar.tsx Restyle full application from Barclays to Oliver Agency brand 2026-03-03 10:16:26 +00:00
Analytics.tsx Analytics AI summary: restore thick left sky accent border (border-l-8) 2026-03-03 15:51:14 +00:00
AssetPreview.tsx Restyle full application from Barclays to Oliver Agency brand 2026-03-03 10:16:26 +00:00
Auditing.tsx Restyle full application from Barclays to Oliver Agency brand 2026-03-03 10:16:26 +00:00
Campaigns.tsx Add CSV export of campaign data for super_admin and oversight_admin 2026-03-19 11:35:24 +00:00
ChecksOverview.tsx Restyle full application from Barclays to Oliver Agency brand 2026-03-03 10:16:26 +00:00
CopyGenAI.tsx Restyle full application from Barclays to Oliver Agency brand 2026-03-03 10:16:26 +00:00
CreateCampaignModal.tsx Add azure border to all modal containers per Oliver design 2026-03-03 10:21:59 +00:00
CreateProjectModal.tsx Add azure border to all modal containers per Oliver design 2026-03-03 10:21:59 +00:00
FeedbackReport.tsx Add azure border to all modal containers per Oliver design 2026-03-03 10:21:59 +00:00
Header.tsx Restyle full application from Barclays to Oliver Agency brand 2026-03-03 10:16:26 +00:00
Hero.tsx Restyle full application from Barclays to Oliver Agency brand 2026-03-03 10:16:26 +00:00
KnowledgeBase.tsx Restyle full application from Barclays to Oliver Agency brand 2026-03-03 10:16:26 +00:00
LoadingVisual.tsx Restyle full application from Barclays to Oliver Agency brand 2026-03-03 10:16:26 +00:00
Login.tsx Add azure border to all modal containers per Oliver design 2026-03-03 10:21:59 +00:00
PDFReport.tsx Fix PDF logo URL to include Vite base path in production 2026-03-16 14:11:12 +00:00
Profile.tsx Restyle full application from Barclays to Oliver Agency brand 2026-03-03 10:16:26 +00:00
Projects.tsx Add azure border to all modal containers per Oliver design 2026-03-03 10:21:59 +00:00
ProofPreview.tsx Restyle full application from Barclays to Oliver Agency brand 2026-03-03 10:16:26 +00:00
ProofTypeManager.tsx Restyle full application from Barclays to Oliver Agency brand 2026-03-03 10:16:26 +00:00
ProofUpload.tsx Restyle full application from Barclays to Oliver Agency brand 2026-03-03 10:16:26 +00:00
Settings.tsx Settings: fix sub-channel dropdown and Add button styling 2026-03-03 16:10:10 +00:00
Sidebar.tsx Fix LlamaParse 401 + update logo to v5 2026-03-16 12:22:31 +00:00
StatusDashboard.tsx Restyle full application from Barclays to Oliver Agency brand 2026-03-03 10:16:26 +00:00
ToggleSwitch.tsx Restyle full application from Barclays to Oliver Agency brand 2026-03-03 10:16:26 +00:00
UserManagement.tsx Add azure border to all modal containers per Oliver design 2026-03-03 10:21:59 +00:00
WIPReviewer.tsx Restyle full application from Barclays to Oliver Agency brand 2026-03-03 10:16:26 +00:00