summaryrefslogtreecommitdiff
path: root/app/controllers
diff options
context:
space:
mode:
authorrandx <dmitriy.zaporozhets@gmail.com>2012-10-09 22:09:46 +0300
committerrandx <dmitriy.zaporozhets@gmail.com>2012-10-09 22:09:46 +0300
commit679d0d6d760b850e27c13f3ce0f812b8b081df7f (patch)
treee3f088a9139d693e96fd2bd86264150f0d96270c /app/controllers
parent63fe042d97a5430770ec50fc0e8f29c416bd2ec9 (diff)
downloadgitlab-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.rb2
-rw-r--r--app/controllers/dashboard_controller.rb6
-rw-r--r--app/controllers/groups_controller.rb22
-rw-r--r--app/controllers/issues_controller.rb37
-rw-r--r--app/controllers/merge_requests_controller.rb10
-rw-r--r--app/controllers/milestones_controller.rb2
-rw-r--r--app/controllers/refs_controller.rb6
-rw-r--r--app/controllers/search_controller.rb14
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