Improve bulk assignment
This MR improves current implementation of Label dropdown when used for bulk assignment on issuable pages (/:namespace/:project/issues, /:namespace/:project/merge_requests)
Previously this dropdown relied on <input>
tags to get its active items and also to calculate items with indeterminate state.
Relying on <input>
tags is not enough when we want to set/get multiple states on a dropdown.
For this case we want to get/set:
- Marked items
- Unmarked items that were initially marked
- Unmarked items that were initially indeterminate
- Items with indeterminate state.
This MR makes the Label dropdown to save its own state as data
so it will be easy to get and set whatever state we want no matter if the dropdown is filtering which is the issue that I initially wanted to solve as you can see in the following gif.
As you can see in the first gif the bug
label is removed from the selected issues but the enhancement
label should set but the critical
should be kept. This is fixed on the next gif.
Fixes #24877 (closed)