summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarin Jankovski <marin@gitlab.com>2014-06-26 11:58:40 +0200
committerMarin Jankovski <marin@gitlab.com>2014-06-30 09:44:30 +0200
commit4ca8a175a2695dd2fc28084253a4471bad30bf00 (patch)
treeca4ac77b34da9e2351f355fe44c11ef8af03d951
parent0723bf1afaaf13ddcb58c211161389052d18e501 (diff)
downloadgitlab-ce-4ca8a175a2695dd2fc28084253a4471bad30bf00.tar.gz
Filter group milestones.
-rw-r--r--app/controllers/groups/milestones_controller.rb10
-rw-r--r--app/helpers/groups_helper.rb3
-rw-r--r--app/models/group_milestone.rb9
-rw-r--r--app/views/groups/_filter.html.haml4
-rw-r--r--app/views/groups/milestones/index.html.haml42
5 files changed, 42 insertions, 26 deletions
diff --git a/app/controllers/groups/milestones_controller.rb b/app/controllers/groups/milestones_controller.rb
index cb5fed0bc3e..5e810942d1c 100644
--- a/app/controllers/groups/milestones_controller.rb
+++ b/app/controllers/groups/milestones_controller.rb
@@ -6,6 +6,16 @@ class Groups::MilestonesController < ApplicationController
project_ids = @group.projects
project_milestones = Milestone.where(project_id: project_ids)
@group_milestones = Milestones::GroupService.new(project_milestones).execute
+ @group_milestones = case params[:status]
+ when 'all'; @group_milestones
+ when 'closed'; status('closed')
+ else status('active')
+ end
end
+ private
+
+ def status(state)
+ @group_milestones.map{ |milestone| next if milestone.state != state; milestone }.compact
+ end
end
diff --git a/app/helpers/groups_helper.rb b/app/helpers/groups_helper.rb
index 0762a6925b3..0dc53dedeb7 100644
--- a/app/helpers/groups_helper.rb
+++ b/app/helpers/groups_helper.rb
@@ -35,8 +35,7 @@ module GroupsHelper
def group_filter_path(entity, options={})
exist_opts = {
- state: params[:state],
- scope: params[:scope]
+ status: params[:status]
}
options = exist_opts.merge(options)
diff --git a/app/models/group_milestone.rb b/app/models/group_milestone.rb
index c2fb3a5edee..132c0eb2497 100644
--- a/app/models/group_milestone.rb
+++ b/app/models/group_milestone.rb
@@ -38,4 +38,13 @@ class GroupMilestone
rescue ZeroDivisionError
100
end
+
+ def state
+ state = milestones.map{ |milestone| milestone.state }
+ if state.all?{ |milestone_state| milestone_state == 'active' }
+ 'active'
+ else
+ 'closed'
+ end
+ end
end
diff --git a/app/views/groups/_filter.html.haml b/app/views/groups/_filter.html.haml
index 2e97ea40afe..393be3f1d12 100644
--- a/app/views/groups/_filter.html.haml
+++ b/app/views/groups/_filter.html.haml
@@ -1,8 +1,8 @@
= form_tag group_filter_path(entity), method: 'get' do
%fieldset
%ul.nav.nav-pills.nav-stacked
- %li{class: ("active" if !params[:status])}
- = link_to group_filter_path(entity, status: nil) do
+ %li{class: ("active" if (params[:status] == 'active' || !params[:status]))}
+ = link_to group_filter_path(entity, status: 'active') do
Active
%li{class: ("active" if params[:status] == 'closed')}
= link_to group_filter_path(entity, status: 'closed') do
diff --git a/app/views/groups/milestones/index.html.haml b/app/views/groups/milestones/index.html.haml
index 97cc88db522..9ce8bf32aea 100644
--- a/app/views/groups/milestones/index.html.haml
+++ b/app/views/groups/milestones/index.html.haml
@@ -13,7 +13,7 @@
.fixed.sidebar-expand-button.hidden-lg.hidden-md
%i.icon-list.icon-2x
.col-md-3.responsive-side
- = render 'groups/filter', entity: 'milestones'
+ = render 'groups/filter', entity: 'milestone'
.col-md-9
.panel.panel-default
%ul.well-list
@@ -22,27 +22,25 @@
.nothing-here-block No milestones to show
- else
- @group_milestones.each do |milestone|
- %li{class: "milestone milestone-open", id: 1 }
- .pull-right
- = link_to 'Close Milestone', root_path, method: :put, remote: true, class: "btn btn-small btn-remove"
+ %li{class: "milestone milestone-#{milestone.state == 'closed' ? 'closed' : 'open'}", id: dom_id(milestone.milestones.first) }
+ - unless milestone.state == 'closed'
+ .pull-right
+ = link_to 'Close Milestone', root_path, method: :put, remote: true, class: "btn btn-small btn-remove"
%h4
= link_to_gfm truncate(milestone.title, length: 100), root_path
- - if false
- %span.muted Empty
- - else
+ %div
%div
- %div
- = link_to root_path do
- = pluralize milestone.issue_count, 'Issue'
- &nbsp;
- = link_to root_path do
- = pluralize milestone.merge_requests_count, 'Merge Request'
- &nbsp;
- %span.light #{milestone.percent_complete}% complete
- .progress.progress-info
- .progress-bar{style: "width: #{milestone.percent_complete}%;"}
- %div
- %br
- - milestone.project_names.each do |name|
- %span.label.label-default
- = name
+ = link_to root_path do
+ = pluralize milestone.issue_count, 'Issue'
+ &nbsp;
+ = link_to root_path do
+ = pluralize milestone.merge_requests_count, 'Merge Request'
+ &nbsp;
+ %span.light #{milestone.percent_complete}% complete
+ .progress.progress-info
+ .progress-bar{style: "width: #{milestone.percent_complete}%;"}
+ %div
+ %br
+ - milestone.project_names.each do |name|
+ %span.label.label-default
+ = name