LMS Core › Manage Tag Group
🎬 Simulate:

Manage Tag Group

Code Group Name Pricing Type Tag Count Status Sort Order Actions
SKILL Vocational Skills Paid 12 Active 1
SUBJ Subjects Paid 8 Active 2
LVL Level Free 5 Active 3
DEPT Department Free 3 Inactive 4
MISC Others Free 0 Active 5

Screen Flow (from flow.puml):

📝 Spec notes — UC-LMS.12 / SCR-LMS.47 (fields, actions, requirements)
Identity
  • Screen: SCR-LMS.47 — Manage Tag Group List
  • Use case: UC-LMS.12 — Manage Tag Group
Brief description

Screen for viewing and managing all Tag Groups in the system. Tag Admin uses this screen to add, edit, and delete tag groups. Enable/disable is performed via the edit form (SCR-LMS.48) by turning the status option on or off. Items are sorted by display order (sort_order) and show the Pricing Type (Paid / Free) and number of Tags within each group.

Fields
  • search_keyword "Search" — text · max 100 chars · always
  • code "Code" — text · read-only · always
  • name "Group Name" — text · read-only · always
  • is_paid "Pricing Type" — enum (Paid / Free) · read-only · always
  • tag_count "Tag Count" — number, computed · read-only · always
  • status "Status" — enum (Active / Inactive) · read-only · always
  • sort_order "Display Order" — number ≥ 0 · read-only · always
Actions
  • add_tag_group "+ Add Tag Group" — enabled always · triggers UC-LMS.12-M-2
  • edit_tag_group "Edit" (per row) — enabled always · triggers UC-LMS.12-A-2A-1, UC-LMS.12-A-2B-1
  • delete_tag_group "Delete" (per row) — enabled always · triggers UC-LMS.12-A-2C-1
Additional requirements — screen (SCR-LMS.47)
  1. Items are sorted by sort_order (ascending) by default. Search filters by code or name.
  2. If there are no tag groups in the system, show an empty state with guidance text and a "+ Add First Tag Group" button.
  3. The "Delete" button is shown on every row (including rows where tag_count > 0), but when clicked, SCR-LMS.49 will block confirmation if there are Tags within the group.
Additional requirements — use case (UC-LMS.12)
  1. The TagGroup Code must be unique across the system and may contain only English letters or digits.
  2. If the Tag Group being deleted still contains Tags, the deletion is blocked and the user is advised to Deactivate the group instead.
  3. If the entered Code duplicates an existing Tag Group Code, the system notifies the user and asks them to enter a different Code.
↳ Embedded dialog: SCR-LMS.48 — Tag Group Form (Add / Edit)
Brief description

Pop-up form used in 2 modes: (1) Create — opens an empty form when the Tag Admin clicks the "+ Add Tag Group" button. (2) Edit — loads existing data when the Tag Admin clicks "Edit" on any tag group row. Enable/disable status is shown as a tick box in Edit mode. The system checks for duplicate codes before saving.

Fields
  • code "Code" — text · required · regex ^[A-Z0-9]+$ · max 10
  • name_Group "Group Name" — text · required · max 150
  • is_paid "Pricing Type" — enum (Paid / Free) · required · no default — user must select
  • description "Description" — textarea · optional · max 500
  • is_active "Active" — boolean · default: true (Create) / loaded from existing status (Edit)
Actions
  • save "Save" — enabled when required fields are valid · triggers UC-LMS.12-M-5, UC-LMS.12-A-2A-4, UC-LMS.12-A-2B-4
  • cancel "Cancel" — enabled always · dismisses modal
Additional requirements
  1. Pop-up title changes by mode — "Add Tag Group" (Create) / "Edit Tag Group" (Edit).
  2. Edit mode — system pre-loads all fields from the existing Tag Group.
  3. When save fails due to a duplicate code (UC-LMS.12 additional requirement #3), an inline error is shown below the Code field without closing the pop-up.
  4. Create mode — is_active is checked by default (Active).
↳ Embedded dialog: SCR-LMS.49 — Tag Group Delete Confirmation Dialog
Brief description

Confirmation window for deleting a Tag Group, with 2 states: (1) Deletable (tag_count == 0) — "Confirm Delete" enabled. (2) Blocked (tag_count > 0) — confirm button disabled and an alert recommends Deactivate instead.

Fields
  • group_code "Tag Group Code" — text · read-only · always
  • group_name "Tag Group Name" — text · read-only · always
  • tag_count "Number of Tags in Group" — number, computed · read-only · always
  • block_message — text · read-only · visible when tag_count > 0
Actions
  • confirm_delete "Confirm Delete" — always rendered; enabled when tag_count == 0 · triggers UC-LMS.12-A-2C-3
  • cancel "Cancel" — enabled always · dismisses modal
Additional requirements
  1. The "Confirm Delete" button is always visible but disabled when tag_count > 0 — must not be hidden, so that stakeholders can see the action exists but is blocked.