Module: Katello::Concerns::HostsControllerExtensions::Overrides

Defined in:
app/controllers/katello/concerns/hosts_controller_extensions.rb

Constant Summary collapse

DEFAULT_KATELLO_COLUMNS =
[:installable_updates, :content_view_environments, :registered_at, :last_checkin].freeze

Instance Method Summary collapse

Instance Method Details

#action_permissionObject



10
11
12
13
14
15
16
17
# File 'app/controllers/katello/concerns/hosts_controller_extensions.rb', line 10

def action_permission
  case params[:action]
  when 'change_content_source'
    'edit'
  else
    super
  end
end

#csv_pageletsObject



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'app/controllers/katello/concerns/hosts_controller_extensions.rb', line 19

def csv_pagelets
  base_pagelets = super
  # Only append Katello pagelets for /new/hosts.csv
  return base_pagelets unless request.path.start_with?('/new/hosts')

  # Get Katello pagelets from the :content profile
  if @selected_columns
    # User has customized columns - use their selection
    katello_pagelets = Pagelets::Manager.pagelets_at('hosts/_list', 'hosts_table_column_header', profile: :content, filter: { selected: @selected_columns })
  else
    # No customization - use default Katello columns matching content_hosts method
    all_katello_pagelets = Pagelets::Manager.pagelets_at('hosts/_list', 'hosts_table_column_header', profile: :content)
    katello_pagelets = all_katello_pagelets.select { |p| DEFAULT_KATELLO_COLUMNS.include?(p.opts[:key]) }
  end

  # Exclude pagelets that are already in base (like :name which uses use_pagelet)
  existing_keys = base_pagelets.map { |p| p.opts[:key] }
  katello_pagelets = katello_pagelets.reject { |p| existing_keys.include?(p.opts[:key]) }

  base_pagelets + katello_pagelets
end