Unified Content Management, Drafting System & UI Overhaul
This is a major architectural release for the dashboard, introducing a comprehensive content drafting system and a ground-up refactoring of the content and local ad management sections. The changes centralize state management, introduce powerful filtering capabilities, and significantly improve the overall user experience and UI consistency.

📝 Content Drafting & Unified Management
A full drafting system has been implemented for headlines, topics, and sources. The entire content management architecture has been consolidated to support this new workflow and streamline state.
- Drafting System: Users can now save content as a draft before publishing. Dedicated pages have been added to manage, edit, publish, or delete drafts. [#80]
- Consolidated Content BLoC: The separate BLoCs for draft, archived, and active content have been removed and their logic consolidated into a single, robust
ContentManagementBloc
. [#91] - Dedicated Filter BLoCs: New, dedicated BLoCs (
HeadlinesFilterBloc
,TopicsFilterBloc
, etc.) now manage the state of filtering criteria, decoupling filter logic from the main content BLoC. [#91] - Advanced Filter Dialog: A new
FilterDialog
has been implemented, providing a comprehensive interface for users to filter content by search query, status, sources, topics, and more. [#91] - Centralized Undo/Deletion: The
PendingDeletionsService
has been integrated directly into the central BLoCs for content and local ads, providing a consistent and robust optimistic "undo" experience for all deletions. [#79, #87]
📢 Local Ads Management Overhaul
The local ads management section has been completely redesigned for a more organized, scalable, and feature-rich user experience.
- Modular Ad Type Pages: The previous single table has been replaced with dedicated pages for Native, Banner, Interstitial, and Video ad types, providing a more organized interface. [#93]
- Save as Draft for Ads: The ad creation workflow now supports saving ads as a draft or publishing them directly. [#93]
- Ad Filtering: A new
FilterLocalAdsBloc
and a dedicated filter dialog have been introduced, allowing users to search and filter local ads by title/URL and status. [#93] - Simplified Ad Status: The ability for users to manually set a
contentStatus
during ad creation/update has been removed. New ads are now alwaysactive
by default, simplifying the UI and BLoC logic. [#88]
🎨 UI/UX & Ad Configuration Refinements
Significant changes have been made to improve the application's UI consistency, navigation, and the flexibility of ad configuration.
- AppShell Refactor: The main app shell was refactored to remove the
AppBar
and integrate navigation actions (Settings, Sign Out) directly into theAdaptiveScaffold
's navigation rail for a more modern UI. [#92] - New
AboutIcon
Widget: A new reusable widget has been introduced to display contextual information about a page or section in a dialog, improving user guidance. [#92] - Role-Based Ad Configuration: Ad settings are now explicitly configurable per user role (Guest, Standard, Premium). The previously hardcoded ad-free experience for premium users has been removed, making their ad settings fully configurable. [#85]
- Streamlined Tables: The redundant "status" column has been removed from all main content management tables, and action buttons in archive views have been consolidated into a
PopupMenuButton
to prevent UI overflow. [#89, #90]
🛠️ Project Health & Maintenance
- Dependency Pinning: All git-based dependencies in
pubspec.yaml
have been pinned to specific commit hashes to ensure consistent and reproducible builds. [#86] - README Overhaul: The main
README.md
file was completely restructured with collapsible sections to better organize and showcase the dashboard's features. [#78]