diff --git a/app/assets/javascripts/labels_select.js.coffee b/app/assets/javascripts/labels_select.js.coffee index d1225eb0851d86679741a164d50eea61fb6d5394..39a32f903d423c11b8b0f33f789e589b513e3f5c 100644 --- a/app/assets/javascripts/labels_select.js.coffee +++ b/app/assets/javascripts/labels_select.js.coffee @@ -27,6 +27,10 @@ class @LabelsSelect $newLabelCreateButton = $('.js-new-label-btn') selectedLabels = [] + $("input[name='#{$dropdown.data('field-name')}']").each -> + title = $(this).data('title') + selectedLabels.push($(this).data('title')) if title + $newLabelError.hide() $loading = $block.find('.block-loading').fadeOut() diff --git a/app/views/shared/issuable/_form.html.haml b/app/views/shared/issuable/_form.html.haml index b7fbfcb6b5f7104628f66cb2ca147db4b652abe9..8820172a46e48966612920ee4c86bed5ad1118f7 100644 --- a/app/views/shared/issuable/_form.html.haml +++ b/app/views/shared/issuable/_form.html.haml @@ -66,10 +66,12 @@ - has_labels = issuable.project.labels.any? - selected_labels = issuable.label_ids.any? ? issuable.label_ids : nil - label_dropdown_toggle = issuable.labels.map { |label| label.title } + - field_name = "#{issuable.class.model_name.param_key}[label_ids][]" = f.label :label_ids, "Labels", class: "control-label #{"col-lg-4" if has_due_date}" + = hidden_field_tag field_name, "" .col-sm-10{ class: "#{"col-lg-8" if has_due_date} #{'issuable-form-padding-top' if !has_labels}" } .issuable-form-select-holder - = render "shared/issuable/label_dropdown", classes: ["js-issuable-form-dropdown"], selected: selected_labels, selected_toggle: label_dropdown_toggle, data_options: { field_name: "#{issuable.class.model_name.param_key}[label_ids][]", show_any: "false" } + = render "shared/issuable/label_dropdown", classes: ["js-issuable-form-dropdown"], selected: selected_labels, selected_toggle: label_dropdown_toggle, data_options: { field_name: field_name, show_any: "false" } - if has_due_date .col-lg-6 .form-group diff --git a/app/views/shared/issuable/_label_dropdown.html.haml b/app/views/shared/issuable/_label_dropdown.html.haml index 670c2db47950469f217ed2066f81517247cba462..937dc21019391d33a90c39f5811dfd11f1a09287 100644 --- a/app/views/shared/issuable/_label_dropdown.html.haml +++ b/app/views/shared/issuable/_label_dropdown.html.haml @@ -14,11 +14,12 @@ - if selected.present? - if selected.respond_to?('any?') + - selected = project.labels.find(selected) - selected.each do |label| - = hidden_field_tag data_options[:field_name], label, id: nil + = hidden_field_tag data_options[:field_name], label.id, id: nil, data: { title: label.title } .dropdown %button.dropdown-menu-toggle.js-label-select.js-multiselect{class: classes.join(' '), type: "button", data: dropdown_data} - %span.dropdown-toggle-text{ class: ("is-default" if selected_toggle) } + %span.dropdown-toggle-text{ class: ("is-default" if selected.nil?) } = h(multi_label_name(selected_toggle || selected, "Label")) = icon('chevron-down') .dropdown-menu.dropdown-select.dropdown-menu-paging.dropdown-menu-labels.dropdown-menu-selectable