Move all stuff to groups controller
This commit is contained in:
parent
f9eda9b33a
commit
1b6a3dfec9
16 changed files with 339 additions and 27 deletions
|
@ -3,21 +3,14 @@ class DashboardController < ApplicationController
|
|||
|
||||
def index
|
||||
@groups = Group.where(id: current_user.projects.pluck(:group_id))
|
||||
|
||||
@projects = current_user.projects_with_events
|
||||
|
||||
if params[:group].present?
|
||||
@group = Group.find_by_code(params[:group])
|
||||
@projects = @projects.where(group_id: @group.id)
|
||||
end
|
||||
|
||||
@projects = @projects.page(params[:page]).per(40)
|
||||
|
||||
@events = Event.recent_for_user(current_user).limit(20).offset(params[:offset] || 0)
|
||||
@last_push = current_user.recent_push
|
||||
|
||||
respond_to do |format|
|
||||
format.html { render 'index', layout: determine_layout }
|
||||
format.html
|
||||
format.js
|
||||
format.atom { render layout: false }
|
||||
end
|
||||
|
@ -41,10 +34,4 @@ class DashboardController < ApplicationController
|
|||
format.atom { render layout: false }
|
||||
end
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def determine_layout
|
||||
@group ? 'group' : 'application'
|
||||
end
|
||||
end
|
||||
|
|
69
app/controllers/groups_controller.rb
Normal file
69
app/controllers/groups_controller.rb
Normal file
|
@ -0,0 +1,69 @@
|
|||
class GroupsController < ApplicationController
|
||||
respond_to :html
|
||||
layout 'group'
|
||||
|
||||
before_filter :group
|
||||
before_filter :projects
|
||||
|
||||
def show
|
||||
@events = Event.where(project_id: project_ids).
|
||||
order('id DESC').
|
||||
limit(20).offset(params[:offset] || 0)
|
||||
|
||||
@last_push = current_user.recent_push
|
||||
|
||||
respond_to do |format|
|
||||
format.html
|
||||
format.js
|
||||
format.atom { render layout: false }
|
||||
end
|
||||
end
|
||||
|
||||
# Get authored or assigned open merge requests
|
||||
def merge_requests
|
||||
@merge_requests = current_user.cared_merge_requests.order("created_at DESC").page(params[:page]).per(20)
|
||||
end
|
||||
|
||||
# Get only assigned issues
|
||||
def issues
|
||||
@user = current_user
|
||||
@issues = current_user.assigned_issues.opened.order("created_at DESC").page(params[:page]).per(20)
|
||||
@issues = @issues.includes(:author, :project)
|
||||
|
||||
respond_to do |format|
|
||||
format.html
|
||||
format.atom { render layout: false }
|
||||
end
|
||||
end
|
||||
|
||||
def search
|
||||
query = params[:search]
|
||||
|
||||
@merge_requests = []
|
||||
@issues = []
|
||||
|
||||
if query.present?
|
||||
@projects = @projects.search(query).limit(10)
|
||||
@merge_requests = MergeRequest.where(project_id: project_ids).search(query).limit(10)
|
||||
@issues = Issue.where(project_id: project_ids).search(query).limit(10)
|
||||
end
|
||||
end
|
||||
|
||||
def people
|
||||
@users = group.projects.map(&:users).flatten.uniq
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def group
|
||||
@group ||= Group.find_by_code(params[:id])
|
||||
end
|
||||
|
||||
def projects
|
||||
@projects ||= current_user.projects_with_events.where(group_id: @group.id)
|
||||
end
|
||||
|
||||
def project_ids
|
||||
projects.map(&:id)
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue