Prototype โ simulate validation errors (AF 4A):
Screen Flow (SUC-CCM-02):
Spec notes
Identity
SUC-CCM-02 ยท Screen: SCR-CCM.20 (External Link Dialog)
ReturnUrl context
Current returnUrl: /author-course/
Fallback: / when returnUrl is empty.
Propagation: Save โ returnUrl. Cancel โ returnUrl + &sub_cancelled=1.
Sub-flow context
SUC-CCM-02 ยท Invoked by (Backoffice Portal): UC-CCM.01 (Author Course Content).
Precondition: A lesson Content Item is selected on SCR-CCM.02 with no content linked yet.
Success: External link resource created and linked to lesson โ Content Editor shows new item.
Cancel (AF 3A): no data saved; CourseDraftItem.course_draft_resource_id remains null.
Screen spec: SCR-CCM.20
- Regions: Context Header ยท Link Form (URL, link title, description) ยท Footer Actions
- link_url: required ยท max 2048 ยท format: url ยท protocol must be https:// or http:// (SS-CCM.28) ยท data_ref: CourseDraftResource.content_ref
- link_title: required ยท max 255 ยท data_ref: CourseDraftResource.title
- link_description: optional ยท max 1000 ยท data_ref: CourseDraftResource.description
- Require completion tracking: optional ยท default off ยท when on, completion recorded automatically when learner advances to next item (SS-PLY.06) ยท data_ref: CourseDraftResource.is_tracked โ sourced from SUC main_flow step 2 / AR#3; not yet formalized as a field in the SCR-CCM.20 spec
- Save enabled when link_url โ "" && link_title โ ""
- AF 4A (Validation fails): inline error at failing field; return to step 2 to correct
- AR#1: Protocol allowlist โ reject javascript:/data:/ftp:/etc. (SS-CCM.28). AR#2: Validation errors shown inline at the failing field
- Open issues: OI-28 URL preview auto-fetch (server vs client) โ deferred to design phase. OI-29 URL reachability check / SSRF risk โ deferred to design phase