From dab53a1ef28ecc281d574b50d3433e806db375cd Mon Sep 17 00:00:00 2001 From: erdgeist Date: Sun, 2 Aug 2026 14:31:50 +0200 Subject: Keep the compared translation independent of the interface language --- app/helpers/revisions_helper.rb | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'app/helpers') diff --git a/app/helpers/revisions_helper.rb b/app/helpers/revisions_helper.rb index a6290133..25a2aa38 100644 --- a/app/helpers/revisions_helper.rb +++ b/app/helpers/revisions_helper.rb @@ -4,4 +4,21 @@ module RevisionsHelper def describe_page_reference(ref) %w[head draft autosave].include?(ref.to_s) ? ref.to_s.capitalize : "revision #{ref}" end + + def neighbour_revision_pairs node, start_ref, end_ref + return [nil, nil] unless start_ref.to_s.match?(/\A\d+\z/) && + end_ref.to_s.match?(/\A\d+\z/) + + a, b = start_ref.to_i, end_ref.to_i + return [nil, nil] unless (a - b).abs == 1 + + lo, hi = [a, b].minmax + forward = a < b + earlier = forward ? [lo - 1, lo] : [lo, lo - 1] + later = forward ? [hi, hi + 1] : [hi + 1, hi] + + [earlier, later].map do |pair| + pair if pair.all? { |rev| node.pages.exists?(:revision => rev) } + end + end end -- cgit v1.3