Discussion Forum
๐
This is a private forum for safeguarding and sensitive welfare concerns. Posts in this scope are visible only to you and designated safeguarding staff. You may choose to post anonymously.
๐ต Anonymous ยท 25 May 2026
๐ฌ 1 reply
Screen Flow โ UC-FRM.01
โ Forum List
โ select thread
Forum Thread โ
โ report post
Report Content Form โ
โ submit/cancel โ back to thread
Spec notes โ SCR-PLY.08 Forum List
Screen: SCR-PLY.08 โ Forum List
UC: UC-FRM.01 โ Discuss in Forum
Status: Detailed
Brief: Forum thread list screen. Displays threads sorted by most recent activity (default), a search box, filter by author or "unanswered only", scope tab bar (this course / cohort / system-wide / safeguarding โ shows only scopes the learner has permission to see), and a "New thread" button. The new thread form is inline on the same page. For scope = safeguarding, adds a "Post anonymously" option.
Regions: Scope selector ยท Thread list controls ยท Thread list ยท New thread form
Fields:
| # | Field | Type | Notes |
|---|---|---|---|
| 1 | scope_tab | enum | course / cohort / system_wide / safeguarding โ only tabs user has permission for are shown |
| 2 | search_query | text | Filters thread_title by keyword โ client-side or server-side |
| 3 | filter_mode | enum | all / unanswered_only / my_threads |
| 4 | thread_list | list | Each item: thread_title, author_name (or "Anonymous"), created_at, reply_count, view_count, unread_indicator, is_pinned |
| 5 | new_thread_title | text | Visible when new_thread_form = open |
| 6 | new_thread_body | html | Rich text; visible when new_thread_form = open |
| 7 | new_thread_anonymous | boolean | Visible only when scope_tab = safeguarding AND new_thread_form = open |
| 8 | safeguarding_notice | boolean | Visible when scope_tab = safeguarding โ privacy explanation banner |
| 9 | is_pinned_indicator | boolean | Pin icon shown per thread when is_pinned = true |
| 10 | unread_badge | boolean | Per thread โ new replies since last visit |
| 11 | author_display | text | "Anonymous" when is_anonymous = true; otherwise User.display_name |
| 12 | pagination_or_infinite_scroll | โ | Pagination approach TBD โ design phase |
| 13 | submit_error_notice | boolean | Visible in AF-5A โ thread post failed |
| 14 | scope_privacy_label | text | Short description of who can see posts in the current scope |
Actions:
| # | Action | Enabled when |
|---|---|---|
| 1 | select_scope_tab | always โ switches visible thread list |
| 2 | select_thread | always โ navigates to SCR-PLY.09 |
| 3 | open_new_thread_form | always โ shows inline form |
| 4 | submit_new_thread | new_thread_title not empty AND new_thread_body not empty |
| 5 | cancel_new_thread | always โ hides form, clears draft |
Additional requirements:
- Only scope tabs the learner has access to are visible (e.g., safeguarding tab only shown if FEAT-09.05 is enabled for this course).
- Pinned threads always appear at the top, regardless of sort order.
- Thread list updates in real-time (or near real-time) when another learner posts โ polling or WebSocket TBD.