• Fatih Acet's avatar
    Merge branch '24877-bulk-edit-only-keeps-common-labels-when-searching' into 'master' · b01a830a
    Fatih Acet authored
    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.
    
    **Before** 
    ![2016-12-07_11.44.48](/uploads/cb697161b8b39cdee72fdbb95a531100/2016-12-07_11.44.48.gif)
    
    **After**
    ![2016-12-07_11.32.43](/uploads/338255a302de0dd1367474f33232d2a3/2016-12-07_11.32.43.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
    
    See merge request !7765
    b01a830a
gl_dropdown.js 28.2 KB