summaryrefslogtreecommitdiff
path: root/app/controllers/dashboard/milestones_controller.rb
diff options
context:
space:
mode:
authorDouwe Maan <douwe@gitlab.com>2015-03-03 16:19:37 +0100
committerDouwe Maan <douwe@gitlab.com>2015-03-03 16:19:37 +0100
commitfbc3cb69c327e52a002c7909c257c43c9a2f5ba5 (patch)
tree7a42aac8eb05242dde9cf529f5537a4aa91d3703 /app/controllers/dashboard/milestones_controller.rb
parent2f4656b5c7e2a9b351237432e76a7b928a1684b1 (diff)
downloadgitlab-ce-fbc3cb69c327e52a002c7909c257c43c9a2f5ba5.tar.gz
Add dashboard milestones.
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..386e283f3a0
--- /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(30)
+ 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