"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
- 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.
- Display an "x" for explicit tags in the tag drawer. Clicking the "x" will remove the tag from the content item.
- Removing an explicit child that is the only child of its implicit parent will remove the implicit parent too (and grandparent etc.)
- New tags can be added, using the filterable tags list box (filtering/searching is included in scope for this ticket):

- 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
- 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
- Everything is fully accessible and in particular is easy to operate with a keyboard.
Developer Notes
"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
Developer Notes