|
| 1 | +--- |
| 2 | +'@backstage-community/plugin-announcements': major |
| 3 | +--- |
| 4 | + |
| 5 | +# Major Release: Admin Portal Consolidation |
| 6 | + |
| 7 | +Releases the first major version of the plugin with support for two primary entry points: |
| 8 | + |
| 9 | +- `AnnouncementsPage` - A page that displays all announcements that end users consume |
| 10 | +- `AdminPortal` - A unified portal for managing announcements, categories, and tags |
| 11 | + |
| 12 | +With this major release, we are consolidating all functionality into the admin portal. The previous version provides individual pages for each of these entry points which have now been removed. |
| 13 | + |
| 14 | +As the plugin's adoption grew, more requests to hide UI components based on permissions came in. This decision was made to simplify the plugin and reduce the complexity of the codebase. It also provides a more consistent UX for admin operations and allows for more flexibility in the future. |
| 15 | + |
| 16 | +## Breaking Changes |
| 17 | + |
| 18 | +### Removed Routes |
| 19 | + |
| 20 | +The following route references have been removed and are no longer available: |
| 21 | + |
| 22 | +- `announcementCreateRouteRef` - Use `announcementAdminRouteRef` instead |
| 23 | +- `announcementEditRouteRef` - Use `announcementAdminRouteRef` instead |
| 24 | +- `categoriesListRouteRef` - Categories are now managed within the Admin Portal |
| 25 | +- `tagsListRouteRef` - Tags are now managed within the Admin Portal |
| 26 | + |
| 27 | +### Removed Components |
| 28 | + |
| 29 | +The following components have been removed: |
| 30 | + |
| 31 | +- `CreateAnnouncementPage` - Replaced by `AdminPortal` with Announcements tab |
| 32 | +- `EditAnnouncementPage` - Replaced by `AdminPortal` with Announcements tab |
| 33 | +- `CategoriesPage` - Replaced by `AdminPortal` with Categories tab |
| 34 | +- `TagsPage` - Replaced by `AdminPortal` with Tags tab |
| 35 | +- `NewCategoryDialog` - Category creation is now handled inline within the Categories tab |
| 36 | +- `NewTagDialog` - Tag creation is now handled inline within the Tags tab |
| 37 | + |
| 38 | +### Component Reorganization |
| 39 | + |
| 40 | +Admin-related components have been reorganized into feature-specific directories: |
| 41 | + |
| 42 | +- `Admin/AnnouncementsContent/` - Contains announcement management components |
| 43 | +- `Admin/CategoriesContent/` - Contains category management components |
| 44 | +- `Admin/TagsContent/` - Contains tag management components |
| 45 | + |
| 46 | +## Benefits |
| 47 | + |
| 48 | +- Single entry point for all admin operations (`/announcements/admin`) |
| 49 | +- Less code to maintain - removed duplicate page components |
| 50 | +- Reduction in code duplication - shared form logic consolidated |
| 51 | +- Less code to migrate to `@backstage/ui` and the new frontend system |
| 52 | +- Improved UX with tabbed interface for related admin operations |
| 53 | +- Better permission handling - all admin operations gated through one portal |
| 54 | + |
| 55 | +## Highlights |
| 56 | + |
| 57 | +- The button to create a new announcement has been removed from the announcements page. This button is now only available in the admin portal. |
| 58 | +- The context menu has been updated to only include a link to the admin portal. Links to the individual pages for categories and tags have been removed. |
| 59 | +- All admin operations (create/edit announcements, manage categories, manage tags) are now accessible through a unified tabbed interface in the Admin Portal. |
| 60 | +- The `AnnouncementsCard` component now links to the admin portal instead of the create page. |
| 61 | + |
| 62 | +## Migration Guide |
| 63 | + |
| 64 | +If you have custom integrations or links to the old routes, update them as follows: |
| 65 | + |
| 66 | +**Before:** |
| 67 | + |
| 68 | +```tsx |
| 69 | +import { announcementCreateRouteRef } from '@backstage-community/plugin-announcements'; |
| 70 | +const createLink = useRouteRef(announcementCreateRouteRef); |
| 71 | +``` |
| 72 | + |
| 73 | +**After:** |
| 74 | + |
| 75 | +```tsx |
| 76 | +import { announcementAdminRouteRef } from '@backstage-community/plugin-announcements'; |
| 77 | +const adminLink = useRouteRef(announcementAdminRouteRef); |
| 78 | +``` |
| 79 | + |
| 80 | +All admin functionality is now accessible at the `/admin` route under the announcements root path. |
0 commit comments