34 lines
1 KiB
Ruby
34 lines
1 KiB
Ruby
class Dashboard::MilestonesController < Dashboard::ApplicationController
|
|
before_action :load_projects
|
|
|
|
def index
|
|
project_milestones = case params[:state]
|
|
when 'all'; state
|
|
when 'closed'; state('closed')
|
|
else state('active')
|
|
end
|
|
@dashboard_milestones = Milestones::GroupService.new(project_milestones).execute
|
|
@dashboard_milestones = Kaminari.paginate_array(@dashboard_milestones).page(params[:page]).per(PER_PAGE)
|
|
end
|
|
|
|
def show
|
|
project_milestones = Milestone.where(project_id: @projects).order("due_date ASC")
|
|
@dashboard_milestone = Milestones::GroupService.new(project_milestones).milestone(title)
|
|
end
|
|
|
|
private
|
|
|
|
def load_projects
|
|
@projects = current_user.authorized_projects.sorted_by_activity.non_archived
|
|
end
|
|
|
|
def title
|
|
params[:title]
|
|
end
|
|
|
|
def state(state = nil)
|
|
conditions = { project_id: @projects }
|
|
conditions.reverse_merge!(state: state) if state
|
|
Milestone.where(conditions).order("title ASC")
|
|
end
|
|
end
|