diff options
Diffstat (limited to 'app/controllers/projects/branches_controller.rb')
-rw-r--r-- | app/controllers/projects/branches_controller.rb | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/app/controllers/projects/branches_controller.rb b/app/controllers/projects/branches_controller.rb index 7b01e4db42a..f19f143816f 100644 --- a/app/controllers/projects/branches_controller.rb +++ b/app/controllers/projects/branches_controller.rb @@ -19,8 +19,10 @@ class Projects::BranchesController < Projects::ApplicationController def index respond_to do |format| format.html do - @mode = params[:state].presence || 'overview' - @sort = sort_value_for_mode + @mode = fetch_mode + next render_404 unless @mode + + @sort = sort_param || default_sort @overview_max_branches = 5 # Fetch branches for the specified mode @@ -128,11 +130,7 @@ class Projects::BranchesController < Projects::ApplicationController private - def sort_value_for_mode - custom_sort || default_sort - end - - def custom_sort + def sort_param sort = params[:sort].presence unless sort.in?(supported_sort_options) @@ -144,11 +142,11 @@ class Projects::BranchesController < Projects::ApplicationController end def default_sort - 'stale' == @mode ? sort_value_oldest_updated : sort_value_recently_updated + 'stale' == @mode ? SORT_UPDATED_OLDEST : SORT_UPDATED_RECENT end def supported_sort_options - [nil, sort_value_name, sort_value_oldest_updated, sort_value_recently_updated] + [nil, SORT_NAME, SORT_UPDATED_OLDEST, SORT_UPDATED_RECENT] end # It can be expensive to calculate the diverging counts for each @@ -206,15 +204,23 @@ class Projects::BranchesController < Projects::ApplicationController limit = @overview_max_branches + 1 @active_branches = - BranchesFinder.new(@repository, { per_page: limit, sort: sort_value_recently_updated }) + BranchesFinder.new(@repository, { per_page: limit, sort: SORT_UPDATED_RECENT }) .execute(gitaly_pagination: true).select(&:active?) @stale_branches = - BranchesFinder.new(@repository, { per_page: limit, sort: sort_value_oldest_updated }) + BranchesFinder.new(@repository, { per_page: limit, sort: SORT_UPDATED_OLDEST }) .execute(gitaly_pagination: true).select(&:stale?) @branches = @active_branches + @stale_branches end + def fetch_mode + state = params[:state].presence + + return 'overview' unless state + + state.presence_in(%w[active stale all overview]) + end + def confidential_issue_project return if params[:confidential_issue_project_id].blank? |