mirror of
https://github.com/wahyd4/gitlabhq.git
synced 2026-08-20 10:06:04 +10:00
Fixes icon state when selecting issues that have the same labels assigned
This commit is contained in:
@@ -302,6 +302,9 @@ class GitLabDropdown
|
||||
if @options.setIndeterminateIds
|
||||
@options.setIndeterminateIds.call(@)
|
||||
|
||||
if @options.setActiveIds
|
||||
@options.setActiveIds.call(@)
|
||||
|
||||
# Makes indeterminate items effective
|
||||
if @fullData and @dropdown.find('.dropdown-menu-toggle').hasClass('js-filter-bulk-update')
|
||||
@parseData @fullData
|
||||
|
||||
@@ -210,9 +210,21 @@ class @LabelsSelect
|
||||
|
||||
if $dropdown.hasClass('js-filter-bulk-update')
|
||||
indeterminate = instance.indeterminateIds
|
||||
active = instance.activeIds
|
||||
|
||||
if indeterminate.indexOf(label.id) isnt -1
|
||||
selectedClass.push 'is-indeterminate'
|
||||
|
||||
if active.indexOf(label.id) isnt -1
|
||||
# Remove is-indeterminate class if the item will be marked as active
|
||||
i = selectedClass.indexOf 'is-indeterminate'
|
||||
selectedClass.splice i, 1 unless i is -1
|
||||
|
||||
selectedClass.push 'is-active'
|
||||
|
||||
# Add input manually
|
||||
instance.addInput @fieldName, label.id
|
||||
|
||||
if $form.find("input[type='hidden']\
|
||||
[name='#{$dropdown.data('fieldName')}']\
|
||||
[value='#{this.id(label)}']").length
|
||||
@@ -328,6 +340,10 @@ class @LabelsSelect
|
||||
setIndeterminateIds: ->
|
||||
if @dropdown.find('.dropdown-menu-toggle').hasClass('js-filter-bulk-update')
|
||||
@indeterminateIds = _this.getIndeterminateIds()
|
||||
|
||||
setActiveIds: ->
|
||||
if @dropdown.find('.dropdown-menu-toggle').hasClass('js-filter-bulk-update')
|
||||
@activeIds = _this.getActiveIds()
|
||||
)
|
||||
|
||||
@bindEvents()
|
||||
@@ -352,3 +368,12 @@ class @LabelsSelect
|
||||
label_ids.push $("#issue_#{issue_id}").data('labels')
|
||||
|
||||
_.flatten(label_ids)
|
||||
|
||||
getActiveIds: ->
|
||||
label_ids = []
|
||||
|
||||
$('.selected_issue:checked').each (i, el) ->
|
||||
issue_id = $(el).data('id')
|
||||
label_ids.push $("#issue_#{issue_id}").data('labels')
|
||||
|
||||
_.intersection.apply _, label_ids
|
||||
|
||||
@@ -190,7 +190,8 @@ feature 'Issues > Labels bulk assignment', feature: true do
|
||||
end
|
||||
if unmark
|
||||
items.map do |item|
|
||||
click_link item
|
||||
# Make sure we are unmarking the item no matter the state it has currently
|
||||
click_link item while find('a', text: item)[:class] == 'label-item'
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user