Skip to content

[Tagging] Edit a content item's tags from the tag drawer #122

Description

@bradenmacdonald

"As a Content Author, I can add/delete tags to content components (course blocks, course units, and library blocks)."

Builds on the read-only tag drawer created in #118 to make it editable. Also see #120 and #121 which provide different ways of opening the tag drawer.

Acceptance criteria

  1. Check permissions. This new edit functionality should only appear in the tag drawer if the user has permission to edit the unit/component/library-component in question. Otherwise, the previous read-only view should be used.
  2. Display an "x" for explicit tags in the tag drawer. Clicking the "x" will remove the tag from the content item.
  3. Removing an explicit child that is the only child of its implicit parent will remove the implicit parent too (and grandparent etc.)
  4. New tags can be added, using the filterable tags list box (filtering/searching is included in scope for this ticket):
    Screenshot 2023-09-21 at 3 13 26 PM
  5. Tag selection:
    • Selecting the checkbox of a parent tag does not select the tags it contains
    • Selecting a nested tag automatically assigns an indeterminate state to the parent checkbox
    • When users click on a nested tag, it becomes the explicit tag and its parent tags are included as implicit tags with a checkbox in a lighter shade of gray. Users cannot check/uncheck implicit tags
    • When users uncheck a nested, explicit tag, its implicit parent tags automatically become unchecked
    • The most granular tag in the hierarchy becomes the explicit tag with all its parent tags becoming implicit
  6. Tag interaction: To select/deselect an item, select either the checkbox or the tag name. To expand parent items, select the dropdown arrow or any empty area on the row
  7. Everything is fully accessible and in particular is easy to operate with a keyboard.

Developer Notes

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status
    Done

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions