summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-07-08 21:42:29 +0000
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-07-08 21:42:29 +0000
commit27a9ff8264ff45a3753dd64ff4af62c121ff7f0b (patch)
tree6b8b06f7fdec0610807c9beab80fbda24be6fddf /app
parent512bb5ba285ed02db97d51d439cc81d9bd08a03d (diff)
parent098ced4faad8d1048d6735f5b3ad6da6aa49fcfe (diff)
downloadgitlab-ce-27a9ff8264ff45a3753dd64ff4af62c121ff7f0b.tar.gz
Merge branch 'rs-dev-issue-2372' into 'master'
Filter by issues/merge requests without a milestone Closes internal https://dev.gitlab.org/gitlab/gitlabhq/issues/2372 See merge request !886
Diffstat (limited to 'app')
-rw-r--r--app/finders/issuable_finder.rb4
-rw-r--r--app/helpers/milestones_helper.rb2
-rw-r--r--app/models/milestone.rb4
-rw-r--r--app/views/shared/issuable/_filter.html.haml8
4 files changed, 14 insertions, 4 deletions
diff --git a/app/finders/issuable_finder.rb b/app/finders/issuable_finder.rb
index 2eccc0ee31f..ab89aa2c53a 100644
--- a/app/finders/issuable_finder.rb
+++ b/app/finders/issuable_finder.rb
@@ -10,7 +10,7 @@
# state: 'open' or 'closed' or 'all'
# group_id: integer
# project_id: integer
-# milestone_id: integer
+# milestone_title: string
# assignee_id: integer
# search: string
# label_name: string
@@ -76,7 +76,7 @@ class IssuableFinder
return @milestones if defined?(@milestones)
@milestones =
- if milestones? && params[:milestone_title] != NONE
+ if milestones? && params[:milestone_title] != Milestone::None.title
Milestone.where(title: params[:milestone_title])
else
nil
diff --git a/app/helpers/milestones_helper.rb b/app/helpers/milestones_helper.rb
index 93e33ebefd8..132a893e532 100644
--- a/app/helpers/milestones_helper.rb
+++ b/app/helpers/milestones_helper.rb
@@ -29,6 +29,8 @@ module MilestonesHelper
end.active
grouped_milestones = Milestones::GroupService.new(milestones).execute
+ grouped_milestones.unshift(Milestone::None)
+
options_from_collection_for_select(grouped_milestones, 'title', 'title', params[:milestone_title])
end
end
diff --git a/app/models/milestone.rb b/app/models/milestone.rb
index e0c5fec97b7..d28f3c8d3f9 100644
--- a/app/models/milestone.rb
+++ b/app/models/milestone.rb
@@ -14,6 +14,10 @@
#
class Milestone < ActiveRecord::Base
+ # Represents a "No Milestone" state used for filtering Issues and Merge
+ # Requests that have no milestone assigned.
+ None = Struct.new(:title).new('No Milestone')
+
include InternalId
include Sortable
diff --git a/app/views/shared/issuable/_filter.html.haml b/app/views/shared/issuable/_filter.html.haml
index a829782fc4f..0e8da8de723 100644
--- a/app/views/shared/issuable/_filter.html.haml
+++ b/app/views/shared/issuable/_filter.html.haml
@@ -43,11 +43,15 @@
placeholder: 'Author', class: 'trigger-submit', any_user: true, first_user: true)
.filter-item.inline.milestone-filter
- = select_tag('milestone_title', projects_milestones_options, class: "select2 trigger-submit", prompt: 'Milestone')
+ = select_tag('milestone_title', projects_milestones_options,
+ class: 'select2 trigger-submit', include_blank: true,
+ data: {placeholder: 'Milestone'})
- if @project
.filter-item.inline.labels-filter
- = select_tag('label_name', project_labels_options(@project), class: "select2 trigger-submit", prompt: 'Label')
+ = select_tag('label_name', project_labels_options(@project),
+ class: 'select2 trigger-submit', include_blank: true,
+ data: {placeholder: 'Label'})
.pull-right
= render 'shared/sort_dropdown'