This is a final blog post in an initial series about Labels. It is a follow-up to: “Let’s talk about Labels” posted on January 27, 2016, and “Let’s talk more about Labels” posted on February 29, 2016. The prior blog posts addressed topics around creating and applying user generated labels to managed resources. In this final post we’ll discuss how to remove or delete existing labels.
Note: This story does not attempt to address a label management center, where a user might take action on an inventory of labels. It is geared to use cases for managing user generated labels from resource views.
Creating a label recap, a user-generated label is:
- A “Key:Value” pair (KVP.)
- Created in the UI using a pair of text input fields.
- Added to a stored list of labels, once created.
- Used to support rich search and filter options.
To read more about the Create action, see: “Let’s talk about Labels.”
Applying a label recap, a label is applied:
- When a resource or alert is associated with a pre-existing label.
- Using the same form input elements that are used in creating a label.
- In a variety of screen contexts, including: Tables, lists, cards, and inline actions.
To read more about the Apply action, see: “Let’s talk more about Labels”
This pattern includes conceptual designs for the following actions:
Remove the association between a label and the resource it had been applied to.
Delete breaks the association between label and resource, and purges the label(s) from the master list of stored labels.
Users may want to remove a label when they no longer need to identify a resource with a particular category or value. Removing a label breaks the association between a label and the resource that it had previously been applied to. It is the paired opposite action to “Apply.” Removing a label does not delete the label from a stored list of labels; it remains available to be applied to resources.
Labels may be removed as a singular or bulk action.
Applied labels for an individual resource might be presented in a list or iconic view. For more information about Applied Labels see: “Let’s talk more about Labels”
Example of applied labels, listed (visual design TBD):
Example: Iconic view
1. Labels within a pop-over may also be removed inline.
Removing one Label:
- Use the “x” inline action to remove the applied label from the individual resource.
- Provide a hover tip on the “x” to confirm that the action is to “Remove.”
- For an individual label, the remove action will occur dynamically, without requiring the user to confirm the action.
- Consider adding an inline or toast notification to confirm that the action was taken successfully. For more information about notifications see:
Removing all labels:
- Provide a “Remove All” action-link, to allow the user to remove all labels (optional).
- Provide a hover tip to confirm that the action is to “Remove All.”
- Ask the user to confirm the action restating the selected resource(s) and the associated labels to be cleared.
The assumption is that this action will be taken from a Content View screen, where multi select checkboxes are afforded. For more information about Content Views, see: https://www.patternfly.org/patterns/list-view/
Identify and select the resources with the associated labels.
Locate the resources which have the Labels that need to be removed. The user may use Sort, Find or Filter actions in the Data toolbar to locate resources with the applied label. For more information about the Data Toolbar, in Content Views, see: https://serenamarie-redhatuxd.rhcloud.com/2015/09/09/data-toolbar-everything-in-its-place/
Select the action to “Remove.”
After selecting resources, the user may take the action to remove the label(s). All content views generally use the same interaction affordances for initiating actions: buttons or kabab dropdown menus. The affordances might be presented in the data toolbar, or inline within rows (table, list or card.)
- Theses actions are presented in the data toolbar, when multi-select checkboxes are offered. The data toolbar is placed above the list view. When combined with checkbox selection in a list, it supports multiple selection. For more information about the Data Toolbar, in Content Views, see: https://serenamarie-redhatuxd.rhcloud.com/2015/09/09/data-toolbar-everything-in-its-place/
Example: Data toolbar
An action button or kabob drop down menu item should be offered to allow the user to initiate the action. The action should be named “Remove Labels.” For additional terminology recommendations, see: https://www.patternfly.org/styles/terminology-and-wording/#action-labels
Example: Kabob menu
Example: Button (“Remove”.)
After the user makes the selection a Modal dialog is presented.
The dialog should list the resources and present labels that may be removed from the resources. If the user selects a label that has only been applied to a subset of a group of selected resources, the label will be removed from that subset.
Labels will be removed after the modal is submitted. The content view screen should update to reflect the change.
Consider adding an inline or toast notification to confirm that the action was taken successfully. For more information about notifications see:
Note: The anticipated use case for deleting a label is a well-planned action take by an admin, or a user with appropriate permissions, as part of a management task. This use case will most likely require a section of the UI dedicated to label management, which is outside the scope of this story. The following is an interim, resource-centric alternative.
Deleting a label is destructive action. Labels that are deleted are purged from the stored list of labels. It is the paired opposite action to “Create.”
To delete a label a user may first identify the resources that use the label, then submit the delete action. The assumption is that this action will be taken from a Content View screen. For more information about Content Views, see: https://www.patternfly.org/patterns/list-view/
Use search, find, or filter actions in the Data toolbar to locate resources with the applied label.
Once resources are selected, the user may take the action to delete labels. From the content view a “Delete” button or kabob drop down menu item should be offered to allow the user to initiate the “Delete” action. The action could be taken from the Data Toolbar or as an inline list action, depending on whether or not multi-select is supported.
Provide a “Delete” action using either the kebob or button actions.
Example: Kabob menu
Example: Button (“Delete”.)
Important: Delete is a destructive action, do use a red button for this action. For more information about buttons, see: https://www.patternfly.org/widgets/#buttons. The action should be named “Delete Labels.” For additional terminology recommendations, see: https://www.patternfly.org/styles/terminology-and-wording/#action-labels
After the user makes the selection a Modal dialog is presented.
The modal allows the user to select the labels and informs them that it is a destructive action. It should list the labels that can be selected, and the affected resources. Delete might apply to resources other than those initially selected. The ramifications of deleting a label could be disruptive to the overall system and users, therefore the user must be presented with a warning message. After confirming the action, the labels will get unassigned from the resource(s) and purged from the system. The content view screens should update to reflect the change.
- The “Delete”, and to some degree “Create”, actions were identified as actions that might be taken by a user who would be defining a labeling taxonomy (administrator.) These actions would most likely be taken from a label inventory view, rather than a resource view. Label inventory views are out of scope, as the current stories were initially defined based on product requirements with resource-centric views. These use cases were also relatively agnostic of user permission settings.
What’s not covered in the current design but will be considered in future sprints
- Management of an inventory of labels.
- Nesting Labels.
- RBAC & Labels.
- INIT & Labels.
- Filtering resources by Labels.
- Search for and by Labels.
- System generated Labels.