Author Course Content › Co-Authors
๐ŸŽฌ Simulate:

Introduction to Python Programming

Draft v1 โ€บ Co-Authors
โ† Back to Editor
Team Members
Name Email Role Joined Actions
Apinya Srisuk You apinya.srisuk@tvet.th Owner 2026-04-01
Khamla Bouasone khamla.bouasone@tvet.th Co-Author 2026-05-10
Nantawan Prapakorn nantawan.prapakorn@tvet.th Co-Author 2026-05-18

Screen Flow (UC-CCM.09):

Back โ†’ Content Editor (SCR-CCM.02)
๐Ÿ“ Spec notes โ€” UC-CCM.09 / SCR-CCM.18 (fields, actions, requirements)
Identity
  • Screen: SCR-CCM.18 โ€” Manage Co-Authors Panel
  • Use case: UC-CCM.09 โ€” Manage Co-Authors
Brief description

Tab panel content of SCR-CCM.02 under the "Co-Authors" tab โ€” authors table (name, email, role, joined date) + "Add Co-Author" button (opens SCR-CCM.22) + "Remove" button per row (opens SCR-CCM.23). Course context (name / status) comes from the course header bar of SCR-CCM.02. Rendered here as this UC's own routable entry page so the flow can be walked independently in the prototype.

Fields
  • col_author_name "Name" โ€” text ยท always visible ยท read-only
  • col_author_email "Email" โ€” text ยท always visible ยท read-only
  • col_author_role "Role" โ€” enum (owner / co-author) ยท always visible ยท read-only
  • col_author_joined_at "Joined date" โ€” date ยท always visible ยท read-only
Actions
  • add_co_author "Add Co-Author" โ€” enabled when current_user_role == owner ยท triggers UC-CCM.09-M-2 ยท opens SCR-CCM.22
  • remove_co_author "Remove" โ€” enabled when current_user_role == owner ยท triggers UC-CCM.09-A-2A-1 ยท opens SCR-CCM.23
Additional requirements
  1. "Add Co-Author" and "Remove" buttons are visible only when the session user is the owner โ€” co-authors can only view the member list (read-only)
  2. An owner may not invite themselves, nor invite someone already a member of this course team
  3. A person may only be invited if they are an instructor with an activated account (UC-IDP.03) โ€” learner-only accounts cannot be invited
  4. Role-based permissions: owner = edit content, submit for publication, manage team, delete course; co-author = edit content only [refs: SS-02]
Mode notes

Owner view (rendered here): "Add Co-Author" button and every row's "Remove" button are visible/enabled.
Co-author (non-owner) view: same member list, but the "Add Co-Author" button and all "Remove" buttons are hidden โ€” read-only.

โ†ณ Embedded dialog: SCR-CCM.22 โ€” Add Co-Author Dialog
Brief: Modal for searching and selecting an instructor to join the team. Instructor field is an autocomplete โ€” up to 10 active-instructor matches, excludes existing team members and the session user. If role = owner and the course already has an owner, an inline warning appears before saving (AF 6A).
Fields:
  • instructor "Add instructor" โ€” autocomplete, required ยท min 1 character to search
  • role "Role" โ€” enum {co-author (default), owner} ยท required
Actions:
  • confirm "Confirm" โ€” enabled when instructor != null ยท triggers UC-CCM.09-M-6 ยท saves immediately when role = co-author, or role = owner with no existing owner
  • confirm_additional_owner "Confirm (add additional owner)" โ€” enabled when instructor != null && role == owner ยท triggers UC-CCM.09-A-6A-2 ยท replaces action confirm when the Owner warning is shown
  • cancel "Cancel" โ€” always enabled ยท closes dialog without saving, returns to SCR-CCM.18
Additional requirements:
  1. Autocomplete shows only active instructors not already on the team, excluding the session user; each suggestion shows full name (primary) and email (secondary)
  2. Autocomplete shows at most 10 suggestions per query
  3. Owner warning region shown when role = owner and the course already has an owner: "This course already has an owner. Do you want to add another owner?" โ€” action confirm is replaced by confirm_additional_owner in this state
โ†ณ Embedded dialog: SCR-CCM.23 โ€” Remove Co-Author Confirmation Dialog
Brief: Modal for confirming removal of a team member. Normal case shows name/email/role with Confirm/Cancel. Last-owner case (AF 2A.2A) shows a warning and disables Confirm.
Fields:
  • member_name "Name" โ€” text ยท read-only, from selected row
  • member_email "Email" โ€” text ยท read-only, from selected row
  • member_role "Role" โ€” enum (owner / co-author) ยท read-only, from selected row
  • is_last_owner โ€” computed server-side when the dialog opens; visible when member_role == owner ยท read-only
Actions:
  • confirm "Confirm" โ€” enabled when is_last_owner == false ยท triggers UC-CCM.09-A-2A-3
  • cancel "Cancel" โ€” always enabled ยท closes dialog without saving, returns to SCR-CCM.18
Additional requirements:
  1. is_last_owner is computed server-side when the dialog opens by checking whether this member is the only remaining owner of the course; if true the Last-owner warning shows "Cannot remove โ€” this member is the sole owner of the course. Please add another owner first." and Confirm is disabled