summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/assets/javascripts/project_select.js.coffee25
-rw-r--r--app/views/dashboard/milestones/index.html.haml2
-rw-r--r--app/views/shared/_new_project_item_select.html.haml2
3 files changed, 21 insertions, 8 deletions
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 @includeGroups
+ projectsCallback = (projects) ->
+ groupsCallback = (groups) ->
+ data = groups.concat(projects)
+ finalCallback(data)
+
+ Api.groups query.term, false, groupsCallback
+ else
+ projectsCallback = finalCallback
+
if @groupId
- Api.groupProjects @groupId, query.term, callback
+ Api.groupProjects @groupId, query.term, projectsCallback
else
- Api.projects query.term, callback
+ 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]