diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2013-08-10 20:25:53 +0300 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2013-08-10 20:25:53 +0300 |
commit | 3281021e8b42ba4d0fff5be268f5c43dd6ab4ff8 (patch) | |
tree | 20475f6cee307d65b584a0c41bcabe40decd5f40 /app/contexts | |
parent | 5b8cc95d6e12cf01b81d3ab06b2110847107241f (diff) | |
download | gitlab-ce-3281021e8b42ba4d0fff5be268f5c43dd6ab4ff8.tar.gz |
Rewrite issues/mr filtering logic
Diffstat (limited to 'app/contexts')
-rw-r--r-- | app/contexts/issues/list_context.rb | 20 | ||||
-rw-r--r-- | app/contexts/merge_requests_load_context.rb | 14 |
2 files changed, 21 insertions, 13 deletions
diff --git a/app/contexts/issues/list_context.rb b/app/contexts/issues/list_context.rb index 906a83b58a6..da2eed0e259 100644 --- a/app/contexts/issues/list_context.rb +++ b/app/contexts/issues/list_context.rb @@ -1,16 +1,20 @@ module Issues class ListContext < BaseContext - include IssuesHelper - attr_accessor :issues def execute - @issues = case params[:status] - when issues_filter[:all] then @project.issues - when issues_filter[:closed] then @project.issues.closed - when issues_filter[:to_me] then @project.issues.assigned_to(current_user) - when issues_filter[:by_me] then @project.issues.authored(current_user) - else @project.issues.opened + @issues = @project.issues + + @issues = case params[:state] + when 'all' then @issues + when 'closed' then @issues.closed + else @issues.opened + end + + @issues = case params[:scope] + when 'assigned-to-me' then @issues.assigned_to(current_user) + when 'created-by-me' then @issues.authored(current_user) + else @issues end @issues = @issues.tagged_with(params[:label_name]) if params[:label_name].present? diff --git a/app/contexts/merge_requests_load_context.rb b/app/contexts/merge_requests_load_context.rb index 40b4c7bac74..c3408db6e11 100644 --- a/app/contexts/merge_requests_load_context.rb +++ b/app/contexts/merge_requests_load_context.rb @@ -2,17 +2,21 @@ # based on filtering passed via params for @project class MergeRequestsLoadContext < BaseContext def execute - type = params[:status] + merge_requests = @project.merge_requests - merge_requests = project.merge_requests - - merge_requests = case type + merge_requests = case params[:state] when 'all' then merge_requests when 'closed' then merge_requests.closed - when 'assigned-to-me' then merge_requests.opened.assigned_to(current_user) else merge_requests.opened end + merge_requests = case params[:scope] + when 'assigned-to-me' then merge_requests.assigned_to(current_user) + when 'created-by-me' then merge_requests.authored(current_user) + else merge_requests + end + + merge_requests = merge_requests.page(params[:page]).per(20) merge_requests = merge_requests.includes(:author, :source_project, :target_project).order("created_at desc") |