File: has_pill.rb

package info (click to toggle)
gitlab 17.6.5-19
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 629,368 kB
  • sloc: ruby: 1,915,304; javascript: 557,307; sql: 60,639; xml: 6,509; sh: 4,567; makefile: 1,239; python: 406
file content (40 lines) | stat: -rw-r--r-- 1,043 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# frozen_string_literal: true

# This module introduces the logic to show the "pill" element
# next to the menu item, indicating the a count.
module Sidebars
  module Concerns
    module HasPill
      include ActionView::Helpers::NumberHelper

      def has_pill?
        false
      end

      # In this method we will need to provide the query
      # to retrieve the elements count
      def pill_count; end

      # The GraphQL field name from `SidebarType` that will be used
      # as the pill count for this menu item.
      # This is used when the count is expensive and we want to fetch it separately
      # from GraphQL.
      def pill_count_field; end

      def pill_html_options
        {}
      end

      def format_cached_count(threshold, count)
        if count > threshold
          number_to_human(
            count,
            units: { thousand: 'k', million: 'm' }, precision: 1, significant: false, format: '%n%u'
          )
        else
          number_with_delimiter(count)
        end
      end
    end
  end
end