2.6 KiB
2.6 KiB
MODIFIED Requirements
Requirement: Portal Navigation SHALL Group Entries by Functional Drawers
The portal SHALL group navigation entries into functional drawers as defined in the drawers configuration of page_status.json, rendered by the active portal runtime (server template or SPA shell) without changing drawer assignment semantics.
Scenario: Drawer grouping visibility
- WHEN users open the portal
- THEN the sidebar SHALL display drawers in the order defined by each drawer's
orderfield - THEN each drawer SHALL show only the pages assigned to it via
drawer_id, sorted by each page'sorderfield
Scenario: Admin-only drawer visibility
- WHEN a drawer has
admin_only: trueand the current user is not admin - THEN the drawer and all its pages SHALL NOT be rendered in the sidebar
Scenario: Empty drawer visibility
- WHEN a drawer has no visible pages (all filtered out by page visibility checks)
- THEN the drawer group title SHALL NOT be rendered
Requirement: Existing Page Behavior SHALL Remain Compatible
The portal navigation refactor SHALL preserve existing target routes while replacing iframe-based page embedding with route-driven navigation.
Scenario: Route continuity
- WHEN a user selects an existing page entry from a drawer
- THEN the corresponding original route SHALL be loaded without changing page business logic behavior
Scenario: Direct navigation without iframe
- WHEN a sidebar item is clicked
- THEN the browser SHALL navigate to the page's route in the same window
- THEN the portal SHALL NOT render or activate iframe elements for page content
ADDED Requirements
Requirement: Drawer Configuration and Visibility SHALL Remain Deterministic During Migration
Migration to SPA navigation SHALL preserve the effective drawer visibility outcomes defined by current drawers + pages + status + admin_only rules.
Scenario: Non-admin visible drawer pages remain stable
- WHEN a non-admin user opens the portal after migration
- THEN only pages with released visibility in non-admin drawers SHALL be visible
- THEN admin-only drawers SHALL remain hidden
Scenario: Admin visible drawer pages remain stable
- WHEN an admin user opens the portal after migration
- THEN all pages allowed by drawer assignment and page status rules SHALL remain visible
Scenario: Duplicate order values resolve deterministically
- WHEN multiple pages or drawers share the same
ordervalue - THEN rendering order SHALL still be deterministic and repeatable across requests