summaryrefslogtreecommitdiff
path: root/app/controllers/dashboard/milestones_controller.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers/dashboard/milestones_controller.rb')
-rw-r--r--app/controllers/dashboard/milestones_controller.rb34
1 files changed, 34 insertions, 0 deletions
diff --git a/app/controllers/dashboard/milestones_controller.rb b/app/controllers/dashboard/milestones_controller.rb
new file mode 100644
index 00000000000..cb51792df16
--- /dev/null
+++ b/app/controllers/dashboard/milestones_controller.rb
@@ -0,0 +1,34 @@
+class Dashboard::MilestonesController < ApplicationController
+ before_filter :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