summaryrefslogtreecommitdiff
path: root/app/services/projects/blame_service.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/services/projects/blame_service.rb')
-rw-r--r--app/services/projects/blame_service.rb17
1 files changed, 10 insertions, 7 deletions
diff --git a/app/services/projects/blame_service.rb b/app/services/projects/blame_service.rb
index b324ea27360..57b913b04e6 100644
--- a/app/services/projects/blame_service.rb
+++ b/app/services/projects/blame_service.rb
@@ -10,6 +10,7 @@ module Projects
@blob = blob
@commit = commit
@page = extract_page(params)
+ @pagination_enabled = pagination_state(params)
end
attr_reader :page
@@ -19,7 +20,7 @@ module Projects
end
def pagination
- return unless pagination_enabled?
+ return unless pagination_enabled
Kaminari.paginate_array([], total_count: blob_lines_count, limit: per_page)
.tap { |pagination| pagination.max_paginates_per(per_page) }
@@ -28,10 +29,10 @@ module Projects
private
- attr_reader :blob, :commit
+ attr_reader :blob, :commit, :pagination_enabled
def blame_range
- return unless pagination_enabled?
+ return unless pagination_enabled
first_line = (page - 1) * per_page + 1
last_line = (first_line + per_page).to_i - 1
@@ -51,6 +52,12 @@ module Projects
PER_PAGE
end
+ def pagination_state(params)
+ return false if Gitlab::Utils.to_boolean(params[:no_pagination], default: false)
+
+ Feature.enabled?(:blame_page_pagination, commit.project)
+ end
+
def overlimit?(page)
page * per_page >= blob_lines_count + per_page
end
@@ -58,9 +65,5 @@ module Projects
def blob_lines_count
@blob_lines_count ||= blob.data.lines.count
end
-
- def pagination_enabled?
- Feature.enabled?(:blame_page_pagination, commit.project)
- end
end
end