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)
- Screen: SCR-LMS.47 — Manage Tag Group List
- Use case: UC-LMS.12 — Manage Tag Group
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.
search_keyword"Search" — text · max 100 chars · alwayscode"Code" — text · read-only · alwaysname"Group Name" — text · read-only · alwaysis_paid"Pricing Type" — enum (Paid / Free) · read-only · alwaystag_count"Tag Count" — number, computed · read-only · alwaysstatus"Status" — enum (Active / Inactive) · read-only · alwayssort_order"Display Order" — number ≥ 0 · read-only · always
add_tag_group"+ Add Tag Group" — enabled always · triggers UC-LMS.12-M-2edit_tag_group"Edit" (per row) — enabled always · triggers UC-LMS.12-A-2A-1, UC-LMS.12-A-2B-1delete_tag_group"Delete" (per row) — enabled always · triggers UC-LMS.12-A-2C-1
- Items are sorted by sort_order (ascending) by default. Search filters by code or name.
- If there are no tag groups in the system, show an empty state with guidance text and a "+ Add First Tag Group" button.
- 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.
- The TagGroup Code must be unique across the system and may contain only English letters or digits.
- If the Tag Group being deleted still contains Tags, the deletion is blocked and the user is advised to Deactivate the group instead.
- 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)
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.
code"Code" — text · required · regex ^[A-Z0-9]+$ · max 10name_Group"Group Name" — text · required · max 150is_paid"Pricing Type" — enum (Paid / Free) · required · no default — user must selectdescription"Description" — textarea · optional · max 500is_active"Active" — boolean · default: true (Create) / loaded from existing status (Edit)
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-4cancel"Cancel" — enabled always · dismisses modal
- Pop-up title changes by mode — "Add Tag Group" (Create) / "Edit Tag Group" (Edit).
- Edit mode — system pre-loads all fields from the existing Tag Group.
- 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.
- Create mode — is_active is checked by default (Active).
↳ Embedded dialog: SCR-LMS.49 — Tag Group Delete Confirmation Dialog
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.
group_code"Tag Group Code" — text · read-only · alwaysgroup_name"Tag Group Name" — text · read-only · alwaystag_count"Number of Tags in Group" — number, computed · read-only · alwaysblock_message— text · read-only · visible when tag_count > 0
confirm_delete"Confirm Delete" — always rendered; enabled when tag_count == 0 · triggers UC-LMS.12-A-2C-3cancel"Cancel" — enabled always · dismisses modal
- 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.