Fix issue with label select not correctly showing selected values

This commit is contained in:
Phil Hughes 2016-07-16 08:46:12 +01:00
parent 7f0ccbac34
commit 82ef4f1ef7
2 changed files with 15 additions and 16 deletions

View File

@ -486,7 +486,7 @@ class GitLabDropdown
# Toggle the dropdown label
if @options.toggleLabel
@updateLabel(selectedObject, el, @)
@updateLabel(selectedObject, el, @, false)
else
selectedObject
else if el.hasClass(INDETERMINATE_CLASS)
@ -515,7 +515,7 @@ class GitLabDropdown
# Toggle the dropdown label
if @options.toggleLabel
@updateLabel(selectedObject, el, @)
@updateLabel(selectedObject, el, @, true)
if value?
if !field.length and fieldName
@addInput(fieldName, value)
@ -616,8 +616,8 @@ class GitLabDropdown
# Scroll the dropdown content up
$dropdownContent.scrollTop(listItemTop - dropdownContentTop)
updateLabel: (selected = null, el = null, instance = null) =>
$(@el).find(".dropdown-toggle-text").text @options.toggleLabel(selected, el, instance)
updateLabel: (selected = null, el = null, instance = null, added = false) =>
$(@el).find(".dropdown-toggle-text").text @options.toggleLabel(selected, el, instance, added)
$.fn.glDropdown = (opts) ->
return @.each ->

View File

@ -24,6 +24,7 @@ class @LabelsSelect
$newLabelError = $('.js-label-error')
$colorPreview = $('.js-dropdown-label-color-preview')
$newLabelCreateButton = $('.js-new-label-btn')
selectedLabels = []
$newLabelError.hide()
$loading = $block.find('.block-loading').fadeOut()
@ -272,19 +273,17 @@ class @LabelsSelect
fields: ['title']
selectable: true
filterable: true
toggleLabel: (selected, el) ->
selected_labels = $('.js-label-select').siblings('.dropdown-menu-labels').find('.is-active')
toggleLabel: (selected, el, e, added) ->
if added
selectedLabels.push selected.title
else
index = selectedLabels.indexOf selected.title
selectedLabels.splice index, 1
if selected and selected.title?
if selected_labels.length > 1
"#{selected.title} +#{selected_labels.length - 1} more"
else
selected.title
else if not selected and selected_labels.length isnt 0
if selected_labels.length > 1
"#{$(selected_labels[0]).text()} +#{selected_labels.length - 1} more"
else if selected_labels.length is 1
$(selected_labels).text()
if selectedLabels.length > 1
"#{selectedLabels[0]} +#{selectedLabels.length - 1} more"
else if selectedLabels.length is 1
selectedLabels[0]
else
defaultLabel
fieldName: $dropdown.data('field-name')