From bf1d0cbeaefbbf431bc6c5042e7406c9842b5226 Mon Sep 17 00:00:00 2001 From: Phil Hughes <me@iamphill.com> Date: Sat, 16 Jul 2016 09:17:27 +0100 Subject: [PATCH] Fixed label dropdown not selecting no labels --- app/assets/javascripts/labels_select.js.coffee | 4 ++++ app/views/shared/issuable/_form.html.haml | 4 +++- app/views/shared/issuable/_label_dropdown.html.haml | 5 +++-- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/app/assets/javascripts/labels_select.js.coffee b/app/assets/javascripts/labels_select.js.coffee index d1225eb0851..39a32f903d4 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 b7fbfcb6b5f..8820172a46e 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 670c2db4795..937dc210193 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 -- GitLab