Files
gitlabhq/app/controllers/dashboard_controller.rb
T
Robert SpeicherandRémy Coutable 1dc218ed76 Merge branch 'dashboard-labels' into 'master'
Dashboard labels

Previously because there were no JSON endpoint for labels or milestones
it was fetching HTML and parsing that. This is wrong.

It now fetches from a JSON endpoint.

This also fixes the dashboard/issues page not loading labels or
milestones as the path used to be only for a single project. So instead
I have created a endpoint for labels & milestones JSON on dashboard.

See merge request !3253
2016-03-18 20:57:37 +01:00

58 lines
1.2 KiB
Ruby

class DashboardController < Dashboard::ApplicationController
include IssuesAction
include MergeRequestsAction
before_action :event_filter, only: :activity
before_action :projects, only: [:issues, :merge_requests, :labels, :milestones]
respond_to :html
def activity
@last_push = current_user.recent_push
respond_to do |format|
format.html
format.json do
load_events
pager_json("events/_events", @events.count)
end
end
end
def labels
respond_to do |format|
format.json do
render json: view_context.projects_labels_options
end
end
end
def milestones
respond_to do |format|
format.json do
render json: view_context.projects_milestones_options
end
end
end
protected
def load_events
projects =
if params[:filter] == "starred"
current_user.starred_projects
else
current_user.authorized_projects
end
@events = Event.in_projects(projects)
@events = @event_filter.apply_filter(@events).with_associations
@events = @events.limit(20).offset(params[:offset] || 0)
end
def projects
@projects ||= current_user.authorized_projects.sorted_by_activity.non_archived
end
end