diff --git a/app/helpers/milestones_helper.rb b/app/helpers/milestones_helper.rb index 6ea83e5dc03c0001e24becb9774e18bba408a9f3..05caf91240fa081d079fbbc70a65cbde2420abf7 100644 --- a/app/helpers/milestones_helper.rb +++ b/app/helpers/milestones_helper.rb @@ -55,6 +55,12 @@ module MilestonesHelper end end + def milestone_dropdown_selected_text + project = @target_project || @project || @projects + + Milestone.of_projects(project).where(title: params[:milestone_title]).first().try(:name) + end + def milestone_remaining_days(milestone) if milestone.expired? content_tag(:strong, 'Past due') diff --git a/app/views/shared/issuable/_milestone_dropdown.html.haml b/app/views/shared/issuable/_milestone_dropdown.html.haml index 9dd54546cb61cd3f8fe9c6a75108a5350e843450..0b8fd3daad7cb8f245eabb3833ced53fa30c78ab 100644 --- a/app/views/shared/issuable/_milestone_dropdown.html.haml +++ b/app/views/shared/issuable/_milestone_dropdown.html.haml @@ -1,11 +1,11 @@ -- project = @target_project || @project +- project = @target_project || @project || @projects - extra_class = extra_class || '' -- selected_text = project.milestones.find_by_id(selected).try(:name) +- selected_text = milestone_dropdown_selected_text - if selected.present? = hidden_field_tag(name, selected) = dropdown_tag(milestone_dropdown_label(selected_text), options: { title: "Filter by milestone", toggle_class: "js-milestone-select js-filter-submit #{extra_class}", filter: true, dropdown_class: "dropdown-menu-selectable", placeholder: "Search milestones", footer_content: project.present?, data: { show_no: true, show_any: show_any, show_upcoming: show_upcoming, field_name: name, selected: selected, project_id: project.try(:id), milestones: milestones_filter_dropdown_path, default_label: "Milestone" } }) do - - if project + - if project && project.respond_to?(:namespace) %ul.dropdown-footer-list - if can? current_user, :admin_milestone, project %li