summaryrefslogtreecommitdiff
path: root/app/controllers/groups/milestones_controller.rb
diff options
context:
space:
mode:
authorMarin Jankovski <marin@gitlab.com>2014-06-26 13:32:35 +0200
committerMarin Jankovski <marin@gitlab.com>2014-06-30 09:44:30 +0200
commitf0af302c8323cf18943d6de5854bbbaa32d891a9 (patch)
tree57be261e161d3ba238bcba768b5ff04fc7065f01 /app/controllers/groups/milestones_controller.rb
parent4ca8a175a2695dd2fc28084253a4471bad30bf00 (diff)
downloadgitlab-ce-f0af302c8323cf18943d6de5854bbbaa32d891a9.tar.gz
Close and reopen group milestones.
Diffstat (limited to 'app/controllers/groups/milestones_controller.rb')
-rw-r--r--app/controllers/groups/milestones_controller.rb29
1 files changed, 26 insertions, 3 deletions
diff --git a/app/controllers/groups/milestones_controller.rb b/app/controllers/groups/milestones_controller.rb
index 5e810942d1c..c7eab368e24 100644
--- a/app/controllers/groups/milestones_controller.rb
+++ b/app/controllers/groups/milestones_controller.rb
@@ -2,9 +2,8 @@ class Groups::MilestonesController < ApplicationController
layout 'group'
def index
- @group = Group.find_by(path: params[:group_id])
- project_ids = @group.projects
- project_milestones = Milestone.where(project_id: project_ids)
+ @group = group
+ project_milestones = Milestone.where(project_id: @group.projects)
@group_milestones = Milestones::GroupService.new(project_milestones).execute
@group_milestones = case params[:status]
when 'all'; @group_milestones
@@ -13,8 +12,32 @@ class Groups::MilestonesController < ApplicationController
end
end
+ def update
+ project_milestones = Milestone.where(project_id: group.projects)
+ @group_milestones = Milestones::GroupService.new(project_milestones).execute
+ title = params[:id].gsub("-", ".")
+
+ @group_milestones.each do |group_milestone|
+ next unless group_milestone.title == title
+ group_milestone.milestones.each do |milestone|
+ Milestones::UpdateService.new(milestone.project, current_user, params[:milestone]).execute(milestone)
+ end
+ end
+
+ respond_to do |format|
+ format.js
+ format.html do
+ redirect_to group_milestones_path(group)
+ end
+ end
+ end
+
private
+ def group
+ @group ||= Group.find_by(path: params[:group_id])
+ end
+
def status(state)
@group_milestones.map{ |milestone| next if milestone.state != state; milestone }.compact
end