diff --git a/app/controllers/groups/milestones_controller.rb b/app/controllers/groups/milestones_controller.rb index c7eab368e24a5fd13a3bd6256b474f482d3f66aa..a86cc58c02109cfa23a41ffd232284eedacf74f7 100644 --- a/app/controllers/groups/milestones_controller.rb +++ b/app/controllers/groups/milestones_controller.rb @@ -2,8 +2,7 @@ class Groups::MilestonesController < ApplicationController layout 'group' def index - @group = group - project_milestones = Milestone.where(project_id: @group.projects) + 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 @@ -12,16 +11,17 @@ class Groups::MilestonesController < ApplicationController end end + def show + project_milestones = Milestone.where(project_id: group.projects) + @group_milestones = Milestones::GroupService.new(project_milestones).milestone(title) + 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 = Milestones::GroupService.new(project_milestones).milestone(title) - @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 + @group_milestones.each do |milestone| + Milestones::UpdateService.new(milestone.project, current_user, params[:milestone]).execute(milestone) end respond_to do |format| @@ -38,6 +38,10 @@ class Groups::MilestonesController < ApplicationController @group ||= Group.find_by(path: params[:group_id]) end + def title + params[:id].gsub("-", ".") + end + def status(state) @group_milestones.map{ |milestone| next if milestone.state != state; milestone }.compact end diff --git a/app/services/milestones/group_service.rb b/app/services/milestones/group_service.rb index 3a7e092a77aabca9bdb92a6e122a72e098d84926..39ae913a72a8ce331a6dfac80eebc023cd5f1928 100644 --- a/app/services/milestones/group_service.rb +++ b/app/services/milestones/group_service.rb @@ -8,5 +8,13 @@ module Milestones @project_milestones.map{ |title, milestone| GroupMilestone.new(title, milestone) } end + def milestone(title) + if title + @project_milestones[title] + else + nil + end + end + end end diff --git a/app/views/groups/milestones/index.html.haml b/app/views/groups/milestones/index.html.haml index 25e6fddb4779a7b69539174626661822d42d6853..b93ff09d25c12bc7c486bc4b74ed0b6034305505 100644 --- a/app/views/groups/milestones/index.html.haml +++ b/app/views/groups/milestones/index.html.haml @@ -30,7 +30,7 @@ - else = link_to 'Close Milestone', group_milestone_path(@group, safe_title, milestone: {state_event: :close }), method: :put, class: "btn btn-small btn-remove" %h4 - = link_to_gfm truncate(milestone.title, length: 100), root_path + = link_to_gfm truncate(milestone.title, length: 100), group_milestone_path(@group, safe_title) %div %div = link_to root_path do