summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhil Hughes <me@iamphill.com>2016-03-24 15:20:35 +0000
committerPhil Hughes <me@iamphill.com>2016-03-29 11:59:13 +0100
commit88024b17c03f5cc834465574c55a566f8f1a5819 (patch)
treedd3dc42801c5553103e6a9d6922918266b6377e1
parent3aeda8c94f446931a38f3dcc22b7c835ef5cc818 (diff)
downloadgitlab-ce-88024b17c03f5cc834465574c55a566f8f1a5819.tar.gz
Standardised the output of the JSON to always include the name
The frontend will then always use the name as the ID - like previous
-rw-r--r--app/assets/javascripts/milestone_select.js.coffee22
-rw-r--r--app/controllers/projects/milestones_controller.rb2
-rw-r--r--app/finders/issuable_finder.rb2
-rw-r--r--app/helpers/issuables_helper.rb14
-rw-r--r--app/models/global_milestone.rb3
-rw-r--r--app/views/shared/issuable/_milestone_dropdown.html.haml2
6 files changed, 31 insertions, 14 deletions
diff --git a/app/assets/javascripts/milestone_select.js.coffee b/app/assets/javascripts/milestone_select.js.coffee
index 10c776a0501..b569b7eb7bf 100644
--- a/app/assets/javascripts/milestone_select.js.coffee
+++ b/app/assets/javascripts/milestone_select.js.coffee
@@ -50,19 +50,22 @@ class @MilestoneSelect
extraOptions = []
if showAny
extraOptions.push(
- isAny: true
+ id: 0
+ name: ''
title: 'Any Milestone'
)
if showNo
extraOptions.push(
- id: '0'
+ id: -1
+ name: 'No Milestone'
title: 'No Milestone'
)
if showUpcoming
extraOptions.push(
- id: '#upcoming'
+ id: -2
+ name: '#upcoming'
title: 'Upcoming'
)
>>>>>>> Updated to only include upcoming on filters
@@ -84,14 +87,11 @@ class @MilestoneSelect
milestone.title
id: (milestone) ->
if !useId
- if !milestone.isAny?
- milestone.title
- else
- ''
+ milestone.name
else
milestone.id
isSelected: (milestone) ->
- milestone.title is selectedMilestone
+ milestone.name is selectedMilestone
hidden: ->
$selectbox.hide()
$value.show()
@@ -99,8 +99,10 @@ class @MilestoneSelect
if $dropdown.hasClass 'js-filter-bulk-update'
return
- if $dropdown.hasClass 'js-filter-submit'
- if selected.title?
+ if $dropdown.hasClass('js-filter-submit') and (isIssueIndex or isMRIndex)
+ if selected.name?
+ selectedMilestone = selected.name
+ else if selected.title?
selectedMilestone = selected.title
$dropdown.parents('form').submit()
else
diff --git a/app/controllers/projects/milestones_controller.rb b/app/controllers/projects/milestones_controller.rb
index 5b0a63a933c..f7b6d137bde 100644
--- a/app/controllers/projects/milestones_controller.rb
+++ b/app/controllers/projects/milestones_controller.rb
@@ -24,7 +24,7 @@ class Projects::MilestonesController < Projects::ApplicationController
@milestones = @milestones.page(params[:page])
end
format.json do
- render json: @milestones
+ render json: @milestones.to_json(methods: :name)
end
end
end
diff --git a/app/finders/issuable_finder.rb b/app/finders/issuable_finder.rb
index a7799b91eb8..f1df6832bf6 100644
--- a/app/finders/issuable_finder.rb
+++ b/app/finders/issuable_finder.rb
@@ -243,7 +243,7 @@ class IssuableFinder
end
def filter_by_upcoming_milestone?
- params[:milestone_title] == 'Upcoming'
+ params[:milestone_title] == Milestone::Upcoming.name
end
def by_milestone(items)
diff --git a/app/helpers/issuables_helper.rb b/app/helpers/issuables_helper.rb
index 62050691a39..53e53977da2 100644
--- a/app/helpers/issuables_helper.rb
+++ b/app/helpers/issuables_helper.rb
@@ -47,6 +47,20 @@ module IssuablesHelper
end
end
+ def milestone_dropdown_label(milestone_title, default_label)
+ milestone_title = if milestone_title == Milestone::Upcoming.name
+ Milestone::Upcoming.title
+ else
+ milestone_title
+ end
+
+ if !milestone_title.nil? && !milestone_title.empty?
+ h(milestone_title)
+ else
+ default_label
+ end
+ end
+
private
def sidebar_gutter_collapsed?
diff --git a/app/models/global_milestone.rb b/app/models/global_milestone.rb
index 97bd79af083..9c0e7e4fb63 100644
--- a/app/models/global_milestone.rb
+++ b/app/models/global_milestone.rb
@@ -8,12 +8,13 @@ class GlobalMilestone
milestones = milestones.group_by(&:title)
milestones.map do |title, milestones|
- new(title, milestones)
+ new(title, milestones)
end
end
def initialize(title, milestones)
@title = title
+ @name = title
@milestones = milestones
end
diff --git a/app/views/shared/issuable/_milestone_dropdown.html.haml b/app/views/shared/issuable/_milestone_dropdown.html.haml
index 05841ba4392..cfa45d22b3e 100644
--- a/app/views/shared/issuable/_milestone_dropdown.html.haml
+++ b/app/views/shared/issuable/_milestone_dropdown.html.haml
@@ -1,6 +1,6 @@
- if params[:milestone_title]
= hidden_field_tag(:milestone_title, params[:milestone_title])
-= dropdown_tag(h(params[:milestone_title].presence || "Milestone"), options: { title: "Filter by milestone", toggle_class: 'js-milestone-select js-filter-submit', filter: true, dropdown_class: "dropdown-menu-selectable",
+= dropdown_tag(milestone_dropdown_label(params[:milestone_title], "Milestone"), options: { title: "Filter by milestone", toggle_class: 'js-milestone-select js-filter-submit', filter: true, dropdown_class: "dropdown-menu-selectable",
placeholder: "Search milestones", footer_content: @project.present?, data: { show_no: true, show_any: true, show_upcoming: true, field_name: "milestone_title", selected: params[:milestone_title], project_id: @project.try(:id), milestones: milestones_filter_dropdown_path, default_label: "Milestone" } }) do
- if @project
%ul.dropdown-footer-list