1.2.1 โ Principles overview
Video
In progress ยท 8:02 / 12:34
Assignment
Governance Analysis โ Policy Brief
Attempt 1 of 2
Instructions
Write a 500โ800 word policy brief analyzing one governance principle and its application in Lao PDR public administration.
This is the last content item in the course. Submit below, then click "Finish Course".
โ Previous
Saved โ
Screen Flow (UC-PLY.01):
๐ All Assignments (SCR-PLY.11) โ go_to_assignments ยท UC-PLY.09
โ Close โ window.close() โ My Learning
โ SCR-PLY.01 Lesson Player (current)
Spec notes โ SCR-PLY.01 Lesson Player / UC-PLY.01 Consume Lesson
Identity
- Screen: SCR-PLY.01 โ Lesson Player
- Use case: UC-PLY.01 โ Consume Lesson
Brief description
This screen is the sole screen in UC-PLY.01's flow (SCR-PLY.02 Course Overview was retired 2026-07-07 โ first-time learners now open the first content item directly here instead). Returning learners land on their most recently accessed item. A read-only preview of the same course content (no lock checks, no progress tracking) is available separately via SUC-PLY-01, invoked from UC-CCM.06, UC-LMS.11, or UC-LMS.19 โ that flow is generated independently under its own host UC.
Regions
- Navigation tree
- Active content info
- Forum tab (shown when show_forum = true)
- Content viewer
- Viewer controls
- Sequential navigation
- Completion feedback
- Resources panel (pinned bottom of sidebar)
- Item supplementary links (below content viewer)
- Completion dialog (shown after "Finish Course" at the last content item)
Fields
| # | Name | Type | Region | Data ref | Notes |
|---|---|---|---|---|---|
| 1 | nav_item_state | enum | Navigation tree | LessonAttempt.completion_status | {not_started, in_progress, completed, sequential_locked, quiz_locked} |
| 2 | nav_active_item | text | Navigation tree | LessonAttempt.lesson_id | session.current_lesson_id |
| 3 | content_item_title | text | Active content info | CourseDraftResource.title | read-only |
| 4 | content_item_type | enum | Active content info | CourseDraftResource.type | {html, image, video, pdf, docx, xlsx, external_link, scorm, quiz, assignment} |
| 5 | locale_toggle | enum | Active content info | User.locale_pref | fallback: lo; editable |
| 6 | content_source | text | Content viewer | CourseDraftResource.content_ref | read-only |
| 7 | resume_position | text | Content viewer | LessonAttempt.progress_measure | SCORM: suspend_data |
| 8 | completion_pct | number | Viewer controls | LessonAttempt.progress_measure | 0โ100 |
| 9 | save_status | enum | Viewer controls | โ | {idle, saving, saved, offline_buffered, error} |
| 10 | caption_lang | enum | Viewer controls | โ | visible when type=video; {off, lo, en} |
| 11 | playback_speed | enum | Viewer controls | โ | visible when type=video; {0.5, 0.75, 1.0, 1.25, 1.5, 2.0} |
| 12 | show_transcript | boolean | Viewer controls | โ | visible when type=video |
| 16 | scorm_completion_status | enum | Viewer controls | LessonAttempt.completion_status | visible when type=scorm |
| 17 | completion_notification | boolean | Completion feedback | โ | visible when true (auto-complete triggered) |
| 18 | nav_item_type_label | enum | Navigation tree | CourseDraftResource.type | visible when item.level=content_item; rendered as human-readable label |
| 19 | nav_item_duration | text | Navigation tree | CourseDraftResource.duration_estimate | visible when content_item && duration != null (video/scorm/quiz) |
| 20 | show_forum | boolean | Forum tab | CourseDraftBranch.has_forum | visible when true; frozen in CourseVersion.snapshot |
| 21 | supplementary_list | list | Resources panel | computed | course-wide + item-anchored entries for every content item, listed once in sequence order |
| 22 | item_supplementary_links | list | Item supplementary links | computed | visible when current_item_has_supplementary=true; shows only resources anchored to the current content item |
| 23 | content_description | text | Content viewer | CourseDraftResource.description | visible when type in [image, pdf, docx, xlsx, external_link] AND description != null |
| 24 | completion_dialog_visible | boolean | Completion dialog | computed | visible when true โ opens after "Finish Course" at the last content item in the course |
Actions
select_content_item"Select content item" โ enabled when nav_item_state in [not_started, in_progress, completed]; routes by type ยท UC-PLY.01-M-2expand_collapse_module"Expand / Collapse module" โ alwaysswitch_locale"LO / EN" โ alwaysplay_pause"Play / Pause" โ video only ยท UC-PLY.01-M-4seek"Seek" โ video only ยท UC-PLY.01-M-4toggle_fullscreen"Full screen" โ video only (F)toggle_captions"Captions" โ video only (C)change_speed"Speed" โ video onlytoggle_transcript"Transcript" โ video onlyopen_external_link"Open Link โ" โ external_link only; opens in new tab ยท UC-PLY.01-M-4download_file"Download" โ enabled when type in [image, pdf, docx, xlsx] ยท UC-PLY.01-M-4retry_load"Retry" โ enabled when save_status=error ยท UC-PLY.01-A-3D-2close_player"โ Close" โ always ยท UC-PLY.01-M-7 ยท calls window.close()go_to_next_item"Next โ" โ enabled when next item exists && not locked; "Finish course" at end of course opens the completion dialog instead of closing the tab directly ยท UC-PLY.01-M-7go_to_prev_item"โ Previous" โ enabled when prev item exists ยท UC-PLY.01-M-7open_forum"Forum" โ enabled when show_forum=true ยท UC-FRM.01open_supplementary_resource"Open resource" โ triggers UC-PLY.01-A-1A-1; html/image/video shown in player area, external link and document open in new tab; no completion trackinggo_to_assignments"All Assignments" โ opens SCR-PLY.11 Course Assignment Overview; triggers UC-PLY.09-M-1dialog_back_to_my_learning"Back to My Learning" โ enabled when completion_dialog_visible=true; closes the player tab, returns to My Learning (SCR-LMS.26) ยท UC-PLY.01-M-7dialog_view_grade_result"View Grade Result" โ enabled when completion_dialog_visible=true; closes the player tab, opens Grade Result page ยท UC-LMS.10 ยท UC-PLY.01-M-7dialog_review_lesson"Review Lesson" โ enabled when completion_dialog_visible=true; dismisses the dialog, keeps the player tab open ยท UC-PLY.01-M-7
Additional requirements
- Sidebar auto-expands only the module containing the active content item; learner may manually expand any module at any time.
- Locked items show lock icon with tooltip: sequential_locked โ "Complete all previous content items first"; quiz_locked โ "Pass the quiz in this lesson first". Lock removed immediately without page refresh when condition met. [SS-PLY.06]
- save_status displays real-time state (idle / saving / saved / offline_buffered / error). Transitions saved โ idle after 3 s. Offline: "Saved locally โ will sync when reconnected". [SS-PLY.02]
- Resume position must be applied within 1 s of content ready โ learner must not see content starting at 0 before jumping to saved position. If resume_position > 95%, prompt "Start over from the beginning?" [SS-PLY.02]
- Lao Unicode must be supported in caption tracks, transcripts, and UI chrome. Switching LO โ EN re-renders UI immediately without stopping video playback or resetting position. [SS-PLY.01]
- Completion: (1) automatic โ video โฅ 90% watched, SCORM signals completion; (2) on Next โ click โ html / pdf / docx / xlsx / image / external_link (when is_tracked=true). Both modes show "Completed โ" and highlight next item. "Next โ" changes to primary style. [SS-PLY.06]
- Keyboard shortcuts for video: Space = play/pause, โ / โ = ยฑ5 s, F = full screen, C = captions, M = mute. Must not fire when focus is inside an input field.
- If content fails to load, display error overlay with Retry button (action 12). Progress saving continues via offline buffer while error persists. [SS-PLY.02]