Skip to content

[Tagging] Bulk delete of multiple tags from Taxonomy Detail Page #130

Open

Description

@bradenmacdonald

"As an instance-level admin, I want to be able to select multiple tags for deletion and delete them all at once"

(see below for detailed AC)

Activity

  1. added
    pending UX changesThis issue (not a PR) needs UX input or its UX design is not yet finalized.
    on Sep 22, 2023
  2. ali-hugo commented on Oct 12, 2023

    @ali-hugo

    @bradenmacdonald The UX for this has been finalized. Please see the user flow outlined here.

    Let me know if there's anything you need in order to remove the "pending UX changes" label from this issue.

  3. thelmick-unicon commented on Feb 25, 2026

    @thelmick-unicon

    Gherkin style Acceptance Criteria

    Feature: Bulk delete of multiple tags from the Taxonomy Detail Page

    As an instance-level admin
    The user wants to select multiple tags and delete them at once
    So that taxonomy cleanup can be performed efficiently

    Selecting “Select” enables bulk selection mode

    Given the user is viewing the Taxonomy Detail page
    When the user selects "Select"
    Then "Select" changes to "0 selected"
    And a "Select all" checkbox appears in the top-left of the table
    And a checkbox appears to the left of each tag row

    Selecting individual tags updates selected count

    Given bulk selection mode is active
    When the user selects one or more tag checkboxes
    Then the header displays the correct number of selected tags
    And the count updates dynamically as selections change

    Selecting “Select all” checkbox selects all tags on all pages

    Given bulk selection mode is active
    When the user selects the "Select all" checkbox in the header row
    Then all visable tags on the page are selected
    And an option to select all tags in the taxonomy is displayed as a link, "Select all ###"
    And the header displays the total number selected

    Selecting “Select all ###” link selects all tags

    Given bulk selection mode is active
    And the "Select all ###" is vsiable
    And the users selects the link to select all tags in the taxonomy, "Select all ###"
    Then all tags in the taxonomy are selected
    And the header displays the total number selected
    And the link updates to select only the number of tags on the visable page

    Deselecting tags updates the selected count

    Given one or more tags are selected
    When the user deselects a tag
    Then the selected count decreases accordingly

    Delete option appears when at least one tag is selected

    Given bulk selection mode is active
    And at least one tag is selected
    Then a "Delete" action appears in the header

    Delete option is hidden when no tags are selected

    Given bulk selection mode is active
    And no tags are selected
    Then the "Delete" action is not displayed

    Confirmation dialog displays delete count

    Given the user has selected multiple tags
    And some selected tags cannot be deleted due to child dependencies
    When the user selects the Delete action
    Then a confirmation dialog is displayed
    And the dialog displays the number of tags that will actually be deleted

    Delete button on confirmation dialog deletes tags

    Given the delete confirmation dialog is displayed
    And the user has typed "Delete" into the textbox
    When the user selects the Delete button
    Or when the user presses Enter
    Then the the tags are removed from the taxonomy list
    And the table refreshes to reflect the updated taxonomy
    And selection mode exits

    Cancel closes the confirmation dialog

    Given the delete confirmation dialog is displayed
    When the user selects the Cancel button
    Or when the user presses Esc
    Then the dialog closes
    And no tags are deleted

    Parent tags with remaining children are not deleted

    Given a selected parent tag has at least one child tag that is not selected
    And the parent tag's checkbox is empty
    When the user initiates bulk delete
    Then the parent tag is excluded from deletion

    Hierarchy integrity is maintained

    Given multiple tags across hierarchy levels are selected
    When deletion is confirmed
    Then no orphaned child tags remain
    And no invalid parent-child relationships are created

    Bulk delete workflow is keyboard accessible

    Given the user is navigating using only a keyboard
    When the user enters selection mode
    Then checkboxes are focusable
    And the Delete action is focusable
    And the confirmation dialog is fully keyboard operable

    Screenshots of UI

    Image Image Image Image Image
  4. bradenmacdonald commented on Apr 1, 2026

    @bradenmacdonald
    ContributorAuthor

    Parent tags with remaining children are not deleted
    Hierarchy integrity is maintained

    I think the AC around parent-child relationships needs to be better defined.

    Do we allow selecting a parent without selecting all of its descendant tags? Or does selecting a parent force-select all of its descendant tags?

    If we allow selecting a parent without selecting all of its descendant tags, what is the behavior when pressing delete? Do we implicitly delete all the children or show an error?

    Simply not deleting them without any explanation seems like a confusing experience to me.

    Bulk delete workflow is keyboard accessible

    If there's time/budget, I would further suggest that we define how to use arrow keys to move focus among the tag checkboxes, expand and contract child tags, and so on. e.g. Press ➡️ to expand and jump to the first child checkbox, press ⬅️ to jump to the parent tag checkbox (maybe press ⬅️ again to collapse the current node), press ⬆️ to go to the above sibling or parent, etc.

  5. bradenmacdonald commented on Apr 1, 2026

    @bradenmacdonald
    ContributorAuthor

    Also, how does deleting interact with search, if there are child tags that aren't visible because they don't match the current search, we need to account for those if the user tries to delete the parent.

  6. added
    pending UX changesThis issue (not a PR) needs UX input or its UX design is not yet finalized.
    and removed
    pending UX changesThis issue (not a PR) needs UX input or its UX design is not yet finalized.
    on Apr 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    willowReleased in Willow

    Type

    No type

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions