diff options
author | randx <dmitriy.zaporozhets@gmail.com> | 2012-10-09 22:09:46 +0300 |
---|---|---|
committer | randx <dmitriy.zaporozhets@gmail.com> | 2012-10-09 22:09:46 +0300 |
commit | 679d0d6d760b850e27c13f3ce0f812b8b081df7f (patch) | |
tree | e3f088a9139d693e96fd2bd86264150f0d96270c /app/controllers | |
parent | 63fe042d97a5430770ec50fc0e8f29c416bd2ec9 (diff) | |
download | gitlab-ce-679d0d6d760b850e27c13f3ce0f812b8b081df7f.tar.gz |
Context refactoring. Move Issues list, Search logic to context
Diffstat (limited to 'app/controllers')
-rw-r--r-- | app/controllers/commit_controller.rb | 2 | ||||
-rw-r--r-- | app/controllers/dashboard_controller.rb | 6 | ||||
-rw-r--r-- | app/controllers/groups_controller.rb | 22 | ||||
-rw-r--r-- | app/controllers/issues_controller.rb | 37 | ||||
-rw-r--r-- | app/controllers/merge_requests_controller.rb | 10 | ||||
-rw-r--r-- | app/controllers/milestones_controller.rb | 2 | ||||
-rw-r--r-- | app/controllers/refs_controller.rb | 6 | ||||
-rw-r--r-- | app/controllers/search_controller.rb | 14 |
8 files changed, 27 insertions, 72 deletions
diff --git a/app/controllers/commit_controller.rb b/app/controllers/commit_controller.rb index 25a1f0fe708..97998352255 100644 --- a/app/controllers/commit_controller.rb +++ b/app/controllers/commit_controller.rb @@ -8,7 +8,7 @@ class CommitController < ProjectResourceController before_filter :require_non_empty_project def show - result = CommitLoad.new(project, current_user, params).execute + result = CommitLoadContext.new(project, current_user, params).execute @commit = result[:commit] git_not_found! unless @commit diff --git a/app/controllers/dashboard_controller.rb b/app/controllers/dashboard_controller.rb index ee82d0f44db..0ad73f32b5a 100644 --- a/app/controllers/dashboard_controller.rb +++ b/app/controllers/dashboard_controller.rb @@ -6,7 +6,7 @@ class DashboardController < ApplicationController @projects = current_user.projects_with_events @projects = @projects.page(params[:page]).per(20) - @events = Event.recent_for_user(current_user).limit(20).offset(params[:offset] || 0) + @events = Event.in_projects(current_user.project_ids).limit(20).offset(params[:offset] || 0) @last_push = current_user.recent_push respond_to do |format| @@ -19,14 +19,14 @@ class DashboardController < ApplicationController # Get authored or assigned open merge requests def merge_requests @projects = current_user.projects.all - @merge_requests = current_user.cared_merge_requests.order("created_at DESC").page(params[:page]).per(20) + @merge_requests = current_user.cared_merge_requests.recent.page(params[:page]).per(20) end # Get only assigned issues def issues @projects = current_user.projects.all @user = current_user - @issues = current_user.assigned_issues.opened.order("created_at DESC").page(params[:page]).per(20) + @issues = current_user.assigned_issues.opened.recent.page(params[:page]).per(20) @issues = @issues.includes(:author, :project) respond_to do |format| diff --git a/app/controllers/groups_controller.rb b/app/controllers/groups_controller.rb index 5576bc03fc7..761238a98b5 100644 --- a/app/controllers/groups_controller.rb +++ b/app/controllers/groups_controller.rb @@ -6,10 +6,7 @@ class GroupsController < ApplicationController before_filter :projects def show - @events = Event.where(project_id: project_ids). - order('id DESC'). - limit(20).offset(params[:offset] || 0) - + @events = Event.in_projects(project_ids).limit(20).offset(params[:offset] || 0) @last_push = current_user.recent_push respond_to do |format| @@ -22,14 +19,14 @@ class GroupsController < ApplicationController # Get authored or assigned open merge requests def merge_requests @merge_requests = current_user.cared_merge_requests - @merge_requests = @merge_requests.of_group(@group).order("created_at DESC").page(params[:page]).per(20) + @merge_requests = @merge_requests.of_group(@group).recent.page(params[:page]).per(20) end # Get only assigned issues def issues @user = current_user @issues = current_user.assigned_issues.opened - @issues = @issues.of_group(@group).order("created_at DESC").page(params[:page]).per(20) + @issues = @issues.of_group(@group).recent.page(params[:page]).per(20) @issues = @issues.includes(:author, :project) respond_to do |format| @@ -39,16 +36,11 @@ class GroupsController < ApplicationController end def search - query = params[:search] - - @merge_requests = [] - @issues = [] + result = SearchContext.new(project_ids, params).execute - 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 + @projects = result[:projects] + @merge_requests = result[:merge_requests] + @issues = result[:issues] end def people diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb index 82ae5b37deb..0f28fc3a111 100644 --- a/app/controllers/issues_controller.rb +++ b/app/controllers/issues_controller.rb @@ -1,7 +1,6 @@ class IssuesController < ProjectResourceController before_filter :module_enabled before_filter :issue, only: [:edit, :update, :destroy, :show] - helper_method :issues_filter # Allow read any issue before_filter :authorize_read_issue! @@ -19,7 +18,6 @@ class IssuesController < ProjectResourceController def index @issues = issues_filtered - @issues = @issues.page(params[:page]).per(20) respond_to do |format| @@ -54,7 +52,7 @@ class IssuesController < ProjectResourceController respond_to do |format| format.html do - if @issue.valid? + if @issue.valid? redirect_to project_issue_path(@project, @issue) else render :new @@ -69,7 +67,7 @@ class IssuesController < ProjectResourceController respond_to do |format| format.js - format.html do + format.html do if @issue.valid? redirect_to [@project, @issue] else @@ -134,35 +132,6 @@ class IssuesController < ProjectResourceController end def issues_filtered - @issues = case params[:f] - when issues_filter[:all] then @project.issues - when issues_filter[:closed] then @project.issues.closed - when issues_filter[:to_me] then @project.issues.opened.assigned(current_user) - else @project.issues.opened - end - - @issues = @issues.tagged_with(params[:label_name]) if params[:label_name].present? - @issues = @issues.includes(:author, :project).order("updated_at") - - # Filter by specific assignee_id (or lack thereof)? - if params[:assignee_id].present? - @issues = @issues.where(assignee_id: (params[:assignee_id] == '0' ? nil : params[:assignee_id])) - end - - # Filter by specific milestone_id (or lack thereof)? - if params[:milestone_id].present? - @issues = @issues.where(milestone_id: (params[:milestone_id] == '0' ? nil : params[:milestone_id])) - end - - @issues - end - - def issues_filter - { - all: "all", - closed: "closed", - to_me: "assigned-to-me", - open: "open" - } + @issues = IssuesListContext.new(project, current_user, params).execute end end diff --git a/app/controllers/merge_requests_controller.rb b/app/controllers/merge_requests_controller.rb index f8d84263688..8e180c9baae 100644 --- a/app/controllers/merge_requests_controller.rb +++ b/app/controllers/merge_requests_controller.rb @@ -18,7 +18,7 @@ class MergeRequestsController < ProjectResourceController def index - @merge_requests = MergeRequestsLoad.new(project, current_user, params).execute + @merge_requests = MergeRequestsLoadContext.new(project, current_user, params).execute end def show @@ -55,7 +55,7 @@ class MergeRequestsController < ProjectResourceController @merge_request.reload_code redirect_to [@project, @merge_request], notice: 'Merge request was successfully created.' else - render action: "new" + render action: "new" end end @@ -70,7 +70,7 @@ class MergeRequestsController < ProjectResourceController end def automerge_check - if @merge_request.unchecked? + if @merge_request.unchecked? @merge_request.check_if_can_be_merged end render json: {state: @merge_request.human_state} @@ -125,7 +125,7 @@ class MergeRequestsController < ProjectResourceController def validates_merge_request # Show git not found page if target branch doesnt exist - return git_not_found! unless @project.repo.heads.map(&:name).include?(@merge_request.target_branch) + return git_not_found! unless @project.repo.heads.map(&:name).include?(@merge_request.target_branch) # Show git not found page if source branch doesnt exist # and there is no saved commits between source & target branch @@ -136,7 +136,7 @@ class MergeRequestsController < ProjectResourceController # Build a note object for comment form @note = @project.notes.new(noteable: @merge_request) - # Get commits from repository + # Get commits from repository # or from cache if already merged @commits = @merge_request.commits @commits = CommitDecorator.decorate(@commits) diff --git a/app/controllers/milestones_controller.rb b/app/controllers/milestones_controller.rb index 68479a26923..f8fe987c437 100644 --- a/app/controllers/milestones_controller.rb +++ b/app/controllers/milestones_controller.rb @@ -54,7 +54,7 @@ class MilestonesController < ProjectResourceController respond_to do |format| format.js - format.html do + format.html do if @milestone.valid? redirect_to [@project, @milestone] else diff --git a/app/controllers/refs_controller.rb b/app/controllers/refs_controller.rb index d3fc816bfd9..6a1a3606360 100644 --- a/app/controllers/refs_controller.rb +++ b/app/controllers/refs_controller.rb @@ -9,9 +9,9 @@ class RefsController < ProjectResourceController before_filter :ref before_filter :define_tree_vars, only: [:blob, :logs_tree] - def switch - respond_to do |format| - format.html do + def switch + respond_to do |format| + format.html do new_path = if params[:destination] == "tree" project_tree_path(@project, @ref) else diff --git a/app/controllers/search_controller.rb b/app/controllers/search_controller.rb index 71e2d92b2b2..1dc8507e019 100644 --- a/app/controllers/search_controller.rb +++ b/app/controllers/search_controller.rb @@ -1,15 +1,9 @@ class SearchController < ApplicationController def show - query = params[:search] + result = SearchContext.new(current_user.project_ids, params).execute - @projects = [] - @merge_requests = [] - @issues = [] - - if query.present? - @projects = current_user.projects.search(query).limit(10) - @merge_requests = MergeRequest.where(project_id: current_user.project_ids).search(query).limit(10) - @issues = Issue.where(project_id: current_user.project_ids).search(query).limit(10) - end + @projects = result[:projects] + @merge_requests = result[:merge_requests] + @issues = result[:issues] end end |