Sha256: 0f0a08b4f5768588edbc23c34be11d0306dbde6fca2887443fe6916d6de0cfba

Contents?: true

Size: 1.71 KB

Versions: 67

Compression:

Stored size: 1.71 KB

Contents

module Katello
  class ComponentViewPresenter < SimpleDelegator
    attr_accessor :view, :component_view

    def initialize(composite_cv, component_content_view = nil, content_view_component = nil)
      @view = component_content_view
      cv_component_record = content_view_component || Katello::ContentViewComponent.where(composite_content_view_id: composite_cv.id, content_view_id: @view.id).first
      @component_view = cv_component_record || Katello::ContentViewComponent.new(composite_content_view_id: composite_cv.id, content_view_id: @view.id, latest: true)
      super(@component_view)
    end

    def self.component_presenter(composite_cv, status, views:)
      case status
      when 'All'
        views.map { |component_content_view| ComponentViewPresenter.new(composite_cv, component_content_view) }
      when 'Added'
        added_cvs = views.map { |component_content_view| Katello::ContentViewComponent.where(composite_content_view_id: composite_cv.id, content_view_id: component_content_view.id).first }
        added_cvs.compact.map { |content_view| ComponentViewPresenter.new(composite_cv, nil, content_view) }
      when 'Not added'
        not_added_cvs = views.reject { |component_content_view| Katello::ContentViewComponent.where(composite_content_view_id: composite_cv.id, content_view_id: component_content_view.id).first }
        not_added_cvs.map { |component_content_view| ComponentViewPresenter.new(composite_cv, nil, Katello::ContentViewComponent.where(composite_content_view_id: composite_cv.id, content_view_id: component_content_view.id, latest: true).new) }
      else
        views.map { |component_content_view| ComponentViewPresenter.new(composite_cv, component_content_view) }
      end
    end
  end
end

Version data entries

67 entries across 67 versions & 1 rubygems

Version Path
katello-4.14.2 app/services/katello/component_view_presenter.rb
katello-4.15.0 app/services/katello/component_view_presenter.rb
katello-4.15.0.rc2 app/services/katello/component_view_presenter.rb
katello-4.15.0.rc1 app/services/katello/component_view_presenter.rb
katello-4.14.1 app/services/katello/component_view_presenter.rb
katello-4.14.0 app/services/katello/component_view_presenter.rb
katello-4.14.0.rc3 app/services/katello/component_view_presenter.rb
katello-4.14.0.rc2 app/services/katello/component_view_presenter.rb
katello-4.14.0.rc1.1 app/services/katello/component_view_presenter.rb
katello-4.14.0.rc1 app/services/katello/component_view_presenter.rb
katello-4.13.1 app/services/katello/component_view_presenter.rb
katello-4.13.0 app/services/katello/component_view_presenter.rb
katello-4.12.1 app/services/katello/component_view_presenter.rb
katello-4.13.0.rc1 app/services/katello/component_view_presenter.rb
katello-4.12.0 app/services/katello/component_view_presenter.rb
katello-4.12.0.rc3 app/services/katello/component_view_presenter.rb
katello-4.12.0.rc2 app/services/katello/component_view_presenter.rb
katello-4.12.0.rc1 app/services/katello/component_view_presenter.rb
katello-4.11.1 app/services/katello/component_view_presenter.rb
katello-4.11.0 app/services/katello/component_view_presenter.rb