You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Tagging] Bulk delete of multiple tags from Taxonomy Detail Page #130
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
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.
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.
Activity
ali-hugo commentedon Oct 12, 2023
@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.
thelmick-unicon commentedon Feb 25, 2026
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
bradenmacdonald commentedon Apr 1, 2026
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.
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.
bradenmacdonald commentedon Apr 1, 2026
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.