From b6425f33bc0b0547058e96e5ab99a7892d9297f2 Mon Sep 17 00:00:00 2001 From: Marin Jankovski Date: Thu, 26 Jun 2014 14:19:29 +0200 Subject: [PATCH] Get one group milestone based on milestone title. --- .../groups/milestones_controller.rb | 22 +++++++++++-------- app/services/milestones/group_service.rb | 8 +++++++ app/views/groups/milestones/index.html.haml | 2 +- 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/app/controllers/groups/milestones_controller.rb b/app/controllers/groups/milestones_controller.rb index c7eab368e24..a86cc58c021 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 3a7e092a77a..39ae913a72a 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 25e6fddb477..b93ff09d25c 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