I'm working on a web-app for a document management system where employees upload documents and associate them with metadata. In many cases, we are able to predict certain metadata properties and we would like to suggest those predictions to the user.
For normal text-input fields, this is not a problem as we simply use auto-suggest. However, a lot of times, we do not use text-input fields but hierarchical checkbox lists (see image below).
We are unable to find a satisfactory method to display suggestions in these cases.
Assume the following fictional scenario: We are a manufacturing company. At the end of each day, every employee uploads a short work-report. After uploading the document, the employees have to select the machine(s) they were working with:
Now comes the challenge: From the working plan we actually know that on 26.05.2020, James Smith is supposed to work with the CNC Machine. However, we also know that he was working with another machine in Manufacturing Plant XX for the last days.
We would like to suggest both machines to him while still giving him the possibility to pick every other machine.
Possible (suboptimal) solutions
Solution 1: Auto-select button
Add a button that automatically selects the n most likely nodes when clicked.
- Not really a suggestion
- The value for n is not clear
- Users have to de-select wrong suggestions
Solution 2: Suggestion dialog
Add a button that opens another dialog from which the user can pick suggested nodes.
- Gives the users the ability to pick the right suggestions
- Opens a dialog on top of a dialog
- Distracts the workflow
Solution 3: Highlight the suggested nodes
Highlight the suggested nodes and expand their parent-nodes to make them visible.
- Relatively subtle
- Does not distract the users too much
- Could be unclear for the users
- Does not reduce the number of clicks for the users
Solution 4: Auto-suggest in the filter
Add auto-suggest to the filter text-input.
- Does not distract the user
- Only available if the user uses the filter
- Requires the most interaction
Does anybody know a good solution for problems like this?