Sub-flow › Embed SCORM Module
Background: Course Editor (SCR-CCM.02) โ€” this dialog opens over the course editing page
Spec notes

Identity

SUC-CCM-06 (Embed SCORM Module) ยท Screen: SCR-CCM.21 (dialog) ยท Upload-only โ€” SCORM 1.2 / SCORM 2004, .zip only

ReturnUrl context

Current returnUrl: /author-course/
Fallback: / when returnUrl is empty.
Propagation: all state links carry returnUrl. Save โ†’ returnUrl. Cancel โ†’ returnUrl + &sub_cancelled=1.

Sub-flow context

SUC-CCM-06 ยท Invoked by (Backoffice Portal): UC-CCM.01 (Author Course Content), step 6 โ€” "Add Content โ†’ SCORM Module" on a lesson content item that has no content linked yet.
Precondition: the selected content item exists and does not yet have any content linked to it; the user already has edit rights on this course draft (verified in UC-CCM.01).
Success: SCORM CourseDraftResource created + bound to the lesson (SS-CCM.07) โ†’ Course Editor outline shows the new SCORM block; the module also appears in the course Asset Library (SCR-CCM.24).
Upload-only: selecting an existing SCORM module from the library is handled at SCR-CCM.26 "From Library" tab before entering this sub-flow.

Screen spec: SCR-CCM.21

  • Regions: Context Header ยท Upload area ยท Footer Actions
  • context_header: read-only ยท computed โ€” shows course + destination lesson path
  • zip_file_input: required ยท visible when upload_state == idle ยท accept: .zip only; client-side pre-check of format + size before upload
  • upload_progress: read-only ยท visible when upload_state == uploading ยท range 0โ€“100
  • scorm_title: required ยท 1โ€“200 chars ยท default = original filename ยท visible when upload_state == complete ยท data_ref: CourseDraftResource.title
  • scorm_description: optional ยท max 500 chars ยท visible when upload_state == complete ยท data_ref: CourseDraftResource.description
  • AF 2A: file fails preliminary check (not .zip or exceeds size limit) โ†’ inline error; resume at step 2
  • AF 3A: .zip is not a valid SCORM package (missing manifest or unsupported version) โ†’ inline error + "Choose a Different File"; resume at step 2
  • AF 4A: user cancels after a successful upload โ†’ uploaded file deleted (SS-CCM.07); lesson item remains empty
  • AR#2: atomic save โ€” module + lesson link saved together; either failing removes the uploaded file and leaves no data behind (SS-CCM.07)
  • AR#4: only SCORM 1.2 / SCORM 2004 packages accepted, .zip format, checked client-side and again by the server (SS-CCM.02)
  • Open issues: SCORM progress double-counting across lessons โ€” deferred to Content Player design (not a CCM concern)