diff --git a/app/assets/javascripts/project_select.js.coffee b/app/assets/javascripts/project_select.js.coffee index 43b18a3da59..0ae274f3363 100644 --- a/app/assets/javascripts/project_select.js.coffee +++ b/app/assets/javascripts/project_select.js.coffee @@ -2,25 +2,38 @@ class @ProjectSelect constructor: -> $('.ajax-project-select').each (i, select) -> @groupId = $(select).data('group-id') + @includeGroups = $(select).data('include-groups') + + placeholder = "Search for project" + placeholder += " or group" if @includeGroups $(select).select2 - placeholder: "Search for project" - multiple: $(select).hasClass('multiselect') + placeholder: placeholder minimumInputLength: 0 query: (query) => - callback = (projects) -> + finalCallback = (projects) -> data = { results: projects } query.callback(data) - if @groupId - Api.groupProjects @groupId, query.term, callback + if @includeGroups + projectsCallback = (projects) -> + groupsCallback = (groups) -> + data = groups.concat(projects) + finalCallback(data) + + Api.groups query.term, false, groupsCallback else - Api.projects query.term, callback + projectsCallback = finalCallback + + if @groupId + Api.groupProjects @groupId, query.term, projectsCallback + else + Api.projects query.term, projectsCallback id: (project) -> project.web_url text: (project) -> - project.name_with_namespace + project.name_with_namespace || project.name dropdownCssClass: "ajax-project-dropdown" diff --git a/app/views/dashboard/milestones/index.html.haml b/app/views/dashboard/milestones/index.html.haml index 94ff259a338..bec1692a4de 100644 --- a/app/views/dashboard/milestones/index.html.haml +++ b/app/views/dashboard/milestones/index.html.haml @@ -3,7 +3,7 @@ .project-issuable-filter .controls - = render 'shared/new_project_item_select', path: 'milestones/new', label: "New Milestone" + = render 'shared/new_project_item_select', path: 'milestones/new', label: "New Milestone", include_groups: true = render 'shared/milestones_filter' diff --git a/app/views/shared/_new_project_item_select.html.haml b/app/views/shared/_new_project_item_select.html.haml index d7243b2d518..c4431d66927 100644 --- a/app/views/shared/_new_project_item_select.html.haml +++ b/app/views/shared/_new_project_item_select.html.haml @@ -1,6 +1,6 @@ - if @projects.any? .prepend-left-10.new-project-item-select-holder - = project_select_tag :project_path, class: "new-project-item-select" + = project_select_tag :project_path, class: "new-project-item-select", data: { include_groups: local_assigns[:include_groups] } %a.btn.btn-new.new-project-item-select-button = icon('plus') = local_assigns[:label]