Story 5.7: Navigation Integration - Slot Assignment Page
Story: Epic 5, Story 5.7 - Slot Assignment & Progressive Publishing
Purpose
This wireframe documents how organizers navigate TO the dedicated slot assignment page from various entry points in the unified event page (Story 5.8), and how they navigate back after completing timing assignments.
Architecture: Slot assignment is a dedicated separate page at /organizer/events/:eventCode/slot-assignment, NOT a tab within the unified event page.
Navigation Entry Points
Entry Point 1: Speakers Tab
Location: /organizer/events/:eventCode?tab=speakers
Trigger: When event has accepted speakers awaiting timing assignment
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β Back BATbern 2025 Spring Conference β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β [Overview] [βSpeakers] [Venue & Logistics] [Team] [Publishing] [Settings] β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β ββββ SPEAKERS TAB βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β β
β β β οΈ Action Required: Session Timing Assignment β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β β β
β β β π
Next Step: Assign Session Timings β β β
β β β β β β
β β β You have 5 accepted speakers awaiting session timing assignment. β β β
β β β Assign timings to publish the event agenda (Phase 3). β β β
β β β β β β
β β β Progress: 3 of 8 sessions assigned (37%) β β β
β β β πΆ 5 sessions need timing β β β
β β β β β β
β β β [Assign Session Timings β] β β β
β β β β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β
β β Speaker Management Views: [Kanban] [Table] [βSessions] β β
β β β β
β β Sessions Summary: β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β Session β Speaker β Timing β Status β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β Keynote β Dr. Sarah Miller β 09:00-10:30 β β β β β
β β β Workshop 1: Advanced β Prof. John Chen β 11:00-12:30 β β β β β
β β β Workshop 2: Practical β Dr. Maria Lopez β 14:00-15:30 β β β β β
β β β Panel Discussion β (Not assigned) β Not set β β οΈ β β β
β β β Afternoon Workshop β (Not assigned) β Not set β β οΈ β β β
β β β Evening Session β (Not assigned) β Not set β β οΈ β β β
β β β Closing Keynote β Robert Williams β (No timing) β β οΈ β β β
β β β Lightning Talks β Multiple β (No timing) β β οΈ β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
User Action: Click [Assign Session Timings β]
Result: Navigate to /organizer/events/:eventCode/slot-assignment
Visibility Conditions:
- Banner appears when:
speaker_poolhas β₯1 speaker withstatus = 'ACCEPTED'AND session hasstart_time = null - Banner disappears when: All sessions have assigned timings (
start_time β null) - Progress bar updates in real-time as timings are assigned
Entry Point 2: Overview Tab
Location: /organizer/events/:eventCode?tab=overview
Trigger: Available as quick action when event is in planning phase
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β Back BATbern 2025 Spring Conference β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β [βOverview] [Speakers] [Venue & Logistics] [Team] [Publishing] [Settings] β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β ββββ OVERVIEW TAB βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β β
β β Event Status: In Planning Phase 2: Speakers β β β
β β β β
β β ββββ Quick Actions ββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β β β
β β β ββββββββββββββββββββ ββββββββββββββββββββ ββββββββββββββββββββ β β β
β β β β π§ Speaker β β π
Slot β β π’ Publishing β β β β
β β β β Outreach β β Assignment β β Controls β β β β
β β β β β β β β β β β β
β β β β Status: Active β β Status: πΆ In β β Status: Pending β β β β
β β β β β β Progress β β β β β β
β β β β 8 speakers β β β β Blocked until β β β β
β β β β contacted β β 3 of 8 sessions β β timings assigned β β β β
β β β β β β assigned (37%) β β β β β β
β β β β β β β β β β β β
β β β β [Manage] β β [Assign Timings] β β [View Status] β β β β
β β β ββββββββββββββββββββ ββββββββββββββββββββ ββββββββββββββββββββ β β β
β β β β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β
β β ββββ Workflow Progress βββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β β β
β β β Phase 1: Topic Selection β Complete β β β
β β β Phase 2: Speaker Coordination β Complete β β β
β β β Phase 3: Agenda Planning β³ In Progress (awaiting timings) β β β
β β β Phase 4: Publishing β³ Pending β β β
β β β β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
User Action: Click [Assign Timings] button on Slot Assignment card
Result: Navigate to /organizer/events/:eventCode/slot-assignment
Card Status Badges:
- Not Started: Gray badge, β0 of X sessions assignedβ
- In Progress: Orange badge (πΆ), βX of Y sessions assigned (Z%)β
- Complete: Green badge (β), βAll sessions assignedβ
Button States:
- Not Started: [Assign Timings]
- In Progress: [Continue Assignment]
- Complete: [Review Assignments]
Entry Point 3: Publishing Tab
Location: /organizer/events/:eventCode?tab=publishing
Trigger: Validation dashboard shows incomplete session timings
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β Back Publishing Control Center - BATbern 2025 β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β [Overview] [Speakers] [Venue & Logistics] [Team] [βPublishing] [Settings] β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β ββββ PUBLISHING TAB βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β β
β β ββββ Content Validation Dashboard ββββββββββββββββββββββββββββββββββββββββ β β
β β β β β β
β β β Publishing Readiness: 73% βββββββββββββββββββββββββββ β β β
β β β β β β
β β β ββββ Required Items βββββββββββββββββββββββββββββββββββββββββββββββββ β β β
β β β β β β β β
β β β β Component Status Validation Action β β β β
β β β β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β β β
β β β β β Event Title Ready Passed all checks [Edit] β β β β
β β β β β Date & Venue Ready Venue confirmed [View] β β β β
β β β β β Topic Description Ready Within 500 chars [Edit] β β β β
β β β β β Speaker List Ready 8/8 confirmed [Manage] β β β β
β β β β β Abstracts Ready 8/8 validated [Review] β β β β
β β β β β Speaker Photos Ready 8/8 uploaded [Upload] β β β β
β β β β β β β β
β β β β β οΈ Session Timings Partial 5/8 sessions assigned [Assign] β β β β
β β β β ββ Keynote β Ready 09:00-10:30, Room A - β β β β
β β β β ββ Workshop 1 β Ready 11:00-12:30, Room A - β β β β
β β β β ββ Workshop 2 β Ready 14:00-15:30, Room B - β β β β
β β β β ββ Panel β Missing No start/end time [Assign] β β β β
β β β β ββ Afternoon WS β Missing No start/end time [Assign] β β β β
β β β β ββ Evening Session β Missing No start/end time [Assign] β β β β
β β β β ββ Closing Keynote β οΈ Partial Speaker assigned, [Assign] β β β β
β β β β no timing β β β β
β β β β ββ Lightning Talks β οΈ Partial Speakers assigned, [Assign] β β β β
β β β β no timing β β β β
β β β β β β β β
β β β β β οΈ Agenda Times Blocked Cannot publish Phase 3 [Assign] β β β β
β β β β until all timings set β β β β
β β β β β β β β
β β β β β Registration Link Ready Tested & working [Test] β β β β
β β β β β β β β
β β β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β β
β β β β β β
β β β β οΈ Warning: Phase 3 (Agenda) publish is blocked β β β
β β β 3 sessions require timing assignment before Agenda can be published β β β
β β β β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β
β β ββββ Publishing Controls βββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β β β
β β β Current Phase: Phase 2 (Speakers) - Published β β β
β β β Next Phase: Phase 3 (Agenda) - Ready when timings complete β β β
β β β β β β
β β β [Publish Phase 1] β [Publish Phase 2] β [Publish Phase 3] π β β β
β β β (Topic) (Speakers) (Blocked) β β β
β β β β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
User Actions:
1. Click [Assign] button on "Session Timings" row β Navigate to /organizer/events/:eventCode/slot-assignment
2. Click [Assign] button on specific sub-item β Navigate with session focus parameter
Example: /organizer/events/:eventCode/slot-assignment?session=panel-discussion
Result: Opens dedicated slot assignment page
Blocking Validation Logic:
- Phase 3 (Agenda) [Publish] button is disabled (grayed out with lock icon π) when ANY session has
start_time = null OR end_time = null OR room = null - Error message displayed: βCannot publish Agenda phase. X sessions require timing assignment.β
- [Assign] button appears on validation row, linking to slot assignment page
Return Navigation
Navigation Header (on Slot Assignment Page)
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Event Management > BATbern 2025 > Slot Assignment [Back to Event] [Help] β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β Assign Session Timings - BATbern 2025 Spring Conference β
β β
β [Full slot assignment interface here - see story-5.7-slot-assignment-page.md] β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
User Actions:
1. Click breadcrumb "BATbern 2025" β Navigate to /organizer/events/:eventCode (Overview tab)
2. Click [Back to Event] button β Navigate to /organizer/events/:eventCode (last active tab)
Breadcrumb Navigation:
- Event Management: Links to
/organizer/events(event list) - BATbern 2025: Links to
/organizer/events/:eventCode(returns to Overview tab) - Slot Assignment: Current page (no link)
[Back to Event] Button Behavior:
- If user came from Speakers tab: Returns to
/organizer/events/:eventCode?tab=speakers - If user came from Overview tab: Returns to
/organizer/events/:eventCode?tab=overview - If user came from Publishing tab: Returns to
/organizer/events/:eventCode?tab=publishing - Default (direct access): Returns to
/organizer/events/:eventCode(Overview tab) - Preserves last active tab using browser session storage
Success State Navigation
Trigger: When all sessions have assigned timings (100% complete)
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Event Management > BATbern 2025 > Slot Assignment [Back to Event] [Help] β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β ββββ SUCCESS βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β β
β β β All Session Timings Assigned! β β
β β β β
β β π Congratulations! All 8 sessions now have assigned timings. β β
β β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β β β
β β β Sessions Assigned: 8 of 8 (100%) β β β
β β β Average Match Score: 82% (Strong matches) β β β
β β β Conflicts Resolved: All clear β β β
β β β β β β
β β β Next Step: Proceed to Publishing β β β
β β β β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β
β β What's Next? β β
β β β’ Review the full agenda in the Publishing tab β β
β β β’ Validate all content requirements are met β β
β β β’ Publish Phase 3 (Agenda) to make the schedule public β β
β β β β
β β [View Publishing Options β] [Review Assignments] [Back to Event] β β
β β β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββ SESSION TIMELINE (Read-Only Summary) βββββββββββββββββββββββββββββββββββββ β
β β β β
β β June 10, 2025 β β
β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β Room A Room B Main Hall β β β
β β β 09:00 ββββββββββββββββ βββββββββββββββ ββββββββββββββββββββββββ β β β
β β β β β Keynote β β β β β β β β
β β β 10:30 β S. Miller β β β β β β β β
β β β ββββββββββββββββ βββββββββββββββ ββββββββββββββββββββββββ β β β
β β β 11:00 ββββββββββββββββ βββββββββββββββ β β β
β β β β β Workshop 1 β β β Workshop 2β β β β
β β β 12:30 β J. Chen β β M. Lopez β β β β
β β β ββββββββββββββββ βββββββββββββββ β β β
β β β [All sessions assigned - see full timeline in Publishing] β β β
β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
User Actions:
1. Click [View Publishing Options β] β Navigate to /organizer/events/:eventCode?tab=publishing
2. Click [Review Assignments] β Scroll to session timeline on current page
3. Click [Back to Event] β Navigate to last active tab (session storage)
Success State Features:
- Celebration Banner: Green background with checkmark icon
- Summary Statistics: Sessions assigned, average match score, conflicts status
- Next Steps Guidance: Clear call-to-action for next workflow phase
- Primary CTA: [View Publishing Options β] - Most prominent button, links to Publishing tab
- Secondary Actions: Review assignments (stay on page), return to event (breadcrumb)
- Read-Only Timeline: Collapsed view of assigned sessions, full details in Publishing tab
Navigation Flow Diagram
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Unified Event Page β
β /organizer/events/:eventCode β
β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β β Overview β β Speakers β β Team β β Publishing β β
β β Tab β β Tab β β Tab β β Tab β β
β ββββββββ¬ββββββββ ββββββββ¬ββββββββ ββββββββββββββββ ββββββββ¬ββββββββ β
β β β β β
β β β β β
β β [Assign β [Assign Session β [Assign β
β β Timings] β Timings β] β Timings] β
β β (Quick Action) β (Banner) β (Validation)
β β β β β
β βββββββββββββββββββ΄βββββββββββββββββββββββββββββββββββββ β
β β β
βββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββ
β Slot Assignment Page β
β (Dedicated Full Page) β
β β
β /organizer/events/:eventCode/ β
β slot-assignment β
β β
β Features: β
β β’ Speaker pool sidebar β
β β’ Session timeline grid β
β β’ Drag-drop interface β
β β’ Preference matching β
β β’ Conflict detection β
β β
βββββββββββββββ¬ββββββββββββββββββββ
β
βββββββββββββββ΄ββββββββββββββ
β β
βΌ βΌ
βββββββββββββββββββββββββ βββββββββββββββββββββββββββ
β Return Navigation β β Success State β
β β β β
β [Back to Event] β β β All timings assigned β
β Breadcrumb β β β
β β β [View Publishing β
β β Last active tab β β Options β] β
β (session storage) β β β
βββββββββββββββββββββββββ βββββββββββββββ¬ββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββ
β Publishing Tab β
β β
β β’ Validation complete β
β β’ Phase 3 unlocked β
β β’ Ready to publish β
β β
β [Publish Agenda] β
βββββββββββββββββββββββββββββ
URL State Management
Entry Point URLs
From Speakers Tab:
Current: /organizer/events/batbern-2025?tab=speakers
Action: Click [Assign Session Timings β]
Target: /organizer/events/batbern-2025/slot-assignment
Session Storage: { lastActiveTab: 'speakers' }
From Overview Tab:
Current: /organizer/events/batbern-2025?tab=overview
Action: Click [Assign Timings] on Slot Assignment card
Target: /organizer/events/batbern-2025/slot-assignment
Session Storage: { lastActiveTab: 'overview' }
From Publishing Tab:
Current: /organizer/events/batbern-2025?tab=publishing
Action: Click [Assign] on Session Timings validation row
Target: /organizer/events/batbern-2025/slot-assignment
Session Storage: { lastActiveTab: 'publishing' }
Direct Access (bookmark, external link):
Direct: /organizer/events/batbern-2025/slot-assignment
Session Storage: { lastActiveTab: null } β defaults to 'overview'
Optional Session Focus
From Publishing Tab Sub-Item:
Current: /organizer/events/batbern-2025?tab=publishing
Action: Click [Assign] on specific session (e.g., "Panel Discussion")
Target: /organizer/events/batbern-2025/slot-assignment?session=panel-discussion
Behavior: Auto-scroll to Panel Discussion session in timeline grid, highlight with border
Return Navigation URLs
[Back to Event] Button:
From Slot Assignment: /organizer/events/batbern-2025/slot-assignment
Action: Click [Back to Event]
Target: /organizer/events/batbern-2025?tab={lastActiveTab}
Breadcrumb βBATbern 2025β:
From Slot Assignment: /organizer/events/batbern-2025/slot-assignment
Action: Click "BATbern 2025" breadcrumb
Target: /organizer/events/batbern-2025 (defaults to Overview tab)
Success State [View Publishing Options β]:
From Slot Assignment: /organizer/events/batbern-2025/slot-assignment
Action: Click [View Publishing Options β]
Target: /organizer/events/batbern-2025?tab=publishing
Session Storage: Updated { lastActiveTab: 'publishing' }
Implementation Notes
Session Storage Schema
interface SlotAssignmentNavigation {
lastActiveTab: 'overview' | 'speakers' | 'venue' | 'team' | 'publishing' | 'settings' | null;
focusSession?: string; // Session identifier for auto-scroll
returnUrl?: string; // Full return URL with query params
}
// Storage key
const NAV_STORAGE_KEY = 'batbern:slot-assignment-nav';
Navigation State Management
On Entry to Slot Assignment Page:
// Store current location before navigating
const storeNavigationContext = (currentTab: string) => {
const navContext: SlotAssignmentNavigation = {
lastActiveTab: currentTab,
returnUrl: window.location.href
};
sessionStorage.setItem(NAV_STORAGE_KEY, JSON.stringify(navContext));
// Navigate to slot assignment
navigate(`/organizer/events/${eventCode}/slot-assignment`);
};
On Return from Slot Assignment Page:
// Retrieve navigation context
const getNavigationContext = (): SlotAssignmentNavigation => {
const stored = sessionStorage.getItem(NAV_STORAGE_KEY);
return stored ? JSON.parse(stored) : { lastActiveTab: 'overview' };
};
// Navigate back
const handleBackToEvent = () => {
const { lastActiveTab } = getNavigationContext();
navigate(`/organizer/events/${eventCode}?tab=${lastActiveTab || 'overview'}`);
sessionStorage.removeItem(NAV_STORAGE_KEY); // Clean up
};
Success State Navigation:
// Navigate to Publishing tab after completion
const handleViewPublishingOptions = () => {
navigate(`/organizer/events/${eventCode}?tab=publishing`);
sessionStorage.removeItem(NAV_STORAGE_KEY); // Clean up
// Optional: Show toast notification
toast.success('All session timings assigned! Ready to publish Agenda phase.');
};
Auto-Scroll to Focused Session
// If session parameter present in URL
const { session: focusSessionId } = useSearchParams();
useEffect(() => {
if (focusSessionId) {
const sessionElement = document.getElementById(`session-${focusSessionId}`);
if (sessionElement) {
sessionElement.scrollIntoView({ behavior: 'smooth', block: 'center' });
sessionElement.classList.add('highlight-pulse'); // Add highlight animation
// Remove highlight after 2 seconds
setTimeout(() => {
sessionElement.classList.remove('highlight-pulse');
}, 2000);
}
}
}, [focusSessionId]);
Accessibility Considerations
Keyboard Navigation:
Tabto navigate between buttonsEnterorSpaceto activate buttonsEscapeto trigger [Back to Event] (breadcrumb equivalent)- Focus management: Return focus to originating button when navigating back
Screen Reader Announcements:
<!-- On entry to slot assignment page -->
<div role="alert" aria-live="polite">
Navigated to Slot Assignment page. 5 of 8 sessions awaiting timing assignment.
</div>
<!-- On success state -->
<div role="alert" aria-live="polite">
Success! All 8 session timings have been assigned. You can now proceed to publishing.
</div>
<!-- On return navigation -->
<div role="alert" aria-live="polite">
Returned to {Tab Name} tab. Your timing assignments have been saved.
</div>
ARIA Labels:
<button aria-label="Assign session timings to all unassigned sessions">
Assign Session Timings β
</button>
<button aria-label="Return to BATbern 2025 event page">
Back to Event
</button>
<button aria-label="View publishing options in Publishing tab">
View Publishing Options
</button>
Responsive Design
Desktop (β₯1200px)
- Full navigation header with breadcrumb visible
- [Back to Event] button always visible in top-right
- Success banner spans full width with all three buttons horizontal
Tablet (768px - 1199px)
- Breadcrumb collapses to ββ¦ > Slot Assignmentβ
- [Back to Event] button remains visible
- Success banner buttons stack vertically (2 columns)
Mobile (<768px)
- Breadcrumb hidden, replaced with [β Back] icon button
- Success banner buttons stack vertically (1 column)
- Primary CTA [View Publishing Options β] full-width, prominent
Edge Cases
Concurrent Editing
Scenario: User A is on slot assignment page. User B (different organizer) also assigns timings simultaneously.
Behavior:
- Real-time sync via WebSocket or polling
- Progress bar updates live
- If User B completes all assignments while User A still working:
- User A sees success banner appear dynamically
- Toast notification: βAnother organizer just completed the timing assignments!β
- Session grid updates to show all assigned timings
Navigation During Unsaved Changes
Scenario: User has dragged a speaker to a slot but not confirmed/saved. Clicks [Back to Event].
Behavior:
- Confirmation modal appears:
β οΈ Unsaved Changes You have 1 pending timing assignment that has not been saved. What would you like to do? [Save & Return] [Discard Changes] [Cancel] - [Save & Return]: Saves pending assignment, then navigates back
- [Discard Changes]: Reverts assignment, navigates back
- [Cancel]: Stays on slot assignment page
Deep Linking
Scenario: User receives a direct link to slot assignment page via email or bookmark.
URL: https://batbern.ch/organizer/events/batbern-2025/slot-assignment
Behavior:
- Page loads normally (no authentication redirect issues)
- Session storage
lastActiveTabisnull - [Back to Event] button defaults to Overview tab
- No focus session highlight (no
?session=parameter)
Testing Checklist
Navigation Entry Points
Return Navigation
Success State
URL State
Edge Cases
Related Wireframes
- story-5.7-slot-assignment-page.md: Main slot assignment interface
- story-2.3-basic-publishing-engine.md: Publishing tab with session timing validation
- story-5.8-unified-event-page.md: Unified event page with tab navigation (Story 5.8)
Change Log
| Date | Version | Description | Author |
|---|---|---|---|
| 2025-12-25 | 1.0 | Initial navigation integration wireframe | Sally (UX Expert) |